测试linux网络连通性的两个最常用命令是ping和traceroute。1. ping通过icmp协议检测目标主机是否可达,若返回时间和ttl值表示网络正常,出现request timeout或destination host unreachable则可能中间节点断开;2. traceroute用于查看数据包经过的路由路径,若某跳显示 *则可能是中断或被屏蔽。使用时可分别加-c限制ping次数、-w设置traceroute等待时间。实际排查中,能ping网关但无法上网可能是dns或nat问题,中途卡住提示链路不稳定或设备限制,两者失败但本地访问其他网站正常则目标站点可能挂掉或被封。进一步操作包括换地址测试、检查本机配置、联系管理员确认链路状态。
测试linux网络连通性,最常用的两个命令是 ping 和 traceroute。它们能帮你快速判断网络是否通畅、问题出在哪儿。这篇文章就来说说怎么用这两个工具做基本排查。
用 ping 检查基础连通性
ping 是最基本的网络测试命令,它通过 ICMP 协议发送请求包到目标主机,看有没有回应。使用方法很简单:
ping example.com
或者直接 ping IP 地址:
ping 8.8.8.8
-
如果返回一串时间和 TTL 值,说明网络正常。
-
如果出现 Request timeout 或者 Destination Host Unreachable,那可能中间某个节点断了。
-
想要限制发送次数,可以加 -c 参数:
ping -c 4 example.com
小贴士:有些服务器会禁用 ICMP 回应,这时候即使网络通也可能收不到响应,不能完全依赖 ping 的结果。
用 traceroute 查看路由路径
当你知道网络不通,但不知道卡在哪一跳时,traceroute 就派上用场了。它能显示数据包经过的每一跳路由器,方便定位故障点。
使用方式也很简单:
traceroute example.com
你可能会看到类似这样的输出:
1 192.168.1.1 1.2 ms 1.5 ms 1.7 ms 2 10.0.0.1 5.3 ms 5.6 ms 5.9 ms 3 * * * 4 some.router.example.net 12.4 ms 12.8 ms 13.1 ms ...
-
如果某一行全是 * * *,说明那一跳没响应,可能是网络中断或防火墙屏蔽。
-
可以加 -w 设置等待时间,加快探测速度:
traceroute -w 1 example.com
实际排查中的一些经验
有时候你会发现:
- 能 ping 通网关,但上不了外网 → 可能是 DNS 或 NAT 配置问题
- traceroute 到中途某一跳卡住 → 网络链路不稳定或中间设备限制
- ping 和 traceroute 都失败,但本地能访问其他网站 → 目标站点挂了或被封
这个时候你可以:
- 换一个目标地址再试(比如换 Google 试试)
- 检查本机路由表和 DNS 设置
- 联系 ISP 或内部网络管理员确认中间链路状态
基本上就这些。掌握好 ping 和 traceroute,大多数基础网络问题都能有个初步判断。虽然它们不是万能的,但在排查过程中非常实用,尤其适合快速定位是本地问题还是远端问题。