Linux命令之mtr

/ NetworkCommand / 没有评论 / 2134浏览

解释

一般在windows 来判断网络连通性用ping和tracert,ping的话可以来判断丢包率,tracert可以用来跟踪路由,在Linux中有一个更好的网络连通性判断工具,它可以结合ping nslookup tracert 来判断网络的相关特性,这个命令就是mtr

mtr的数据如何产生的,如何解读报告,如何诊断异常?

使用ICMP包来测试网络争用和传输,工作原理:启动mtr时,通过发送不断增长的TTL的ICMP包来测试本地和目标主机的连通性。TTL决定了ICMP需要经过多少跳才返回。如发出TTL=1的包,第一个路由器将TTL减少1就不再转发此数据包,而是返回一个超时报文,从报文中提取出第一个网关地址;再发出TTL=2的包,获取第二个网关地址,依次递增TTL后获取了所有的网关地址(路由器的所有信息,如各种连接,响应能力,状态等)。

mtr可看作一个单向的衡量网络质量的工具。从本机到目的机与从目的机到本机,所走的网络路径,走的经常不是一个路径。如果诊断出问题时,建议在两个方向上都使用mtr进行验证

安装

Centos 直接yum安装 Ubuntu apt-get 直接安装

参数

-s 用来指定ping数据包的大小
-n no-dns不对IP地址做域名解析
-a 来设置发送数据包的IP地址 这个对一个主机由多个IP地址是有用的
-i 使用这个参数来设置ICMP返回之间的要求默认是1秒
-4 IPv4
-6 IPv6
--report  结果显示,并不动态显示。发送10个包到目标主机

示范

测试百度,数据包大小为1000,不动态显示

root@pa3:~# mtr --report  -s 1000 www.baidu.com
Start: Thu Mar  8 16:24:15 2018
HOST: pa3                         Loss%   Snt   Last   Avg  Best  Wrst StDev
  1.|-- ???                       100.0    10    0.0   0.0   0.0   0.0   0.0
  2.|-- 11.220.31.21               0.0%    10    2.4   2.7   1.8   4.8   0.6
  3.|-- ???                       100.0    10    0.0   0.0   0.0   0.0   0.0
  4.|-- 11.218.196.246             0.0%    10    1.3   1.1   1.0   1.3   0.0
  5.|-- 116.251.104.209            0.0%    10    1.9   2.8   1.9   3.8   0.0
  6.|-- 116.251.112.177            0.0%    10    2.1   2.0   2.0   2.2   0.0
  7.|-- 36.110.166.117            60.0%    10    2.8   2.8   2.8   2.8   0.0
  8.|-- 180.149.141.109           10.0%    10    5.9   5.5   4.2   8.4   1.1
  9.|-- 180.149.128.113            0.0%    10    4.3   4.3   4.2   4.5   0.0
 10.|-- 202.97.65.98              50.0%    10   38.2  38.8  38.1  39.8   0.5
 11.|-- 113.96.4.10                0.0%    10   54.7  42.9  38.6  54.7   5.0
 12.|-- ???                       100.0    10    0.0   0.0   0.0   0.0   0.0
 13.|-- 14.29.117.238              0.0%    10   41.1  41.2  41.1  41.5   0.0
 14.|-- ???                       100.0    10    0.0   0.0   0.0   0.0   0.0
 15.|-- 14.215.177.38              0.0%    10   40.0  40.0  39.9  40.0   0.0

大家可以测试不同数据包的大小与丢包率之间的关系

结果解释

Loss% :是显示的每个对应IP的丢包率
Snt   :显示的最近一次的返回时延
Last  :是平均值 这个应该是发送ping包的平均时延
Avg   :是最好或者说时延最短的
Best  :是最差或者说时延最长的
StDev :是标准偏差