目录
mtr(My Traceroute)是一款融合了 traceroute和 ping功能的网络诊断工具,通过持续发送探测包实时追踪数据包路径并统计网络性能指标。以下是其核心功能与使用技巧的全面解析:
1. 基础功能与安装
1.1 功能定位
-
路径追踪:逐跳显示数据包经过的路由节点(IP/域名)。
-
性能统计:实时计算延迟(Last/Avg/Best/Wrst)、丢包率(Loss%)及稳定性(StDev)。
-
协议支持:默认使用 ICMP,支持 TCP/UDP 探测。
1.2 安装方法
# Debian/Ubuntu
sudo apt install mtr -y
# RHEL/CentOS
sudo yum install mtr -y
# Fedora
sudo dnf install mtr -y
注:部分系统需安装 mtr-packet依赖库
2. 核心命令解析
2.1 基础用法
mtr lmzf.com
-
动态模式:持续更新路由路径与统计数据
-
默认行为:发送 ICMP 包,每 1 秒刷新一次
2.2 常用选项
| 参数 | 语法示例 | 功能说明 | 应用场景 |
|---|---|---|---|
-r/--report |
| 报告模式(发送10个包后停止) | 快速生成诊断报告 |
|
|
| 指定发送数据包数量 | 长时间稳定性测试 |
-n/--no-dns |
| 禁用DNS解析 | 加速测试(避免DNS延迟) |
|
|
| 设置源IP地址 | 多网卡环境指定出口 |
|
|
| 设置探测间隔(秒) | 高频探测网络波动 |
|
|
| 设置数据包大小(字节) | 检测MTU问题 |
|
|
| 使用UDP协议探测 | 绕过ICMP限制 |
|
|
| 指定协议类型(默认ICMP) | 特殊协议测试 |
|
|
| 自定义报告周期数 | 精细化流量分析 |
|
|
| 设置最大跳数 | 深度路由追踪 |
|
|
| 起始TTL值 | 防止路由环路 |
|
|
| 宽格式输出 | 大屏展示路径 |
|
|
| 分屏显示历史记录 | 对比多次测试结果 |
|
|
| 原始数据输出 | 开发调试使用 |
|
|
| 生成XML报告 | 自动化脚本解析 |
|
|
| 指定网络接口 | 多网卡环境控制 |
|
|
| 设置超时时间(秒) | 高延迟网络测试 |
|
|
| 设置服务类型字段 | QoS策略验证 |
|
|
| 自定义数据包结构 | 网络层深度分析 |
--tcp/--udp | 使用 TCP/UDP 协议探测(默认 ICMP) |


3. 输出结果详解
mtr 输出包含 7 列核心数据,按跳(Hop)逐行显示:
| 字段 | 含义 | 分析建议 |
|---|---|---|
| Host | 路由节点 IP/域名 | 定位网络路径中的关键节点 |
| Loss% | 该节点丢包率 | >10% 需重点排查(可能链路拥塞) |
| Snt | 已发送探测包总数 | 结合 |
| Last | 最后一个包的往返时间(ms) | 突发性波动可能因网络抖动 |
| Avg | 平均往返时间(ms) | 长期高延迟需优化路由 |
| Best | 最短往返时间(ms) | 理论最低延迟参考 |
| Wrst | 最长往返时间(ms) | 排除偶发网络故障 |
| StDev | 标准差(稳定性) | >50ms 表示网络不稳定 |
- 理解
???:遇到???通常不是故障,而是节点不响应ICMP。关注其前后跳的延迟变化。 - 协议选择:默认ICMP最常用。怀疑防火墙干扰时,尝试UDP (
-u) 或TCP (-T)。 - 负载考量:
mtr持续发送探测包,频繁或长时间运行会增加网络负载,避免在生产网络上过度使用。 - 综合判断:
mtr是利器,但非万能。应结合ping,traceroute,nslookup/dig, 服务器日志等工具综合分析问题。 - 权限:在某些系统上,发送ICMP包可能需要root权限(
sudo mtr ...)。
4. 参数交互技巧
4.1 运行时切换模式
-
d:切换显示模式 -
n:切换DNS解析 -
u:切换UDP/ICMP协议
4.2 实时过滤
mtr example.com | grep '10\.' # 只显示包含10.网段的节点
4.3 协议选择
ICMP被限制时,改用 UDP 或 TCP 探测(需指定端口):
mtr --udp -p 53 <目标IP> # DNS端口
mtr --tcp -p 80 <目标IP> # HTTP端口
mtr --tcp -p 443 <目标IP> # HTTPS端口
4.4 自动化脚本
结合时间戳生成日志文件:
mtr -r -c 100 lmzf.com > mtr_$(date +%F_%T).log
4.5 图形化工具
WinMTR(Windows)或 Gmtr(Linux)提供可视化界面,适合非技术人员使用。
5. 案例分析
场景:mtr 报告中间某跳有 40% 的丢包,但最终目的地丢包率为 0%。
分析:
这是最常见的 mtr 陷阱。中间路由器的以下行为会导致假性丢包:
-
速率限制:路由器对 ICMP 或 UDP 探测包进行了优先级处理,会故意丢弃一部分,以保证业务流量优先。
-
负载均衡:路径存在多条链路,探测包可能走了不同路径,而
mtr只显示其中一条。
如何判断?
-
黄金法则:永远只关心最终目的地的丢包率(Last Hop Loss%)。如果最终目的地丢包为 0%,那么中间节点的任何丢包通常都是假性的,可以忽略。你的数据包并没有真的丢失,只是探测包被丢弃了。
-
如果最终目的地也丢包,再看中间哪一跳开始出现持续丢包,那里就是真正的问题点。
1265

被折叠的 条评论
为什么被折叠?



