mtr命令详解诊断网络路由

首先安装mtr

# yum -y install mtr

一般在windows 来判断网络连通性用ping 和tracert,


ping的话可以来判断丢包率,tracert可以用来跟踪路由,


在Linux中有一个更好的网络连通性判断工具,它可以结合ping nslookup tracert 来判断网络的相关特性,这个命令就是mtr



[root@10.10.90.97 ~]# mtr -h


usage: mtr [-hvrctglspni46] [--help] [--version] [--report]

[--report-cycles=COUNT] [--curses] [--gtk]

[--raw] [--split] [--no-dns] [--address interface]

[--psize=bytes/-s bytes]

[--interval=SECONDS] HOSTNAME [PACKETSIZE]



mtr -h 提供帮助命令


mtr -v 显示mtr的版本信息


mtr -r 已报告模式显示



[root@10.10.90.97 ~]# mtr -r 202.108.33.94

FOCUS9097 Snt: 10 Loss% Last Avg Best Wrst StDev

220.181.61.252 0.0% 6.8 3.3 1.8 7.4 2.2

220.181.17.217 0.0% 0.4 0.5 0.4 0.7 0.1

220.181.16.17 0.0% 0.6 0.5 0.5 0.6 0.0

202.97.53.14 10.0% 0.7 0.7 0.7 0.8 0.0

219.158.35.1 0.0% 0.8 0.8 0.8 0.9 0.0

219.158.5.81 0.0% 1.2 1.3 1.2 1.6 0.1

123.126.0.138 0.0% 1.2 1.1 1.1 1.3 0.1

61.148.153.126 0.0% 1.9 10.5 1.5 89.9 27.9

61.148.143.22 0.0% 1.5 1.6 1.5 1.7 0.0

210.74.178.198 0.0% 1.6 1.6 1.5 1.9 0.1

202.108.33.94 0.0% 1.5 1.5 1.4 1.5 0.0





报告说明:

第一列:显示的是IP地址和本机域名,这点和tracert很像

第二列:snt:10 设置每秒发送数据包的数量,默认值是10 可以通过参数 -c来指定。



[root@10.10.90.97 ~]# mtr -r -c 15 202.108.33.94

FOCUS9097 Snt: 15 Loss% Last Avg Best Wrst StDev

220.181.61.252 0.0% 1.9 3.4 1.8 12.9 3.1

220.181.17.217 0.0% 0.5 0.5 0.4 0.8 0.1

220.181.16.17 0.0% 0.5 0.6 0.5 2.3 0.5

202.97.53.14 0.0% 0.7 0.7 0.7 0.7 0.0

219.158.35.1 0.0% 0.9 0.8 0.8 0.9 0.0

219.158.5.81 0.0% 1.3 2.8 1.2 22.8 5.5

123.126.0.138 0.0% 1.1 1.1 1.1 1.2 0.0

61.148.153.126 0.0% 13.8 7.4 1.6 60.4 15.5

61.148.143.22 0.0% 1.7 1.6 1.5 1.8 0.1

210.74.178.198 0.0% 1.6 1.6 1.4 1.7 0.1

202.108.33.94 0.0% 1.5 1.5 1.4 1.7 0.1




其中-c的说明是:–report-cycles COUNT


-n  不用主机解释

-c   发送多少个数据包

--report  结果显示,并不动态显示。



第三列:是显示的每个对应IP的丢包率

第四列:显示的最近一次的返回时延

第五列:是平均值 这个应该是发送ping包的平均时延

第六列:是最好或者说时延最短的

第七列:是最差或者说时延最常的

第八列:是标准偏差

接下来接着说相关参数:



mtr -s 用来指定ping数据包的大小

mtr -n no-dns不对IP地址做域名解析

mtr -a 来设置发送数据包的IP地址 这个对一个主机由多个IP地址是有用的

mtr -i 使用这个参数来设置ICMP返回之间的要求默认是1秒

mtr -4 IPv4

mtr -6 IPv6

其中Host列是途经的IP或本机域名

Loss%列就是对应IP行的丢包率了,值得一提的是,只有最后的目标丢包才算是真正的丢包

Last列则是最后一次返回的延迟,按毫秒计算的

Avg列是所有返回时延的一个平均值

Best列是最快的一次返回时延

Wrst列是最长的一次返回时延

StDev列是标准偏差



接下来就是命令参数了:

mtr -s 用来指定ping数据包的大小

mtr -n no-dns不对IP地址做域名解析

mtr -a 来设置发送数据包的IP地址 这个对一个主机由多个IP地址是有用的

mtr -i 使用这个参数来设置ICMP返回之间的要求默认是1秒

mtr -c 是ping的次数。使用方法跟ping命令一样

mtr -4 IPv4

mtr -6 IPv6

所谓的IPv4和IPv6,现在基本上用不到呢还,我们基本上来测试链路连通性都是这么打的

mtr -i 0.1 -n -c 100 IP或域名

这么打的意思是每0.1秒返回一次结果,ping100次,并且不对IP地址做域名解析







speedtest-cli是一个用Python编写的轻量级Linux命令行工具 在Python2.4至3.4版本下均可运行 它基于Speedtest.net的基础架构来测量网络的上/下行速率

