无法在正在侦听的端口上telnet Web服务器

时间:2014-09-24 12:47:54

标签: php sockets telnet

我在我的网站上实现套接字并将套接字绑定到网站的IP地址但是当我在该端口上telnet网站时,它没有连接。正在创建套接字并且网站正在侦听传入连接,没有错误但是在尝试telnet网站时显示错误。如果我更改代码以便在127.0.0.1上收听,则无问题。

该网站正在侦听端口6662,这是一个非官方的IRC端口。什么没发生?

我执行以下操作来远程登录网站。

telnet www.nameofwebsite.com 6662
telnet ipofwebsite 6662

它尝试连接然后失败并显示错误:无法打开与主机的连接,在端口6662上:连接失败

结束脚本很简单。

<?php

    set_time_limit(0);
    error_reporting(E_NOTICE);

    $address = "ipofwebsite";    // if i change this to 127.0.0.1 and telnet localhost 6662, it works.
    $port = 6662;

    # root socket
    $root = socket_create(AF_INET, SOCK_STREAM, SOL_TCP);

    # reuse socket
    if( socket_set_option($root, SOL_SOCKET, SO_REUSEADDR, 1) == false )
    {
        echo socket_strerror(socket_last_error());
    }

    # bind socket
    if( socket_bind($root, $address, $port) === false )
    {
        echo socket_strerror(socket_last_error());
    }

    # listen on the socket
    if( socket_listen($root) === false )
    {
        echo socket_strerror(socket_last_error());
    }

    # accept a connection
    if( ( $client = socket_accept($root) ) === false )
    {
        echo socket_strerror(socket_last_error());
    }
    echo "Connection accepted<br />";

    socket_close($root);

?>

它一直在听,但不接受任何telnet连接。

1 个答案:

答案 0 :(得分:0)

如果您的服务器是Windows服务器,请尝试以下操作:https://www.tomshardware.com/news/how-to-open-firewall-ports-in-windows-10,36451.html.

如果您的系统是Linux,请尝试运行以下命令:

iptables -I INPUT -p tcp -m tcp --dport your_port_number -j ACCEPT
service iptables save

如果是CentOS 7,则可以运行以下命令

firewall-cmd --zone=public --add-port=your_port_number /tcp --permanent
firewall-cmd --reload