MTR 教程:自己动手测线路质量,丢包卡在哪一跳

ping 只能告诉你卡,MTR 能告诉你卡在哪:安装、命令、输出解读全图解,晚高峰跑一遍,线路质量自己说了算。小白也能看懂的VPS科普。

我是小够,只推够用的 VPS。

网站晚上卡、白天好,或者某些地区访问慢,你去问客服,客服大概率回你一句"我们这边正常"。这时候你需要证据:MTR。它把 ping 和路由追踪合二为一,告诉你数据包从你这到机房,每一跳的延迟和丢包。卡在哪一跳,一目了然。

学 MTR 不难,命令就一个,难的是看懂报告。这篇把安装、命令、报告解读、实战定位全讲透,跟着跑一遍就会。

ping 不够用了?那就上 MTR

ping 只能告诉你"通不通、延迟多少",traceroute 能告诉你"走了哪条路",但两个都是"拍一张快照"。网络质量是波动的,快照说明不了问题。MTR(My Traceroute)是把两者结合,还持续发包、实时统计:跑一分钟,每一跳的丢包率、平均延迟、抖动全给你算出来。

一句话:ping 是体温计,MTR 是心电图。买 VPS、下单前验线路、网站卡了甩证据给客服,都用它。花十分钟学会,受用整个玩机生涯,稳赚不赔的买卖。

安装:三平台一行命令

Linux(Debian/Ubuntu):

sudo apt install mtr -y

Linux(CentOS/RHEL 系):

sudo yum install mtr -y

macOS:

brew install mtr

Windows: 没有原生 MTR,用 WinMTR,官网免费下载,图形界面,填 IP 点 Start 就行,效果一样。

注意:MTR 发的是 ICMP 包(或 TCP 包),普通用户权限可能发不出去,Linux 下用 sudo 跑最省事。macOS 用 brew 装完第一次跑,系统会弹权限请求,允许就行。

MTR、ping、traceroute 分工表

工具回答的问题适合场景
ping通不通、延迟多少快速看一眼
traceroute走了哪条路看绕没绕路
MTR每一跳丢不丢包、稳不稳定位问题、甩证据

新手容易只学 ping,ping 正常就以为线路没问题。其实 ping 正常、MTR 丢包的情况很常见:ping 只发几个包,偶发丢包根本看不出来;MTR 持续发包统计,问题藏不住。下单前验线路、网站卡了查原因,直接上 MTR,别在 ping 上浪费时间。

基本用法

最常用的命令就一个:

mtr 目标IP

比如测到你 VPS 的线路:

mtr 1.2.3.4

跑起来后按 q 退出。想直接出报告、不进交互界面(比如发给客服),用:

mtr -r -c 100 1.2.3.4

-r 是报告模式,-c 100 是每跳发 100 个包。发包数越多结论越稳,100 个是够用线:太少看不出问题,太多等太久。

宽带运营商有时会限速 ICMP,想更接近真实访问,加个 TCP 模式:

mtr -r -c 100 -T -P 443 1.2.3.4

-T 是 TCP 模式,-P 443 指定端口。网站卡就用这个测 443 端口。

几个常用参数记住,用的时候现查都行:

  • -n:不解析域名,直接显示 IP,速度更快,报告更干净
  • -i 0.5:发包间隔 0.5 秒(默认 1 秒),想快点出结果用这个,别设太低
  • -w:宽报告,主机名不截断,看长域名时用
  • -4 / -6:只测 IPv4 或 IPv6

输出怎么看:每一列的意思

MTR 的报告每行是一跳(一个路由器),列的意思:

  • Host:这一跳的 IP 或域名
  • Loss%:丢包率,核心指标
  • Snt:发了多少个包
  • Last/Avg/Best/Wrst:上次/平均/最好/最差延迟
  • StDev:抖动,延迟忽大忽小就是它高

看报告记住三条:

  1. 最后一跳丢包 = 真有问题:最后一跳是目标服务器,它丢包,说明链路真的在丢包
  2. 中间某跳丢包、后面不丢 = 不用慌:很多路由器对 ping 回包限速,中间跳丢包但后面正常,是路由器的自我保护,不是线路问题
  3. 丢包从某一跳开始、后面一直丢 = 问题在那一跳:这就是你要找的"卡在哪",截图发给客服,证据确凿

认一认:每一跳是谁家的网

Host 列的主机名里藏着运营商信息,会认能少走很多弯路(据公开资料整理的常见标识):

  • 202.97.x.x:电信 163 骨干网,普通电信国际线路多走这里
  • 59.43.x.x:电信 CN2 网络,看到它说明走了 CN2,线路档次不错
  • 219.158.x.x / 4837:联通 4837 普通线路;看到 9929 字样是联通精品线路
  • 221.176.x.x / 223.120.x.x:移动网络,CMIN2 相关节点会带 cmin2 标识
  • he.net / cogentco.com:Hurricane Electric、Cogent 这些国际运营商,欧美机房常见

举个例子:上海电信用户测洛杉矶机房,前面几跳是 202.97(电信 163 出海),后面进了机房自己的网——这就是普通电信线路;如果前面几跳是 59.43,那就是 CN2。买之前问客服要测试 IP,自己跑一遍 MTR,商家说的"CN2 GIA"是不是真的,主机名不会骗人。

三个真实场景:报告长这样

场景一:一切正常。 每一跳 Loss 都是 0%,延迟逐跳递增,最后一跳延迟符合机房距离(洛杉矶 150 到 200ms)。结论:线路没问题,网站卡去查服务器本身。

场景二:中间某跳丢包 30%,后面全 0%。 比如第 5 跳 Loss 30%,第 6 跳起全是 0%。结论:路由器限速,不用管,线路是好的。新手最容易在这里被吓到,其实虚惊一场。

