6个常用的网络排查工具
- linux
- 1小时前
- 0评论
当你在排查网络故障时,是不是上来就 ping 一下,通了就觉得“没事”?然后用户说“还是慢”,你又 traceroute 看一遍,发现一堆 * * * 就懵了?
我做Linux运维的头两年也这样。后来被线上事故教育了几回才明白:每个命令都有它的正确打开方式,用错了等于白干。
我把手头最常用的 6 个网络排查工具,按 “先看通不通 → 再看怎么走 → 再看谁在占 → 最后抓包破案” 的顺序讲清楚。每个工具只讲高频用法,不做“全部参数罗列”——那种事让 man 手册去做就行。
工具 1:ping
什么时候用它
别笑话 ping——这个 1983 年就有的工具,到今天仍然是排查网络的“敲门砖”。它的价值不是“测速”,而是回答三个问题:
- 目标机器在不在?(网络层可达)
- 大概有多远?(RTT 粗估)
- 丢包严重吗?(丢包率)
推荐的用法
# 发 30 个包,带时间戳,不走域名解析(避免 DNS 干扰)
ping -c 30 -D -n 8.8.8.8
输出
[1787536993.123456] 64 bytes from 8.8.8.8: icmp_seq=1 ttl=117 time=12.3 ms
[1787536993.126789] 64 bytes from 8.8.8.8: icmp_seq=2 ttl=117 time=11.9 ms
...
--- 8.8.8.8 ping statistics ---
30 packets transmitted, 30 received, 0% packet loss, time 29034ms
rtt min/avg/max/mdev = 11.234/12.567/15.432/1.234 ms
参数说明
-c 30:发 30 个包就停(别挂在那等 Ctrl+C)-D:每行前面打印时间戳,事后对日志排查非常有用-n:不解析域名,快很多
工具 2:mtr
它解决了什么问题
traceroute 只跑一遍,遇到中间某节点不响应就直接显示 ***,然后你就抓瞎了。
而 mtr(My TraceRoute)把 ping 和 traceroute 合二为一,持续探测每个中间节点,给出丢包率和延迟统计。
用一句话说:traceroute 告诉你“经过了哪些路由器”,mtr 告诉你“每台路由器表现怎么样”。
命令
# 日常推荐:TCP 模式 + 443 端口,更接近真实业务路径
mtr --tcp -P 443 -n -c 100 目标IP
参数说明
--tcp:改用 TCP 数据包(不是 ICMP),走业务走的链路-P 443:指定探测端口(如果是 HTTP 服务就改 80)-n:不反解域名-c 100:发 100 个包后退出
输出结果
[root@hk-x86 ~]# mtr -r -c 100 chenkaidi.com
Start: 2026-08-24T10:47:15+0800
HOST: hk-x86 Loss% Snt Last Avg Best Wrst StDev
1.|-- 10.130.86.82 98.0% 100 1.6 1.6 1.6 1.6 0.0
2.|-- 10.102.123.86 62.0% 100 1.3 1.3 1.3 1.8 0.1
3.|-- 11.94.68.70 0.0% 100 1.7 2.2 1.6 9.3 1.8
4.|-- 10.255.191.162 73.0% 100 2.0 1.9 1.8 2.6 0.2
5.|-- 10.54.21.82 20.0% 100 2.1 6.5 2.0 62.5 11.1
6.|-- 146762-hk1-ix.equinix.com 0.0% 100 2.9 3.0 2.9 3.2 0.0
7.|-- 103.2.158.237 0.0% 100 32.6 31.9 31.5 34.1 0.4
8.|-- 103.2.158.34 0.0% 100 34.7 35.3 34.6 47.3 2.1
9.|-- ??? 100.0 100 0.0 0.0 0.0 0.0 0.0
10.|-- ??? 100.0 100 0.0 0.0 0.0 0.0 0.0
11.|-- ??? 100.0 100 0.0 0.0 0.0 0.0 0.0
12.|-- 116.62.102.173 0.0% 100 40.1 40.2 40.1 44.5 0.5
| 列名 | 说明 |
|---|---|
Host |
路径上每一跳(路由器)的IP地址或主机名。 |
Loss% |
丢包率。显示发往该节点的数据包丢失百分比。 |
Snt |
已发送的数据包总数。 |
Last |
最近一个数据包的往返延迟(毫秒)。 |
Avg |
所有发送数据包的平均延迟。 |
Best |
最佳(最小)延迟。 |
Wrst |
最差(最大)延迟。 |
StDev |
标准偏差,反映延迟的稳定性,值越大表示网络越不稳定。 |
判断原则
- 只看最后一跳的 Loss%:如果最终目标丢包率 0%,中间某跳 50% 丢包但后续恢复了,大概率是那个节点禁 ICMP 回复,不是故障。
- 某一跳延迟突然飙升(比如从 10ms 跳到 300ms),之后又降不下来 → 问题大概率出在这跳所在的运营商骨干网或跨网互联节点。
- 跳数中出现 ??? 但后续节点正常:说明该节点不响应探测,忽略即可。
工具 3:ss
