无法 telnet 到 Linux 端口

无法 telnet 到 Linux 端口

有以下监听器:

telnet -na | grep 8000

tcp   0   0.0.0.0:8000   0.0.0.0:*    LISTEN

我可以从 1.2.3.4 服务器执行 telnet 1.2.3.4 8000 并且连接,但是从其他机器执行相同命令却无法连接(比如 1.2.3.4 是机器 IP)。

我做了以下事情:

chkconfig iptables off
chkconfig ip6tables off
service iptables stop
service ip6tables stop
vi /etc/selinux/config {set to disable }

重新启动了

sestatus {resulted in SELinux status: disabled}
lsof -i | grep 8000 {no results}
iptables -I INPUT 1 -p tcp --dport 8000 -j ACCEPT

telnet 1.2.3.4 22 确实有效,但到 8000 无效。其他机器上没有防火墙。Linux 是 Centos。

还可以尝试什么?

答案1

您没有说当您尝试从远程机器连接到 1.2.3.4 端口 8000 时得到了什么:是“连接被拒绝”、超时还是“没有到主机的路由”?(后两者表示网络流量被阻止)。

可以尝试的事情:

检查“ lsof -i :8000”而不是“grep 8000”。

通过关闭监听器应用程序并使用 netcat(例如“ nc -4 -l 8000”)并再次尝试连接来验证这不是监听器应用程序的问题。

再次验证您是否可以从其他机器 ping 1.2.3.4。

答案2

您可以使用它tcpdump来查明远程主机的数据包是否到达您的服务器。运行

tcpdump -n port 8000

如果您看到输出,则表明数据包已到达您的服务器,但被本地防火墙或其他东西丢弃。
如果输出为空白,则表明数据包不是到达您的服务器。在这种情况下,修改服务器的配置是无用的,因为您的客户端和 Web 服务器之间存在连接问题。要解决这个问题,您可以在客户端上运行:

tracert <webserver's IP>(在 Windows 上)

traceroute <webserver's IP>(在 Unix 上)

将输出保存到文件并致电您的 ISP/网络管理员/其他关心的人。他们可能会要求跟踪 - 您已将其保存在文件中。

相关内容