场景三:从第 8 跳开始丢包,后面每跳都丢 10%。 第 8 跳的主机名是某运营商骨干节点。结论:问题在第 8 跳,可能是运营商拥堵。截图发工单,附上白天和晚高峰两份报告,客服处理起来最快。

记住看报告的顺序:先看最后一跳,再看丢包从哪一跳开始的,最后看主机名认运营商。三步走完,基本能定位八九成问题。

实战:晚高峰跑一遍

线路质量的真相在晚高峰。操作步骤:

  1. 晚上 9 点到 11 点,SSH 连上你的 VPS(或者在本地电脑上)
  2. 跑 mtr -r -c 100 目标IP,等一两分钟
  3. 白天再跑一遍,同样的命令
  4. 对比两次报告:晚高峰丢包明显变差,说明线路晚高峰拥堵

拿着两份报告去问客服:“白天不丢包,晚高峰这几跳丢包 10%,麻烦看下”,比"你家线路不行"管用一百倍。客服也是打工人,有数据才好帮你查。

发给客服的工单模板

数据有了,工单这么写,回复最快:

机器 IP:1.2.3.4,机房:洛杉矶 现象:每天 21:00 后网站打开慢,本地宽带:上海电信 MTR 报告(晚高峰,-c 100):[粘贴报告] MTR 报告(白天,-c 100):[粘贴报告] 第 8 跳(xx 运营商节点)开始丢包约 10%,麻烦帮忙看下,谢谢。

要素齐了:时间、现象、两份对比报告、定位到第几跳。客服不用再来回问你"什么时候卡的"“用的什么宽带”,直接就能查,工单来回少两轮。

双向 MTR:别只测一半

你从本地测到 VPS,只是去程。回程(VPS 返回数据走哪条路)可能完全不一样。在 VPS 上反向测一次:

mtr -r -c 100 你的本地公网IP

本地公网 IP 去百度搜"IP"就能看到。去程回程都正常,线路才算真的稳。很多"单程 CN2"的机器,坑就坑在回程绕路,双向一测就现形。

举个例子:去程 MTR 显示全程走 59.43(电信 CN2),延迟 160ms 很漂亮;回程 MTR 却显示从机房出来绕了欧洲一圈,延迟 300ms。网站打开慢,慢就慢在回程上——数据请求发得快,回来得慢,体验照样卡。这种机器商家详情页也敢写"CN2",双向一测,原形毕露。

MTR 也救不了你的几种情况

MTR 看的是网络层,下面这些问题它看不出来,别一卡就怪线路:

  • 服务器负载高:CPU 跑满了,网站照样卡。SSH 上去看一眼 top,负载比核数高就是机器扛不住了,该升级配置
  • 磁盘 IO 瓶颈:便宜 VPS 的磁盘 IO 经常是短板,网站读写慢和线路没关系
  • DNS 解析慢:域名解析花了几秒,MTR 测的是 IP,根本不经过 DNS 这一步
  • 你本地网络问题:家里路由器、WiFi 信号差,MTR 第一跳就丢包,先查自己家

排查顺序:先 MTR 看线路,线路没问题再查服务器本身,最后查本地。别一上来就开工单骂客服,证据链完整,解决问题才快。

小够提醒

  • MTR 发包频率别太高,默认就行,拿 MTR 当压测工具会被机房封
  • 测试 IP 和你实际开通的 IP 可能不是同一段,结论供参考
  • 路由是会变的,今天绕路明天可能就直连了,偶发问题别急着下结论,连测几天再看
  • MTR 看的是网络层,网站慢还可能是服务器本身(CPU、磁盘)的问题,别一卡就怪线路
  • 同一机房不同 IP 段,线路可能不一样,测的是测试 IP,开通后最好再跑一遍确认
  • 够用主义:MTR 不用天天跑,下单前、换机房前、出问题时跑三次,平时该干嘛干嘛

常见问题

Q:MTR 和 itdog 的多地 ping 有什么区别?

A:itdog 是从全国各地测到机房,看的是"访客视角";MTR 是从某一个点出发,看的是"这一条路每一跳"的细节。下单前用 itdog 筛商家,出问题后用 MTR 定位,两者配合用。

Q:中间跳丢包 30%,后面不丢,要换商家吗?

A:不用。这是路由器对 ICMP 限速的常见现象,只要最后一跳不丢、延迟稳定,线路就是好的。别被中间跳的数字吓到。

Q:WinMTR 和命令行 MTR 结果一样吗?

A:原理一样,WinMTR 是图形版,适合 Windows 用户。看报告的方法通用:盯住最后一跳和"从哪一跳开始持续丢包"。

Q:MTR 要跑多久才准?

A:-c 100 跑一两分钟够用。网络问题偶发,想抓现行可以跑 -c 1000,但别在业务高峰期长时间跑,低频率、长时间比高频率、短时间更有代表性。

Q:测出来晚高峰丢包严重,能让商家修吗?

A:看情况。如果是运营商国际出口拥堵,商家也修不了,只能换线路更好的套餐;如果是机房内部问题,拿着 MTR 报告开工单,商家一般会处理。先拿数据,再谈方案。

Q:手机上能跑 MTR 吗?

A:有 App(比如 iOS/安卓的网络工具箱),但手机连的是 WiFi 或流量,测出来的是手机网络到机房的线路,和你宽带的结果不一样。验线路、定位问题还是用电脑,手机 App 只能应急看一眼。

*Q:MTR 报告里全是星号 * * ,怎么回事?

A:某一跳完全不回包,显示星号。如果后面跳正常,是路由器禁了回包,不用管;如果从某一跳开始全是星号到最后,可能是目标防火墙禁了 ICMP,换 TCP 模式(-T)再测一次。