
一、概述
MTR(My Traceroute) 是一款强大的网络连通性诊断工具,融合了 ping、traceroute 与 nslookup 的功能。
它能够持续探测目标主机的路由路径,并实时显示每一跳的 延迟 与 丢包率,从而帮助用户快速定位网络问题。
相比单一的 ping 或 traceroute,MTR 能提供动态且连续的网络表现数据,是网络运维、服务器监控、跨境链路分析的必备工具。
二、安装方法
1️⃣ Linux 系统
Debian / Ubuntu
sudo apt update
sudo apt install mtr -y
CentOS / RHEL / Fedora
sudo yum install mtr -y
或
sudo dnf install mtr -y
2️⃣ macOS
使用 Homebrew 安装:
brew install mtr
若系统无 Homebrew,请先执行:
/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"
3️⃣ Windows
Windows 用户可使用图形界面版本 WinMTR:
🔗 https://github.com/White-Tiger/WinMTR
解压后运行 WinMTR.exe 即可使用,无需安装。
三、基础使用
1. 实时追踪网络路径
mtr 1.1.1.1
实时显示到目标 1.1.1.1 的每一跳网络节点状态,按 Ctrl + C 结束。
2. 指定探测次数并输出报告
mtr -rw -c 10 1.1.1.1
参数解释:
四、输出解析
示例输出:
HOST: server01 Loss% Snt Last Avg Best Wrst StDev
1. 192.168.1.1 0.0% 10 0.3 0.4 0.2 0.8 0.2
2. 10.0.0.1 0.0% 10 1.2 1.4 1.1 2.3 0.3
3. 123.45.67.89 0.0% 10 10.1 10.3 10.0 11.2 0.2
4. 1.1.1.1 0.0% 10 12.3 12.1 11.8 12.7 0.3
字段说明
五、常用参数
六、进阶使用
1️⃣ 保存报告结果
mtr -rw -c 20 8.8.8.8 > /tmp/mtr_report.txt
2️⃣ IPv6 测试
mtr -6 -rw -c 10 2606:4700:4700::1111
3️⃣ 指定出口网卡
mtr -a 192.168.0.10 -rw -c 10 1.1.1.1
七、WinMTR 图形界面使用
1️⃣ 打开 WinMTR.exe
2️⃣ 在 Host 输入目标 IP(如 1.1.1.1)
3️⃣ 点击 Start 开始追踪
4️⃣ 程序实时显示每一跳的延迟与丢包率
5️⃣ 点击 Copy Text to Clipboard 复制结果报告
八、实战案例
假设访问国外网站延迟较高,可执行:
mtr -rw -c 20 8.8.8.8
分析结果:
若中间节点丢包但目标无丢包,多为路由器限制 ICMP,不影响实际通信。
若目标节点也出现高丢包或高延迟,说明链路确实存在问题。
九、总结
MTR 是网络诊断的多功能利器,可用于本地排查、跨境链路分析、CDN 验证等多种场景。
十、常见问题(FAQ)
❓1. 为什么某些节点显示 100% 丢包?
部分路由器禁止响应 ICMP 包,因此不会回复 MTR 的探测请求。
只要后续节点仍能正常响应,说明该节点未影响实际通信,不是真实丢包。
❓2. 为什么需要 root 权限?
MTR 默认使用 ICMP(需要原始套接字权限)。
普通用户可执行:
sudo mtr 8.8.8.8
或者使用:
mtr --tcp 8.8.8.8
以 TCP 模式运行。
❓3. 如何在无 root 权限的环境使用?
可以使用:
mtr --udp 8.8.8.8
或在容器环境中执行:
docker run --rm -it alpine mtr 8.8.8.8
❓4. 为什么结果每次都不一样?
MTR 动态采样网络状态,网络抖动、负载均衡或路由变化都会导致数据波动。
建议使用:
mtr -rw -c 50 <目标>
增加采样包数量,获取更稳定的统计数据。
❓5. 如何在多网卡环境指定出口?
通过参数 -a 指定源 IP 或网卡:
mtr -a 192.168.100.2 -rw -c 20 8.8.8.8
❓6. MTR 支持 IPv6 吗?
支持,使用 -6 参数即可:
mtr -6 -rw -c 10 2400:cb00::1
❓7. 如何生成 HTML 或 JSON 报告?
部分系统的 MTR 提供扩展参数:
mtr -rwz -c 20 8.8.8.8 --report-json > report.json
或
mtr -rwz -c 20 8.8.8.8 --report-html > report.html
❓8. 我用 Cloudflare、AWS 等云服务时,MTR 能分析延迟吗?
可以,但需注意:
云厂商的边缘路由节点可能对 ICMP 做限速或伪装;
建议结合 TCP 模式或端口指定测试,例如:
mtr -T -P 443 1.1.1.1
✅ 结语
MTR 是网络诊断的瑞士军刀。
通过结合延迟、丢包、路由跳数等多维数据,你可以快速判断:
是本地网络问题?
还是中转节点异常?
或是国际链路延迟?
掌握 MTR,你就掌握了定位网络问题的关键能力。
评论区