mtr 长跑报告的价值
mtr 把 ping 与 traceroute 合并成逐跳统计,边探测边累计每个中间节点的丢包率与延迟。默认的交互界面样本太少、百分比抖动大,排障时应改用 -c 大样本加 -r 生成一次性报告,结论才稳定。判读的核心是区分两种丢包:只有中间跳丢、后续跳和末跳都不丢,说明该设备只是限制 ICMP;末跳也丢才是真实的端到端丢包。
基本信息
| 适用平台 | Linux/macOS(mtr 或 mtr-tiny 包);Windows 可用 WinMTR |
|---|---|
| 常用参数 | -c 轮数、-r 报告模式、-n 不解析域名、-T -P 用 TCP 探测 |
| 取样建议 | 排障至少 300 轮,样本低于 100 时百分比噪声很大 |
| TCP 探测 | mtr -n -T -P 443 绕过对 ICMP 的限速策略 |
| 方向限制 | 只测去程;判断回程需在两端各跑一次对比 |
典型使用场景
- 用户报跨地域访问慢:用大样本报告看延迟在哪一跳开始抬升
- 疑似运营商链路丢包:区分中间跳 ICMP 限速与真实丢包
- ICMP 被策略限制的网络:改用 TCP 443 探测获得可用结果
- 跳板机或专线质量评估:定期采集报告做趋势对比
- 排除回程问题:两端各跑一次,比较去程与回程的差异
长跑与报告
长跑与报告
mtr -n -c 500 -r 10.0.0.5 # 500 轮生成报告,样本足够稳定
mtr -n -w -b -z -c 500 -r 10.0.0.5 # 宽格式并解析 ASN,便于判断运营商段落
mtr -n -T -P 443 -c 300 -r example.com # 用 TCP 443 探测,绕过 ICMP 限速
mtr -n -i 0.2 -c 1000 -r 10.0.0.5 # 0.2 秒间隔高速采样,快速积累样本
mtr -n -c 300 -r 10.0.0.5 | tail -5 # 只看末几跳,快速判读端到端结果报告列与判读
| 列 | 含义 | 判读要点 |
|---|---|---|
| Loss% | 该跳丢包百分比 | 末跳数值才是端到端真实丢包 |
| Snt | 已发送探测数 | 数值远小于 -c 指定轮数说明中途被限速或超时 |
| Last / Avg | 最近一次与平均延迟 | Avg 更稳定,单看 Last 容易被抖动带偏 |
| Best / Wrst | 最小与最大延迟 | Best 与 Avg 差距大说明抖动明显 |
| StDev | 延迟标准差 | 标准差大表示链路质量不稳定,即使平均延迟正常 |
运营商骨干与防火墙普遍对 ICMP 报错限速,会造成「中间跳大面积丢包、末跳却完美」的经典误读;判读顺序永远是先看末跳。