MTR是融合traceroute和ping的网络诊断工具,可实时显示每跳延迟、丢包率与路径变化;安装需手动执行对应包管理命令,常用参数包括--report、-a、-T、--aslookup等以适配多网卡、TCP探测、持续监控及AS号识别等场景。

在Linux中,MTR(My TraceRoute)是诊断网络问题的利器,它融合了traceroute和ping的功能,能实时显示每一跳的延迟、丢包率与路径变化,特别适合排查跨运营商、跨境或云环境中的路由异常。
安装与基础用法
MTR通常不在系统默认安装列表中,需手动安装:
- Debian/Ubuntu:sudo apt install mtr-tiny(轻量版)或 sudo apt install mtr(完整版)
- RHEL/CentOS/Fedora:sudo yum install mtr 或 sudo dnf install mtr
运行时建议加 --report 参数获取统计摘要,例如:
mtr --report -c 10 example.com
表示向目标发送10次探测,输出各跳的平均延迟、丢包率、最佳/最差延迟等汇总信息。
识别高延迟与路由瓶颈
MTR结果中重点关注三列:Loss%(丢包率)、Best(最低延迟)、Avg(平均延迟)。若某跳出现明显延迟跃升(如前一跳 Avg=5ms,下一跳骤增至80ms),说明该节点或其出向链路存在拥塞、QoS限速或设备过载。
- 延迟持续升高但丢包为0 → 多为中间节点处理慢(如防火墙深度检测、老旧路由器缓存不足)
- 延迟波动大(Best 10ms / Avg 95ms / Worst 210ms)→ 链路不稳定或存在队列积压
- 某跳后所有后续跳延迟同步升高 → 问题大概率出在该跳设备或其下游出口
区分本地问题与远端问题
通过对比不同目标可快速定位故障边界:
- 对同一内网网关(如192.168.1.1)执行 mtr --report -c 10 192.168.1.1:若首跳就丢包或延迟异常 → 本机网卡、驱动或物理链路问题
- 对同区域公网IP(如云厂商同可用区另一主机)测试:若路径前几跳正常,但在城域网出口(如运营商AS边界)开始劣化 → 属于ISP侧问题
- 对多个境外目标(如 google.com、github.com、aws-region.amazonaws.com)均在第5–7跳出现共性丢包 → 可能是国际出口带宽饱和或跨境BGP策略限制
进阶技巧提升诊断精度
MTR支持多种参数适配复杂场景:
- 指定源IP:mtr -a 10.0.0.100 --report example.com,适用于多网卡服务器,明确走哪条路径
- 强制ICMP或TCP模式:mtr -T -P 443 example.com 使用TCP SYN探测443端口,绕过部分屏蔽ICMP的防火墙
- 持续监控变化:mtr -rwc 300 example.com 每秒探测一次,持续300秒,生成完整日志用于趋势分析
- 结合AS号识别:mtr --aslookup example.com 显示每跳所属自治系统,便于判断是否跨运营商或经过非预期中转(如本应直连却绕行第三方CDN)











