使用MTR命令诊断网络问题
以前在检查网络时习惯使用ping
命令,因为ping
命令非常简单,现在喜欢上了mtr
命令,因为它真的很强大,但是对于刚刚接触这个命令的同学来说,理解起来就没有ping
命令来的那么直观了,所以今天写一下自己使用mtr
命令的理解历程。
安装mtr命令
MAC:
brew install mtr
Ubuntu:
apt-get update
apt-get install mtr
CentOS:
yum -y install mtr
mtr命令输出列解析
Start: 2018-06-01T15:34:08+0800
HOST: Mac Loss% Snt Last Avg Best Wrst StDev
1.|-- 10.131.5.1 0.0% 10 1.5 3.8 1.2 9.9 2.7
2.|-- 172.16.105.25 0.0% 10 14.9 5.2 2.0 14.9 4.3
3.|-- 210.73.209.81 0.0% 10 19.7 8.9 5.0 19.7 4.5
4.|-- 118.186.62.141 0.0% 10 8.3 3.7 2.2 8.3 2.1
5.|-- 114.112.78.66 0.0% 10 2.9 3.6 2.3 7.3 1.6
6.|-- 103.241.231.130 0.0% 10 51.0 45.2 43.1 51.0 2.9
7.|-- 103.241.231.69 0.0% 10 48.1 46.5 43.9 51.1 2.3
8.|-- te3-1.c01.cnhkg.hk02.link 0.0% 10 44.4 46.1 44.0 52.8 2.7
9.|-- google2-lacp-100g.hkix.ne 0.0% 10 44.1 45.5 44.0 49.2 1.6
10.|-- 108.170.241.97 0.0% 10 44.9 46.4 44.9 47.8 1.0
11.|-- 209.85.241.219 0.0% 10 44.7 48.2 44.7 54.4 3.6
12.|-- hkg12s17-in-f14.1e100.net 0.0% 10 44.6 47.2 44.6 58.5 4.4
我为什么要把解析输出结果放到参数前呢,因为更多情况下,我们都是用mtr命令来测试当前的网络情况的,对于我们来说最重要的是当前的网络情况如何,使用参数是为了更好的或者说更高效的让我们了解当前的情况而已。
第一列:显示的是IP地址或主机名,表示当前路由途径的地址信息。
第二列:显示的是对应IP或主机的丢包率
第三列:显示的是每秒发送数据包的数量
第四列:显示最近一次的时延
第五列:显示平均时延
第六列:显示最小时延
第七列:显示最大时延
第八列:显示数据包在每个主机的标准偏差,如果标准偏差数值很大(例如:网络极其不稳定,Best与W人rst抖动严重)那么即使是平均时延正常那我们也不能得出当前网络是正常的结论。
Start: Fri Jun 1 16:24:23 2018
HOST: Federico Loss% Snt Last Avg Best Wrst StDev
1.|-- ??? 100.0 1 0.0 0.0 0.0 0.0 0.0
2.|-- 11.211.20.53 0.0% 1 7.4 7.4 7.4 7.4 0.0
3.|-- 11.211.20.114 0.0% 1 1.2 1.2 1.2 1.2 0.0
4.|-- 116.251.74.146 0.0% 1 1.7 1.7 1.7 1.7 0.0
5.|-- 202.77.19.33 0.0% 1 1.5 1.5 1.5 1.5 0.0
6.|-- 202.77.18.194 0.0% 1 4.7 4.7 4.7 4.7 0.0
7.|-- 43.252.86.66 0.0% 1 4.3 4.3 4.3 4.3 0.0
8.|-- 202.77.23.29 0.0% 1 5.9 5.9 5.9 5.9 0.0
9.|-- 219.158.97.241 0.0% 1 9.5 9.5 9.5 9.5 0.0
10.|-- 219.158.96.210 0.0% 1 16.7 16.7 16.7 16.7 0.0
11.|-- 219.158.103.217 0.0% 1 13.5 13.5 13.5 13.5 0.0
12.|-- 219.158.108.241 0.0% 1 50.0 50.0 50.0 50.0 0.0
13.|-- 202.96.12.62 0.0% 1 46.0 46.0 46.0 46.0 0.0
14.|-- 123.126.6.118 0.0% 1 49.2 49.2 49.2 49.2 0.0
15.|-- 202.106.43.30 0.0% 1 41.9 41.9 41.9 41.9 0.0
16.|-- ??? 100.0 1 0.0 0.0 0.0 0.0 0.0
17.|-- ??? 100.0 1 0.0 0.0 0.0 0.0 0.0
18.|-- 123.125.115.110 0.0% 1 47.1 47.1 47.1 47.1 0.0
我们已经解释了当前mtr报告中列参数的意义了,那么看我上面的报告第16和17跳丢包率为100%是否是正常现象呢?接下来我们就来解释下出现此丢包率的原因。这就不得不说跳数的问题了。
首先我们分析为什么的第16和第17跳会有百分之百的丢包率呢,当我们在任何跳数中发现丢包率存在一定的数值时都有可能是当前路由器的网络存在一定问题,然而有很多服务提供商会限制MTR使用ICMP流量,也就是说我们的16和17跳很可能是没有问题的,只不过是人为的限制因素导致我们的丢包率达到了100%,那么我们如何判断是不是认为限制导致当前网络出现问题了呢,这就需要我们查看最后一跳,我们会发现如果最后一跳没有丢包现象,那么我们就可以基本的肯定在此之前的网络丢包是由于人为限制导致的了,所以即使是100%的丢包率,但是并没有真实的影响到当前的网络情况。
接下来,我们来分析几种情况:
Start: Fri Jun 1 16:55:57 2018
HOST: 192.168.1.109 Loss% Snt Last Avg Best Wrst StDev
1.|-- gateway 0.0% 3 0.9 0.8 0.8 0.9 0.0
2.|-- 117.79.135.53 0.0% 3 0.7 13.4 0.7 38.9 22.0
3.|-- 117.79.134.97 0.0% 3 0.9 0.9 0.9 1.0 0.0
4.|-- ??? 100.0 3 0.0 0.0 0.0 0.0 0.0
5.|-- 220.181.177.61 66.7% 3 1.5 1.5 1.5 1.5 0.0
6.|-- 220.181.0.197 0.0% 3 1.9 3.6 1.9 5.9 2.0
7.|-- ??? 100.0 3 0.0 0.0 0.0 0.0 0.0
上面这种情况呢,就是完全丢包了,因为我们使用了一台不能访问谷歌的服务器,我们可以看最后一跳丢包率为100%,就说明当前主机到目标主机不可达。
HOST: localhost Loss% Snt Last Avg Best Wrst StDev
1. 63.247.74.43 0.0% 10 0.3 0.6 0.3 1.2 0.3
2. 63.247.64.157 0.0% 10 0.4 1.0 0.4 6.1 1.8
3. 209.51.130.213 60.0% 10 0.8 2.7 0.8 19.0 5.7
4. aix.pr1.atl.google.com 60.0% 10 6.7 6.8 6.7 6.9 0.1
5. 72.14.233.56 50.0% 10 7.2 8.3 7.1 16.4 2.9
6. 209.85.254.247 40.0% 10 39.1 39.4 39.1 39.7 0.2
7. 64.233.174.46 40.0% 10 39.6 40.4 39.4 46.9 2.3
8. gw-in-f147.1e100.net 40.0% 10 39.6 40.5 39.5 46.7 2.2
从这个例子中我们可以看出来,丢包率是可以和延迟同时发生的,证明当前网络确实存在问题。因为丢包率有可能是人为限制导致所以当我们真正遇到丢包是需要从最后几跳来考虑。
互联网设施的维护或短暂的网络拥挤可能会带来短暂的丢包率,当出现短暂的10%丢包率时候,不必担心,应用层的程序会弥补这点损失。
HOST: localhost Loss% Snt Last Avg Best Wrst StDev
1. 63.247.74.43 0.0% 10 0.3 0.6 0.3 1.2 0.3
2. 63.247.64.157 0.0% 10 0.4 1.0 0.4 6.1 1.8
3. 209.51.130.213 0.0% 10 0.8 2.7 0.8 19.0 5.7
4. aix.pr1.atl.google.com 0.0% 10 388.0 360.4 342.1 396.7 0.2
5. 72.14.233.56 0.0% 10 390.6 360.4 342.1 396.7 0.2
6. 209.85.254.247 0.0% 10 391.6 360.4 342.1 396.7 0.4
7. 64.233.174.46 0.0% 10 391.8 360.4 342.1 396.7 2.1
8. gw-in-f147.1e100.net 0.0% 10 392.0 360.4 342.1 396.7 1.2
我们可以发现从第4条开始,延迟增加,可能是因为当前网络堵塞,或者路由规则设置不合理导致。
以上案例有部分是从其他途径拷贝过来的,请见谅。
mtr命令参数详解
OPTIONS -4/-6
使用-4
选项,表示只测试IPv4地址,使用-6
选项,表示只测试IPv6地址。
OPTIONS -r
sudo mtr -r google.com
Start: 2018-06-01T15:34:08+0800
HOST: Mac Loss% Snt Last Avg Best Wrst StDev
1.|-- 10.131.5.1 0.0% 10 1.5 3.8 1.2 9.9 2.7
2.|-- 172.16.105.25 0.0% 10 14.9 5.2 2.0 14.9 4.3
3.|-- 210.73.209.81 0.0% 10 19.7 8.9 5.0 19.7 4.5
4.|-- 118.186.62.141 0.0% 10 8.3 3.7 2.2 8.3 2.1
5.|-- 114.112.78.66 0.0% 10 2.9 3.6 2.3 7.3 1.6
6.|-- 103.241.231.130 0.0% 10 51.0 45.2 43.1 51.0 2.9
7.|-- 103.241.231.69 0.0% 10 48.1 46.5 43.9 51.1 2.3
8.|-- te3-1.c01.cnhkg.hk02.link 0.0% 10 44.4 46.1 44.0 52.8 2.7
9.|-- google2-lacp-100g.hkix.ne 0.0% 10 44.1 45.5 44.0 49.2 1.6
10.|-- 108.170.241.97 0.0% 10 44.9 46.4 44.9 47.8 1.0
11.|-- 209.85.241.219 0.0% 10 44.7 48.2 44.7 54.4 3.6
12.|-- hkg12s17-in-f14.1e100.net 0.0% 10 44.6 47.2 44.6 58.5 4.4
使用-r
选项,该选项使mtr进入报告模式。在此模式下,mtr将运行由指定的周期数-c
选项,然后打印统计信息并退出。此模式对于生成有关网络质量的统计信息很有用。请注意,每个运行的mtr实例会产生大量的网络流量。可能会导致使用mtr来测量您的网络质量网络性能下降。
OPTIONS -F
vim hosts.txt
www.google.com
www.facebook.com
www.youtube.com
sudo mtr -c 3 -r -F hosts.txt
Start: 2018-06-01T15:57:18+0800
HOST: Mac Loss% Snt Last Avg Best Wrst StDev
1.|-- 10.131.5.1 0.0% 3 4.0 6.0 4.0 8.4 2.3
2.|-- 172.16.105.25 0.0% 3 12.0 11.8 4.6 18.9 7.1
3.|-- 210.73.209.81 0.0% 3 9.1 21.1 8.3 45.8 21.4
4.|-- 118.186.62.137 0.0% 3 2.9 4.2 2.9 5.2 1.1
5.|-- 114.112.78.70 0.0% 3 18.6 13.2 2.6 18.6 9.2
6.|-- 103.241.231.130 0.0% 3 47.1 49.7 47.1 52.2 2.6
7.|-- 103.241.231.69 0.0% 3 56.8 52.2 44.3 56.8 6.8
8.|-- te3-3.c01.cnhkg.hk02.link 0.0% 3 48.3 51.2 48.3 53.9 2.8
9.|-- 15169.hkg.equinix.com 0.0% 3 48.1 49.4 48.1 51.4 1.8
10.|-- 108.170.241.65 0.0% 3 47.8 55.4 47.8 64.7 8.6
11.|-- 209.85.241.209 0.0% 3 69.4 59.2 45.3 69.4 12.4
12.|-- hkg12s17-in-f4.1e100.net 0.0% 3 63.9 60.2 50.6 66.1 8.4
Start: 2018-06-01T15:58:17+0800
HOST: Mac Loss% Snt Last Avg Best Wrst StDev
1.|-- 10.131.5.1 0.0% 3 1.4 1.7 1.4 2.5 0.7
2.|-- 172.16.105.25 0.0% 3 2.6 4.1 2.4 7.2 2.7
3.|-- 210.73.209.81 0.0% 3 7.2 19.5 6.7 44.6 21.7
4.|-- 118.186.62.141 0.0% 3 59.5 21.6 2.5 59.5 32.8
5.|-- 114.112.78.66 0.0% 3 2.5 2.5 2.5 2.5 0.0
6.|-- xe-0-0-2.c02.cnhkg.hk02.l 0.0% 3 47.3 47.2 44.0 50.3 3.2
7.|-- 32934.hkg.equinix.com 0.0% 3 45.6 66.0 45.6 76.5 17.6
8.|-- po112.asw03.hkg3.tfbnw.ne 0.0% 3 46.2 45.4 44.7 46.2 0.7
9.|-- po231.psw02.hkg3.tfbnw.ne 0.0% 3 45.3 45.7 45.0 46.8 1.0
10.|-- 173.252.67.177 0.0% 3 44.9 45.5 44.7 46.8 1.2
11.|-- edge-star-z-mini-shv-01-h 0.0% 3 52.9 47.2 44.1 52.9 4.9
Start: 2018-06-01T15:58:44+0800
HOST: Mac Loss% Snt Last Avg Best Wrst StDev
1.|-- 10.131.5.1 0.0% 3 1.3 1.5 1.3 1.7 0.2
2.|-- 172.16.105.25 0.0% 3 2.3 2.3 2.1 2.6 0.2
3.|-- 210.73.209.81 0.0% 3 5.3 5.4 5.2 5.8 0.3
4.|-- 118.186.62.137 0.0% 3 2.5 2.9 2.5 3.3 0.4
5.|-- 114.112.78.70 0.0% 3 3.6 2.8 2.2 3.6 0.7
6.|-- 103.241.231.130 0.0% 3 46.1 44.3 43.3 46.1 1.6
7.|-- 103.241.231.69 0.0% 3 44.2 50.0 44.2 61.6 10.0
8.|-- te3-1.c01.cnhkg.hk02.link 0.0% 3 44.1 46.1 44.1 50.0 3.4
9.|-- google2-lacp-100g.hkix.ne 0.0% 3 44.4 45.2 44.3 47.0 1.5
10.|-- 108.170.241.1 0.0% 3 47.5 49.8 45.6 56.3 5.8
11.|-- 72.14.233.169 0.0% 3 45.7 47.1 45.3 50.3 2.8
12.|-- hkg07s22-in-f110.1e100.ne 0.0% 3 45.1 45.5 45.1 46.4 0.7
由此可见,使用-F
选项是从指定文件中读取主机选项进行网络测试。-c
选项是设置每秒发送数据包的次数,在这里我们指定了3次,可以从Snt列表现出来。
OPTIONS -w
sudo mtr -w google.com
Start: 2018-06-01T16:03:13+0800
HOST: Mac Loss% Snt Last Avg Best Wrst StDev
1.|-- 10.131.5.1 0.0% 10 2.2 17.2 1.2 95.9 29.3
2.|-- 172.16.105.25 0.0% 10 3.5 4.1 2.3 10.1 2.8
3.|-- 210.73.209.81 0.0% 10 6.7 11.6 5.8 26.1 6.4
4.|-- 118.186.62.141 0.0% 10 26.3 7.5 2.6 26.3 7.5
5.|-- 114.112.78.66 0.0% 10 2.6 4.7 2.4 18.5 5.0
6.|-- 103.241.231.130 0.0% 10 43.4 47.1 43.3 61.4 5.9
7.|-- 103.241.231.69 0.0% 10 44.1 46.7 44.0 54.7 4.1
8.|-- te3-1.c01.cnhkg.hk02.link.capitalonline.net 0.0% 10 44.3 47.4 43.9 65.3 6.6
9.|-- google2-lacp-100g.hkix.net 0.0% 10 48.1 49.2 44.3 68.8 8.4
10.|-- 108.170.241.97 0.0% 10 46.4 50.6 45.3 69.1 7.4
11.|-- 209.85.241.219 0.0% 10 45.5 52.2 44.9 64.3 7.2
12.|-- hkg12s17-in-f14.1e100.net 0.0% 10 44.8 48.1 44.8 53.6 2.9
使用-w
选项表示使用mtr的广泛模式,在报告中显示更详细的主机名。
OPTIONS -x/C/j
sudo mtr -r -c 1 -j baidu.com >> baidu.json
cat baidu.json
{
"report": {
"mtr": {
"src": "Mac",
"dst": "baidu.com",
"tos": "0x0",
"psize": "64",
"bitpattern": "0x00",
"tests": "1"
},
"hubs": [{
"count": "1",
"host": "10.131.5.1",
"Loss%": 0.00,
"Snt": 1,
"Last": 1.94,
"Avg": 1.94,
"Best": 1.94,
"Wrst": 1.94,
"StDev": 0.00
},
{
"count": "2",
"host": "114.112.84.193",
"Loss%": 0.00,
"Snt": 1,
"Last": 2.62,
"Avg": 2.62,
"Best": 2.62,
"Wrst": 2.62,
"StDev": 0.00
},
{
"count": "3",
"host": "114.112.76.98",
"Loss%": 0.00,
"Snt": 1,
"Last": 2.09,
"Avg": 2.09,
"Best": 2.09,
"Wrst": 2.09,
"StDev": 0.00
},
{
"count": "4",
"host": "117.79.134.97",
"Loss%": 0.00,
"Snt": 1,
"Last": 2.41,
"Avg": 2.41,
"Best": 2.41,
"Wrst": 2.41,
"StDev": 0.00
},
{
"count": "5",
"host": "139.159.7.122",
"Loss%": 0.00,
"Snt": 1,
"Last": 6.17,
"Avg": 6.17,
"Best": 6.17,
"Wrst": 6.17,
"StDev": 0.00
},
{
"count": "6",
"host": "61.49.37.9",
"Loss%": 0.00,
"Snt": 1,
"Last": 2.95,
"Avg": 2.95,
"Best": 2.95,
"Wrst": 2.95,
"StDev": 0.00
},
{
"count": "7",
"host": "61.148.7.141",
"Loss%": 0.00,
"Snt": 1,
"Last": 2.26,
"Avg": 2.26,
"Best": 2.26,
"Wrst": 2.26,
"StDev": 0.00
},
{
"count": "8",
"host": "bt-230-101.bta.net.cn",
"Loss%": 0.00,
"Snt": 1,
"Last": 14.30,
"Avg": 14.30,
"Best": 14.30,
"Wrst": 14.30,
"StDev": 0.00
},
{
"count": "9",
"host": "bt-230-122.bta.net.cn",
"Loss%": 0.00,
"Snt": 1,
"Last": 4.87,
"Avg": 4.87,
"Best": 4.87,
"Wrst": 4.87,
"StDev": 0.00
},
{
"count": "10",
"host": "61.49.168.86",
"Loss%": 0.00,
"Snt": 1,
"Last": 3.36,
"Avg": 3.36,
"Best": 3.36,
"Wrst": 3.36,
"StDev": 0.00
},
{
"count": "11",
"host": "???",
"Loss%": 100.00,
"Snt": 1,
"Last": 0.00,
"Avg": 0.00,
"Best": 0.00,
"Wrst": 0.00,
"StDev": 0.00
},
{
"count": "12",
"host": "123.125.115.110",
"Loss%": 0.00,
"Snt": 1,
"Last": 2.96,
"Avg": 2.96,
"Best": 2.96,
"Wrst": 2.96,
"StDev": 0.00
}]
}
}
使用-x
可以将输出存储为xml格式文件,使用-C
可以将输出存储为CSV格式文件,使用-j
选项可以将输出存储为json格式文件。
更多参数可以直接执行man mtr
使用MTR命令诊断网络问题的更多相关文章
- mtr命令
mtr 命令详解 一般在windows 来判断网络连通性用ping 和tracert,ping的话可以来判断丢包率,tracert可以用来跟踪路由,在Linux中有一个更好的网络连通性判断工具,它可以 ...
- android命令行网络时间同步
一.简介 Android基于Linux平台的开源手机操作系统. 二.原理 既然是Linux,那就应该支持linux的各种命令行,高度的可配置,但实验发现Android是Google的一个高度阉割版的l ...
- Linux系列教程(九)——Linux常用命令之网络和关机重启命令
前一篇博客我们讲解了Linux压缩和解压缩命令,使用的最多的是tar命令,因为现在很多源码包都是.tar.gz的格式,通过 tar -zcvf 能完成解压.然后对于.zip格式的文件,使用gunzip ...
- Linux常用命令之网络和关机重启命令
目录 1.网络命令 一.给指定用户发送信息:write 二.给所有用户发送广播信息:wall 三.测试网络连通性:ping 四.查看和设置网卡信息:ifconfig 五.查看发送电子邮件:mail 六 ...
- linux下使用screen和ping命令对网络质量进行监控
linux下使用screen和ping命令对网络质量进行监控 场景:应用连接云服务器经常偶尔会出现连接不上的情况,android和IOS端连接的时候也会出现tcp延时5秒以上,现在想验证是否是云服务商 ...
- mtr 命令
mtr命令的使用: -r --report 以报告的方式发布监测的结果 -s 30 指定发送包的大小 这个随意 按照自己的需求 -i 10 设置icmp协议返回包的时间 -n no- ...
- iostat iotop 查看硬盘的读写、 free 查看内存的命令 、netstat 命令查看网络、tcpdump 命令
iostat 命令 查看硬盘的使用情况: iostat iostat -x iotop 命令: 若没安装先安装: yum install iotop -y free 命令,用于查看内存的使用量: fr ...
- 每天一个linux命令(网络):【转载】ifconfig命令
许多windows非常熟悉ipconfig命令行工具,它被用来获取网络接口配置信息并对此进行修改.Linux系统拥有一个类似的工具,也就是ifconfig(interfaces config).通常需 ...
- RedHat/CentOS 7通过nmcli命令管理网络教程
Red Hat Enterprise Linux 7 和CentOS 7 的网络管理实际上是对NetworkManager的管理,可通过nmcli命令进行控制,下面小编就给大家介绍下RedHat/Ce ...
随机推荐
- R语言做条形图时候,离散变量和连续型变量的区别
1)条形图 条形图或许是最常用图形,常用来展示分类(different categories on the x-axis)和数值(numeric values on the y-axis)之间的关系. ...
- 转-git 配置用户名和邮箱
原址:http://www.cnblogs.com/fsong/p/5540840.html 在安装了git for windows之后,个人总是忘记配置git config的命令,以此记录一下: 配 ...
- 【趣】Python获取变量的变量名
两种不完美的方式: 用locals,globals 用locals获取变量列表,再遍历比较对象. def namestr(obj): ns = globals() return [name for n ...
- TZOJ 3533 黑白图像(广搜)
描述 输入一个n*n的黑白图像(1表示黑色,0表示白色),任务是统计其中八连块的个数.如果两个黑格子有公共边或者公共顶点,就说它们属于同一个八连块.如图所示的图形有3个八连块. 输入 第1行输入一个正 ...
- nginx安装及基础配置(含jdk安装及配置)
0.jdk安装配置 #下载相应的jdk软件包,然后解压安装,我这里包名称为:jdk-7u25-linux-x64.tar.gz tar -xzf jdk-7u25-linux-x64.tar.gz m ...
- JS如何获取PHP循环中的ID
JS如何获取PHP循环中的ID kaalrz 二路公交车 结帖率:83.33% 首先抱歉,因为昨天那帖图片几次都不能用,修改到不能再次修改,今天早上回帖又提示没有这个帖,只好重发一次. 如 ...
- @RequestMapping 介绍
RequestMapping是一个用来处理请求地址映射的注解,可用于类或方法上.用于类上,表示类中的所有响应请求的方法都是以该地址作为父路径. RequestMapping注解有六个属性,下面我们把她 ...
- eclipse安装automake
help->Install new software
- Jmeter通过BeanShell Sampler获取Jmeter的Bin路径,并存入变量供后面的脚本调用
Jmeter的Bin路径是其运行路径,当把自动化测试的脚本放在Bin目录下时,为了将存储CSV的数据文件以及脚本的路径都设置成相对路径,我们需要获取到Jmeter的运行路径: 通过BeanShell ...
- jsp传中文乱码问题 encodeURIComponent()编码方法
方法一: jQuery.ajax({ type:"POST", url:"${ctx}/offer.do", ...