外网ping不通怎么解决
发帖时间:2026-10-17 04:57:55
外网ping不通,外网十有八九不是不通网线断了,而是解决防火墙挡了ICMP协议。我去年帮朋友排查一台Linux服务器,外网他信誓旦旦说“端口全开”,不通结果ping包全丢,解决SSH却秒连。外网问题就出在系统自带的不通firewalld默认丢弃了ping请求——这算是最常见的坑,先查这个准没错。解决 先别急着怀疑运营商。外网本地先做减法:ping一下网关,不通通了说明物理链路和IP配置没问题;再ping一下外网DNS(比如223.5.5.5),解决通了说明路由能出;都不通,外网那才轮到检查网卡或拨号。不通记住这个顺序,解决能省下大把瞎折腾的时间。 如果网关通、外网IP不通,八成是路由表或NAT出了问题。我见过有人把默认路由写成“via 192.168.1.1”,但网关实际是.254,结果所有包都发给了空气。这时候用`ip route show`看一眼,比翻配置文档快得多。特别提醒:虚拟机开了多个网卡时,路由表经常乱跳,实测过很多次。 防火墙这块得分开说。Linux的iptables和Windows的“高级安全防火墙”都是默认拦ping的,但很多人不知道还有“ICMP回显请求”这个独立条目。Windows上你允许了“文件和打印机共享(回显请求)”才放行,Linux则要`firewall-cmd --add-protocol=icmp`或者干脆写条ACL。别嫌麻烦,这是设计如此,不是bug。 再往下走,就是运营商或云厂商的坑了。阿里云、腾讯云的安全组默认只开80和443,你ping不通很正常——控制台里加一条“允许ICMP”的入方向规则就行。但如果是家用宽带,有的省份会直接屏蔽外网ping,比如我老家江苏电信,光猫拨号后从外网ping不通,但内网一切正常。这种属于运营商策略,投诉也没大用,换个思路测TCP端口(比如用`telnet ip 443`)反而更实际。 最后说个冷门的:MTU值太大也会导致ping不通。之前帮人排查一个VPN场景,ping小包通,ping大包(超过1400字节)全丢,最后发现是他路由器PPPoE的MTU设成了1500,而运营商实际支持只有1492。改小MTU后瞬间恢复。这种问题不常见,但遇到“小包通大包丢”的情况,直接往这个方向查。 总结一下排查路径:本地回环→网关→外网IP→防火墙规则→安全组/运营商→MTU。每一步用一条命令或一个设置就能验证,别一上来就重装系统。多数时候,问题就卡在你没想过的那层过滤上。