先使用ping检测连通性,再用traceroute定位故障节点。ping可判断本地、网络或目标问题,结合-c、-i等选项测试不同场景;traceroute显示数据路径,通过分析跳数定位中断点,前几跳失败为本地问题,中间跳失败为运营商链路问题,最后跳失败可能为目标屏蔽。若ping不通但服务可用,可用telnet、curl或mtr进一步排查。

遇到网络不通的问题时,Linux系统自带的 ping 和 traceroute 是最实用的两个基础工具。它们能帮你快速判断是本地问题、网络中间链路问题,还是目标服务器问题。
使用 ping 检查网络连通性
ping 通过发送 ICMP 回显请求包来测试与目标主机的连通性。它能告诉你是否能通、延迟多高。
基本用法:
ping google.com你会看到类似输出:
PING google.com (142.250.180.78): 56 data bytes64 bytes from 142.250.180.78: icmp_seq=0 ttl=116 time=12.4 ms
64 bytes from 142.250.180.78: icmp_seq=1 ttl=116 time=11.8 ms
关键信息:
- 如果显示 "Destination Host Unreachable",说明本地网络或路由不通
- 如果持续超时("Request timeout"),可能是网络中断、防火墙拦截或目标主机禁用了 ICMP
- 延迟(time)高可能意味着网络拥塞
常用选项:
- ping -c 4 google.com:只发 4 个包后自动停止
- ping -i 0.2 google.com:加快发送频率(0.2秒发一个)
- ping -s 1472 google.com:测试最大传输单元(MTU),常用于排查分片问题
使用 traceroute 查看网络路径
traceroute 显示数据包从你机器到目标主机所经过的每一跳(hop),帮助定位网络卡在哪一环。
基本用法:
traceroute google.com输出示例:
1 192.168.1.1 1.2 ms2 10.10.0.1 3.5 ms
3 111.206.200.1 8.7 ms
...
10 142.250.180.78 12.1 ms
如何分析结果:
- 前几跳是本地网关或运营商接入点,若这里就超时,问题在本地
- 中间某跳开始持续超时,说明该节点或其后链路有问题
- 最后几跳才超时,可能是目标服务器防火墙屏蔽了探测包
- 出现星号(*)表示该跳未响应,不一定是故障,有些路由器默认不回复
注意:某些系统使用 tracepath 或需要安装 traceroute 工具(如 CentOS 需 yum install traceroute)。
结合使用定位问题
诊断流程建议:
- 先 ping 本地网关(如 192.168.1.1),确认局域网正常
- 再 ping 外网地址(如 8.8.8.8),判断是否能出公网
- 如果 8.8.8.8 能通但 google.com 不通,可能是 DNS 问题,用 nslookup google.com 验证
- 使用 traceroute 看卡在哪一跳,联系对应网络管理员或 ISP
例如:ping 外网超时,但 traceroute 前三跳正常,第四跳开始全星号,说明问题出在本地运营商出口前的链路。
补充建议
有些服务器禁用 ICMP,ping 不通不代表服务不可用,可改用:
- telnet 目标IP 端口 测试特定服务(如 80、443)
- curl -v http://example.com 查看 HTTP 连接过程
- mtr google.com 结合 ping 和 traceroute,实时查看链路质量
基本上就这些。掌握 ping 和 traceroute 的使用,大多数网络连通性问题都能快速缩小排查范围。










