无法在正在侦听的端口上远程登录 Web 服务器

Posted

技术标签:

【中文标题】无法在正在侦听的端口上远程登录 Web 服务器【英文标题】:Unable to telnet web server on a port that's listening 【发布时间】:2014-11-18 23:19:05 【问题描述】:

我正在我的网站上实现套接字并将套接字绑定到网站的 IP 地址,但是当我在该端口上远程登录网站时,它无法连接。正在创建套接字并且网站正在侦听传入连接,没有错误,但在尝试 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 连接。

【问题讨论】:

卡巴斯基安装和更新..可以吗?但它允许连接到本地主机 可能是你的服务器阻塞了 6662 端口 你在哪里运行这个脚本?浏览器还是cli?我认为套接字仅在第一次超时之前打开,然后脚本将结束并关闭套接字。你可能需要一个while(true) 循环来保持它的打开,这里有一个很好的php监听服务器示例php.net/manual/en/function.stream-socket-server.php#Hcom44501 @andrew,我想在浏览器上运行它。 @RoelVeldhuizen,我尝试了几个不同的端口 【参考方案1】:

如果你的服务器是 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

【讨论】:

以上是关于无法在正在侦听的端口上远程登录 Web 服务器的主要内容,如果未能解决你的问题,请参考以下文章

小米路由器远程登录WEB页面

如何建立远程桌面服务Web访问端口

是否是侦听服务结构远程端点的单个线程

C# TCP 在同一个本地端口上侦听和连接

SQL2000无法远程登录

阿里云ECS安装sqlserver,本地无法连接问题排查思路