linux系统如何安装使用MTR收集路径测试信息?
简介
MTR(全称My TraceRoute)是Linux系统中一个强大的网络诊断工具,它结合了traceroute(路径追踪)和ping(持续探测)的功能,能够实时分析网络路径的性能问题。
MTR的核心功能
1.路径追踪 + 性能测量
- 动态路由分析:逐跳(hop-by-hop)发送数据包,记录每个中间路由器(如网关、网桥)的响应时间、丢包率。
- 持续监测:像
ping
一样持续探测目标主机,但提供平均延迟、最小/最大延迟、延迟标准差等详细统计,帮助识别网络抖动。
2.实时可视化诊断
- 输出结果每秒刷新,直观显示各节点的网络质量变化,尤其适合诊断间歇性丢包或延迟波动。
3.协议灵活性
- 默认使用ICMP协议,但可通过参数切换为UDP或TCP,绕过防火墙限制。
- 支持IPv4/IPv6双协议栈,适应现代网络环境。
目前现有的 Linux 发行版本都预装了 MTR,如果您的 Linux 云服务器没有安装 MTR,则可以执行以下命令进行安装:
安装
CentOS 操作系统:
代码语言:txt复制yum install mtr
Ubuntu 操作系统:
代码语言:txt复制sudo apt-get install mtr
MTR 相关参数说明
-h/--help:显示帮助菜单。
-v/--version:显示 MTR 版本信息。
-r/--report:结果以报告形式输出。
-p/--split:与 --report 相对,分别列出每次跟踪的结果。
-c/--report-cycles:设置每秒发送的数据包数量,默认是10。
-s/--psize:设置数据包的大小。
-n/--no-dns:不对 IP 地址做域名解析。
-a/--address:用户设置发送数据包的 IP 地址,主要用户单一主机多个 IP 地址的场景。
-4:使用IPv4去请求
-6:使用IPv6去请求
-T(大写T字母):指定TCP协议
-u(小写u字母):指定UDP协议
-P(大写T字母):指定端口
MTR输出的信息列解读:
HOST:节点的 IP 地址或域名。
Loss%:丢包率。
Snt:每秒发送的数据包的数量。
Last:最近一次的响应时间。
Avg:平均响应时间。
Best:最短的响应时间。
Wrst:最长的响应时间。
StDev:标准偏差,偏差值越高,说明各个数据包在该节点的响应时间相差越大。
使用示例
源服务器去访问 目标 IP 为119.29.29.29的服务器为例。
简单拓扑链路:本地源端linux系统电脑(或者本地源端服务器)——>目标服务器 119.29.29.29
以文字报告形式输出 MTR 的诊断报告
在源端服务器执行以下命令。
代码语言:txt复制mtr 119.29.29.29 --report
mtr 119.29.29.29 -r
以上2种命令使用方式都支持,都是一个功能。
返回类似如下信息:
禁止将IP解析为域名输出
代码语言:txt复制mtr 119.29.29.29 -rn
以UDP协议指定端口追踪输出报告
代码语言:txt复制mtr -rn -uP 53 119.29.29.29
最后发现没有回显途径的路径信息,这个不回显不一定是有影响,抓包看是没有中间节点响应,怀疑是运营商限制以UDP协议访问。
以TCP协议指定端口追踪输出报告
代码语言:txt复制mtr -rn -TP 53 119.29.29.29
这个中间节点没有回显,但是最后一跳有回显,并且没有丢包,说明目标端是开放了tcp 53端口。
抓包看没有中间节点去响应tcp 53,所以不会回显,正常情况。
总结:
MTR通过整合路径追踪和持续性能测量,成为网络诊断的“瑞士军刀”。其动态更新和详细统计功能,尤其适合复杂网络环境下的故障定位和性能优化。用户可通过调整参数灵活应对不同场景,如快速排查、长期监控或协议兼容性测试。