一般情况下使用ping,tracert,nslookup来判断主机的网络连通性,在Linux 下有一个更好用的网络联通性判断工具,结合了ping nslookup tracert 来判断网络的相关特性,这个命令就是 mtr
(my traceroute),是一个把 ping 和 traceroute 合并到一个程序的网络诊断工具。 traceroute默认使用UDP数据包探测,而mtr默认使用ICMP报文探测,ICMP在某些路由节点的优先级要比其他数据包低,所以测试得到的数据可能低于实际情况。
一、工具的安装
[root@ecs ~]# yum install mtr
[root@ecs ~]# rpm -qa | grep mtr
mtr-0.85-7.el7.x86_64
二、工具的使用
[root@ecs ~]# mtr -r www.baidu.com
Start: Fri Jan 7 22:23:36 2022
HOST: ecs Loss% Snt Last Avg Best Wrst StDev
1.|-- 100.98.0.1 0.0% 10 12.5 10.3 3.9 16.0 3.8
2.|-- 10.39.4.1 90.0% 10 10.0 10.0 10.0 10.0 0.0
3.|-- 192.168.10.2 50.0% 10 4.0 77.1 3.4 366.7 161.9
4.|-- ??? 100.0 10 0.0 0.0 0.0 0.0 0.0
5.|-- 10.44.3.196 90.0% 10 244.7 244.7 244.7 244.7 0.0
6.|-- 10.47.55.181 0.0% 10 1.7 1.8 1.7 2.1 0.0
7.|-- 10.1.0.150 30.0% 10 2.3 2.4 2.3 3.0 0.0
8.|-- 172.16.38.169 0.0% 10 2.8 2.9 2.7 4.5 0.5
9.|-- 172.16.38.29 0.0% 10 3.3 3.2 3.0 3.3 0.0
10.|-- 220.206.194.129 0.0% 10 3.7 4.5 3.7 10.0 1.9
11.|-- 61.49.112.229 0.0% 10 4.7 7.1 3.9 10.1 2.3
12.|-- 202.96.12.33 0.0% 10 7.1 9.3 4.3 22.3 6.5
13.|-- 219.158.11.86 10.0% 10 7.2 8.8 7.0 17.0 3.2
14.|-- 110.242.66.162 0.0% 10 11.5 11.6 11.5 11.8 0.0
15.|-- ??? 100.0 10 0.0 0.0 0.0 0.0 0.0
16.|-- ??? 100.0 10 0.0 0.0 0.0 0.0 0.0
17.|-- ??? 100.0 9 0.0 0.0 0.0 0.0 0.0
18.|-- ??? 100.0 9 0.0 0.0 0.0 0.0 0.0
19.|-- ??? 100.0 9 0.0 0.0 0.0 0.0 0.0
20.|-- 110.242.68.3 0.0% 9 11.1 11.0 11.0 11.1 0.0
参数解释:
第一列: ip
Loss:丢包率
Snt:发包的数量
Last:最后一个包的延时 ###以下单位都是ms
Avg:平均延时
Best: 最低延迟
Wrst:最大延时
StDev:方差(稳定性)
三、参数说明
-r 或者 --report
使用 mtr -r qq.com 来打印报告,如果不使用 -r or --report 参数 mtr 会不断动态运行。使用 report 选项, mtr 会向 www.baidu.com 主机默认发送 10 个 ICMP 包,然后直接输出结果。通常情况下 mtr 需要几秒钟时间来输出报告。mtr 报告由一系列跳数组成,每一跳意味着数据包通过节点或者路由器来达到目的主机。
一般情况下 mtr 前几跳都是本地 ISP,后几跳属于服务商,中间跳数则是中间节点,如果发现前几跳异常,需要联系本地 ISP 服务提供上,相反如果后几跳出现问题,则需要联系服务提供商,中间几跳出现问题,则需要联系运营商进行处理
默认使用 -r 参数来生成报告,只会发送10个数据包,如果想要自定义数据包数量,可以使用 -c 参数
-s or --packetsize
使用 -s 来指定ping数据包的大小,单位是bytes,如下:
[root@ecs ~]# mtr -r www.baidu.com -s 100
-c 指定发送数量
[root@ecs ~]# mtr www.baidu.com -c 20