插图来源:Storyset
刚玩网络那会儿,节点一卡我就 ping 一下,通,就傻眼了——通是通了,可为啥还这么卡?后来老玩家告诉我:ping 只能回答"通不通",想回答"堵在哪",得用 mtr。这工具我用了好几年,今天把用法一次讲透。
mtr 是什么#
mtr = ping + traceroute 的结合体。它会持续向目标发包,把每一跳的延迟、丢包率实时列出来。ping 告诉你终点通不通,traceroute 告诉你经过了哪些跳,mtr 把两者合在一起,还能看变化趋势。
基本用法#
Linux/macOS 终端里直接跑:
mtr 目标地址比如测到某个节点的连通质量,就把节点域名或 IP 填进去。跑个几十秒到一两分钟,数据就稳了。Windows 用户可以用 WinMTR,图形界面,逻辑一样。
每一列怎么读#
mtr 默认输出这几列,重点看三个:
- Loss%(丢包率):这一跳丢了多少包。注意:中间某一跳丢包、但后面跳不丢,通常是那一跳的设备限速 ICMP,不用慌;如果从某一跳开始后面全丢,那问题就在那一跳。
- Avg(平均延迟):这一跳的平均耗时。看延迟是"在哪一跳突然变大"的,变大的那一跳就是瓶颈。
- StDev(抖动):延迟的波动程度。玩游戏、视频会议卡,主要看这个,抖动大比延迟高更难受。
实战:三步定位问题#
第一步:确认是"哪一段"的问题。 看 Loss% 和 Avg 从哪一跳开始恶化。如果前几跳(你家到运营商)就丢包,问题在本地网络,重启光猫、检查 WiFi;如果是中间某段跨境链路开始恶化,那就是运营商或线路问题。
第二步:区分"真丢包"和"假丢包"。 某一跳 Loss% 很高但后续跳正常——这是设备对探测包限速,不是真丢包,别被吓到。只有"从某跳开始后面全丢"才是真问题。
第三步:结合时间看。 晚高峰(晚上 8–11 点)跑一次、凌晨跑一次对比。如果只有晚高峰差,那就是拥堵,换个时段或换条线路;如果全天都差,那就是线路本身不行。
什么时候用 mtr#
- 节点"能连但卡":ping 正常但体验差,用 mtr 找瓶颈跳。
- 给机场提工单:附上 mtr 结果,比说"很卡"有用十倍。工单怎么写可以参考站内相关指南。
- 对比两条线路:同样目标跑两次,看哪条的瓶颈更小。
想先搞懂延迟、丢包这些指标的含义,可以看 节点延迟、速度、丢包率怎么看;如果已经确定是网速慢,再看 网速慢排查清单;晚高峰拥堵专题见 晚高峰测速指南。
mtr 不难,难的是养成"先诊断再下结论"的习惯。先看数据,再换节点,能省下很多瞎折腾的时间。