wget https://raw.github.com/sivel/speedtest-cli/master/speedtest_cli.py  


chmod a+rx speedtest_cli.py  


sudo mv speedtest_cli.py /usr/local/bin/speedtest-cli  


sudo chown root:root /usr/local/bin/speedtest-cli  


如何测试也很简单 使用

speedtest-cli  


他会寻找与你最近的一台服务器  

如下


Retrieving speedtest.net configuration...  

Retrieving speedtest.net server list...  

5300) Hangzhou , Zhejiang Unicom (Hangzhou, China) [4.87 km]  

8173) 5UF××× (Hangzhou, China) [4.87 km]  

3927) China Mobile Jiangsu Co., Ltd. (Suzhou, China) [121.23 km]  

6245) ningbo unicom (Ningbo, China) [141.79 km]  

6715) China Mobile Group Zhejiang Co., Ltd. (Ningbo, China) [141.79 km]  

5122) China Mobile Group Jiangsu Co.,Ltd. (Wuxi, China) [142.18 km]  

3633) China Telecom (Shanghai, China) [162.85 km]  

5083) Shanghai Branch, China Unicom (Shanghai, China) [162.85 km]  

9633) China Broadband Communications (Shanghai, China) [162.85 km]  

5446) CHINA UNICOM JIANGSU COMPANY (Nanjing, China) [236.11 km]  

5724) ChinaUnicom (Hefei, China) [325.13 km]  

4377) China Mobile Group Anhui Co.,Ltd (Hefei, China) [325.13 km]  

6345) ChinaTelecom.JiangXi (Nanchang, China) [451.09 km]  

7643) China Telecom.JiangXi.Network Center (Nanchang, China) [451.09 km]  

6473) jxtelecom (Nanchang, China) [451.09 km]  

5097) Chinaunicom.jx (Nanchang, China) [451.09 km]  

7230) China Unicom.JiangXi Co.,Ltd (Nanchang, China) [451.09 km]  

4884) China Unicom FuJian (Fuzhou, China) [476.39 km]  

5485) China Unicom,Hubei Branch (Wuhan, China) [564.39 km]  

2589) Far EasTone Telecommunications Co., Ltd (Taoyuan, *) [589.47 km]  

3921) * Fixed Network (Taoyuan, *) [589.47 km]  

如果你要指定某台服务器 可以使用


speedtest-cli --server id号  



如:speedtest-cli --server 5300

测试结果如下:





我们经常会遇到数据传输延迟 失败的问题 这时候经常需要检测丢包率  在windows中跟踪路由一般用tracert命令,在linux中我们可以使用mtr

mtr -h  


来查看mtr的所有参数  


mtr -h 提供帮助命令  

  

mtr -v 显示mtr的版本信息  

  

mtr -r 已报告模式显示  

  

mtr -c 设置每秒发送数据包的数量  

  

mtr -s 用来指定ping数据包的大小  

  

mtr -n no-dns不对IP地址做域名解析  

  

mtr -a 来设置发送数据包的IP地址 这个对一个主机由多个IP地址是有用的  

  

mtr -i 使用这个参数来设置ICMP返回之间的要求默认是1秒  

  

mtr -4 IPv4  

  

mtr -6 IPv6  


这个工具默认是安装的  当然有些版本的liunx是没有自带该工具 比如centos6.5就没有  通过yum apm等安装即可 当然 源码安装也可以 

mtr默认使用ICMP报文探测

mtr -r -c 30 -s 1024 www.baidu.com


HOST: AY14041211122443416bZ       Loss%   Snt   Last   Avg  Best  Wrst StDev  

  1. 114.215.99.248                0.0%    30    0.6   2.0   0.6  17.2   3.0  

  2. 10.106.148.18                 0.0%    30    1.0  48.9   0.8  96.2  32.3  

  3. 42.120.245.1                  0.0%    30    0.8   1.6   0.7   2.8   0.6  

  4. 42.120.244.73                 0.0%    30    1.4   1.6   0.7  14.3   2.4  

  5. 150.138.132.133              63.3%    30  17327 20199 17327 23128 1754.0  

  6. 150.138.128.65                0.0%    30    1.8   2.1   1.7   2.6   0.3  

  7. 202.97.39.105                 0.0%    30   15.9  15.2  13.5  17.7   1.3  

  8. ???                          100.0    30    0.0   0.0   0.0   0.0   0.0  

  9. 220.191.200.138               0.0%    30   21.0  22.5  21.0  23.9   0.9  

 10. ???                          100.0    30    0.0   0.0   0.0   0.0   0.0  

 11. 115.239.209.46               56.7%    30   22.4  23.0  22.4  23.5   0.3  

 12. ???                          100.0    30    0.0   0.0   0.0   0.0   0.0  

 13. 115.239.210.27               40.0%    30   21.9  22.4  21.6  26.8   1.1  



第二列 Loss%:是显示的每个对应IP的丢包率。


第四列 Last:显示的最近一次的返回时延。


第六列 Best:最好或者说时延最短的时间。


第八列 StDev:标准偏差。


上一篇:Solution - [CEOI2017]Palindromic Partitions


下一篇:python编程300例之 002合并排序数组