MTR介绍
MTR(My Tracerouter):将ping和tracerouter合并到一个程序的网络诊断工具。
MTR是Linux中的一个网络连通性判断工具,它结合ping、tracert、nslookup的相关特性。
traceroute默认使用udp数据包探测,mtr使用icmp报文探测,icmp在某些路由节点优先级比其他数据包低,测试数据可能低于实际结果。
安装
yum install mtr -y
用法
查看帮助文档
[root@redis ~]# mtr --help
usage: mtr [-BfhvrwctglxspQomniuT46] [--help] [--version] [--report]
[--report-wide] [--report-cycles=COUNT] [--curses] [--gtk]
[--csv|-C] [--raw] [--xml] [--split] [--mpls] [--no-dns] [--show-ips]
[--address interface] [--filename=FILE|-F]
[--ipinfo=item_no|-y item_no]
[--aslookup|-z]
[--psize=bytes/-s bytes] [--order fields]
[--report-wide|-w] [--inet] [--inet6] [--max-ttl=NUM] [--first-ttl=NUM]
[--bitpattern=NUM] [--tos=NUM] [--udp] [--tcp] [--port=PORT] [--timeout=SECONDS]
[--interval=SECONDS] HOSTNAME
# 查看版本
[root@redis ~]# mtr --version
mtr 0.85
MTR报告参数解析
-r
--report
This option puts mtr into report mode. When in this mode, mtr will run for the number of cycles specified by the -c option, and then print statistics and exit.
此选项将 mtr 置于报告模式。 在此模式下,mtr 将运行 -c 选项指定的周期数,然后打印统计信息并退出。
This mode is useful for generating statistics about network quality. Note that each running instance of mtr generates a significant amount of network traffic. Using mtr to measure the quality of your network may result in decreased network performance.
此模式可用于生成有关网络质量的统计信息。 请注意,每个正在运行的 mtr 实例都会生成大量的网络流量。 使用地铁测量网络质量可能会导致网络性能下降。
[root@redis ~]# mtr -r www.baidu.com
Start: Wed Sep 6 10:22:12 2023
HOST: redis Loss% Snt Last Avg Best Wrst StDev
1.|-- 100.75.90.1 20.0% 10 6.5 5.1 0.9 9.1 2.8
2.|-- 14.147.150.186 80.0% 10 7.3 6.4 5.5 7.3 1.0
3.|-- 14.147.150.185 60.0% 10 5.3 7.1 5.2 11.3 2.8
4.|-- 113.98.6.61 70.0% 10 8.0 9.3 7.4 12.5 2.6
5.|-- 113.96.4.246 80.0% 10 14.4 14.1 13.8 14.4 0.0
6.|-- 106.96.135.219.broad.fs.g 30.0% 10 13.1 12.2 10.6 16.2 1.8
7.|-- 14.29.117.162 60.0% 10 11.0 12.7 11.0 16.0 2.1
8.|-- ??? 100.0 10 0.0 0.0 0.0 0.0 0.0
9.|-- ??? 100.0 10 0.0 0.0 0.0 0.0 0.0
10.|-- 14.119.104.254 30.0% 10 10.5 10.9 10.0 14.1 1.3
参数 | 描述 |
HOST | 主机名 |
Loss% | 丢包率 |
Snt | 表示发送的数据包的数量 |
Last | 显示最后一个包的延时 |
Avg | 所有数据包的平均延迟 |
Best | 最佳的往返时间到该主机数据包的时间 |
Wrst | 最差的往返时间到该主机数据包的时间 |
StDev | 延迟标准偏差 |
一般前几跳是本地网络节点,中间跳数是网络运营商,后几跳是服务商节点。
前几跳异常,排查本地网络。
中间几跳异常,联系网络运营商。
后几跳异常,联系服务提供商。
一般关注丢包率,发包数,往返时间和标准偏差。
丢包率>10%时,网络异常或者服务提供商人为限制ICMP发送速率。
平均延迟结合标准偏差进行判断,标准偏差越小,说明越稳定,标准偏差越大,说明数据包在该节点响应时间相差大。
???表示超时,icmp速率限制或者网络故障导致。
注意:排查网络故障时,一般需要双向MTR进行结合判断。
常用的选项
选项 | 描述 |
-r | 输出mtr诊断报告(默认向目标主机发送10个ICMP包),不使用 -r or --report 参数 mtr 会不断动态运行 |
-s | 指定ping数据包的大小,mtr发包大小,单位字节,负数表示数据包大小是随机数。 |
-c | 指定发包数量 |
-n | no-dns不对IP地址做域名解析 |
-i | 设置ICMP返回之间的要求。默认是1秒 |
-h | 查看帮助文档 |
-v | 查看版本信息 |
-a | 设置发送数据包的IP地址 |
在MTR运行过程中,可以输入快捷字母切换模式
快建键 | 描述 |
?或 h | 显示帮助菜单 |
d | 切换显示模式 |
n | 切换启用或禁用 DNS 域名解析 |
u | 切换使用 ICMP或 UDP 数据包进行探测 |
案例
不作域名解析,指定数据包大小,指定发包数量
[root@redis ~]# mtr -r -n -c 20 -s 100 www.baidu.com
Start: Wed Sep 6 11:07:42 2023
HOST: redis Loss% Snt Last Avg Best Wrst StDev
1.|-- 100.75.90.1 65.0% 20 1.9 5.1 1.2 9.1 2.7
2.|-- 14.147.150.182 75.0% 20 5.2 5.2 4.9 5.6 0.0
3.|-- ??? 100.0 20 0.0 0.0 0.0 0.0 0.0
4.|-- 113.98.6.46 80.0% 20 8.7 8.3 7.9 8.7 0.0
5.|-- 113.96.5.94 90.0% 20 82.5 47.3 12.1 82.5 49.7
6.|-- 219.135.96.94 75.0% 20 10.8 10.8 10.5 11.2 0.0
7.|-- 121.14.67.166 80.0% 20 12.9 16.5 12.9 19.2 2.5
8.|-- ??? 100.0 20 0.0 0.0 0.0 0.0 0.0
9.|-- 14.119.104.189 80.0% 20 9.2 11.0 9.0 13.9 2.2
指定数据包大小,指定发包数量
[root@redis ~]# mtr -r -s 32 -c 50 qq.com
Start: Wed Sep 6 11:06:03 2023
HOST: redis Loss% Snt Last Avg Best Wrst StDev
1.|-- 100.75.90.1 88.0% 50 1.1 1.9 0.4 7.0 2.4
2.|-- 14.147.150.194 94.0% 50 21.4 11.9 5.9 21.4 8.3
3.|-- 14.147.150.193 92.0% 50 6.3 6.8 6.0 8.0 0.6
4.|-- 14.148.202.217 98.0% 50 8.7 8.7 8.7 8.7 0.0
5.|-- ??? 100.0 50 0.0 0.0 0.0 0.0 0.0
6.|-- 101.95.224.18 98.0% 50 32.5 32.5 32.5 32.5 0.0
7.|-- ??? 100.0 50 0.0 0.0 0.0 0.0 0.0
8.|-- ??? 100.0 50 0.0 0.0 0.0 0.0 0.0
9.|-- ??? 100.0 50 0.0 0.0 0.0 0.0 0.0
10.|-- ??? 100.0 50 0.0 0.0 0.0 0.0 0.0
11.|-- 61.129.7.47 97.9% 48 33.5 33.5 33.5 33.5 0.0