在处理网络问题的时候经常会遇到一些问题,比如一个网络IP,能ping通,但是telnet不通。
先说结论:Ping 通说明 IP 层没问题,telnet 不通说明 TCP 端口/服务/策略有问题。
一般多与企业内部的严格安全的网络来说,所有的访问都需要开通ACL(访问控制列表)需要对网络进行开通策略之后,才可以访问。
但是有些同学在处理网络问题时,说可以ping通,但是telnet不通,因为ping是IP层的协议,而telnet是TCP层的协议,ACL控制的是TCP,就是源IP+目的IP+源端口+目的端口。这样才能做ACL的控制。所以telnet是23端口,会进行端口的限制访问,只有做了网络访问策略的开通后方可进行访问,才能telnet通。
如果发现网络策略都开通之后,还是无法telnet通,就要看看目的IP地址的服务器是否开启了防火墙。
防火墙拦截(Ping 不走 TCP)
1️⃣ Linux 防火墙
iptables -L -n firewall-cmd --list-all
重点看:
-
INPUT / OUTPUT
-
是否允许该端口
临时放行端口(示例)
iptables -I INPUT -p tcp --dport 端口 -j ACCEPT
或 firewalld:
firewall-cmd --add-port=端口/tcp --permanent firewall-cmd --reload
速定位口诀(非常实用)
| 现象 | 大概率原因 |
|---|---|
| ping 通,所有端口不通 | 防火墙 / 安全组 |
| ping 通,某个端口不通 | 服务没监听 |
| 本机 telnet 通,远程不通 | bind 127.0.0.1 |
| 内网通,外网不通 | NAT / 安全组 |
| 偶尔通,偶尔不通 | 多网卡回程 |