ping和wget能通,但是telnet则Host is unreachable是怎么回事?

我在一个docker容器内对宿主机器局域网IP测试联通情况

bash-4.4# telnet 192.168.0.94 2377
telnet: can't connect to remote host (192.168.0.94): Host is unreachable
bash-4.4# ping 192.168.0.94
PING 192.168.0.94 (192.168.0.94): 56 data bytes
64 bytes from 192.168.0.94: seq=0 ttl=64 time=0.096 ms
64 bytes from 192.168.0.94: seq=1 ttl=64 time=0.102 ms

ping能通,wget http://192.168.0.94:2377/nacos 也能获取网页,但是telnet则Host is unreachable是怎么回事?
在宿主机器上:

[root@host-machine ~]# telnet 192.168.0.94 2377
Trying 192.168.0.94...
Connected to 192.168.0.94.
Escape character is '^]'.
阅读 8k
3 个回答

ping 是走的 ICMP 协议,telnet 是走的 TELNET 协议,二者都是 TCP/IP 下的子协议,但两者之间没有关系。

所以“能 ping 通”仅仅代表你和目标主机之间的 TCP 连接是能建立的,但并不意味着 telnet 就可以访问。影响后者的原因有很多,可能是压根没监听公网的 2377 端口,可能被软件防火墙拦截了,可能被更上层的网关防火墙拦截了。

反过来也可能 telnet 能连上但 ping 却不通的,这可能是目标主机屏蔽了 ICMP 协议发来的 TCP 报文。

ping 工具能通说明他们之间的物理线路是连通的。
telnet不通,说明对方机器的21端口是关闭的。这属于软件问题。

端口没有开放啊

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题