先使用ping检测连通性,再用traceroute定位路径中断点。ping可判断本地网络、目标主机及中间链路问题,结合-c、-i等选项控制发包;若ping不通则用traceroute查看每一跳响应,确定故障节点;建议依次测试网关、公网IP、域名解析,并结合tracepath、telnet或curl辅助排查,有效区分本地、运营商或服务器端问题。

遇到网络不通的问题时,Linux系统提供了几个基础但非常有效的工具来帮助排查。其中最常用的是 ping 和 traceroute(或现代版本 tracepath)。它们能帮你判断是本地网络、中间路由还是目标主机的问题。
使用 ping 检查基本连通性
ping 是最基础的网络诊断命令,通过发送 ICMP 回显请求包到目标主机并等待回应,来测试网络是否可达。
基本用法:
ping example.com ping 8.8.8.8
常见情况与分析:
- 如果收到回复(如 "64 bytes from ..."),说明网络通畅
- 如果显示 "Destination Host Unreachable",可能是本地路由问题或目标不可达
- 如果持续超时("Request timeout"),说明数据包无法到达目标或被防火墙拦截
- 可以按 Ctrl+C 中断 ping 命令,查看统计信息,包括丢包率和平均延迟
实用选项:
- ping -c 4 example.com:只发送 4 个包后自动停止
- ping -i 0.2 example.com:加快发包频率(需 root 权限)
- ping -s 1472 example.com:测试最大传输单元(MTU)是否正常
使用 traceroute 分析路径中断点
当 ping 不通时,你可能想知道“卡在哪一跳”。traceroute 可以显示数据包从本机到目标主机所经过的每一跳路由。
基本用法:
traceroute example.com traceroute 8.8.8.8
输出每行代表一个网络节点(路由器),显示响应时间和 IP 地址。如果某跳开始全部显示星号(*),说明该节点或之后的路径存在问题。
常见场景分析:
- 前几跳正常,中间某跳开始超时:可能是中间网络拥塞或防火墙屏蔽了 ICMP
- 所有跳都超时,但最后一跳有响应:目标主机禁用了回显应答
- 出现 “!H” 或 “!N”:表示主机或网络不可达
替代工具 tracepath:
- 无需 root 权限,功能类似 traceroute
- 使用方式更简单:tracepath example.com
结合使用定位问题位置
排查思路建议按以下顺序进行:
- 先 ping 本地网关(如 192.168.1.1),确认局域网连接正常
- 再 ping 公网 IP(如 8.8.8.8),检查外网是否通
- 接着 ping 域名(如 google.com),验证 DNS 是否解析正常
- 最后用 traceroute 查看具体哪一跳失败,缩小故障范围
注意:有些服务器会禁用 ICMP 协议,所以 ping 不通不代表服务不可用,可结合 telnet 或 curl 测试端口和服务。
基本上就这些。掌握 ping 和 traceroute 的使用,能快速判断网络问题出在本地、运营商还是目标服务器,是运维和日常排错的必备技能。









