1. Mtr
1.1 mtr简介
Mtr是Linux中有一个非常好的的网络连通性判断工具,它结合了ping,traceroute,nslookup 的相关特性。
一般在windows 来判断网络连通性用ping和tracert,ping的话可以来判断丢包率,tracert可以用来跟踪路由,在Linux中有一个更好的网络连通性判断工具,它可以结合ping,nslookup,tracert 来判断网络的相关特性,这个命令就是mtr
1.2 命令详解
命令格式:mtr [参数] [主机]
mtr -h提供帮助命令mtr -v显示mtr的版本信息mtr -r已报告模式显示mtr -s用来指定ping数据包的大小mtr -nno-dns不对IP地址做域名解析mtr -a来设置发送数据包的IP地址 这个对一个主机由多个IP地址是有用的mtr -i使用这个参数来设置ICMP返回之间的要求默认是1秒mtr -4IPv4mtr -6IPv6
pi@raspberrypi:~ $ mtr -r www.baidu.com
HOST: raspberrypi Loss% Snt Last Avg Best Wrst StDev
1.|-- www.huaweimobilewifi.com 0.0% 10 5.7 8.0 5.7 10.5 1.7
2.|-- ??? 100.0 10 0.0 0.0 0.0 0.0 0.0
3.|-- 100.97.1.9 0.0% 10 26.2 41.4 26.2 83.9 17.0
4.|-- 100.97.1.2 0.0% 10 32.6 37.3 27.6 54.1 8.6
5.|-- 172.31.0.4 0.0% 10 39.3 34.0 19.8 54.1 12.1
6.|-- 101.95.40.217 0.0% 10 26.8 26.4 20.2 39.7 5.8
7.|-- 101.95.120.174 0.0% 10 24.2 33.4 24.2 57.5 10.9
8.|-- 202.97.92.42 0.0% 10 29.6 39.4 26.9 57.8 11.1
9.|-- ??? 100.0 10 0.0 0.0 0.0 0.0 0.0
10.|-- ??? 100.0 10 0.0 0.0 0.0 0.0 0.0
11.|-- 115.239.209.38 0.0% 10 32.7 37.4 24.6 61.7 13.0
12.|-- ??? 100.0 10 0.0 0.0 0.0 0.0 0.0
13.|-- ??? 100.0 10 0.0 0.0 0.0 0.0 0.0
14.|-- 115.239.210.27 0.0% 10 35.1 31.8 26.5 43.8 5.0
1.3 结果报告说明
HOST:显示的是IP地址和本机域名Loss%:显示的每个对应IP的丢包率,单位是%;Snt:设置sent报每秒发送数据包的数量,默认值是10 可以通过参数-c来指定。Last:最后一个包的延时;Avg:所有包的平均延时,同ping的Avg;Best:延时最短的,同ping的Min;Wrst:延时最长的,同ping的Max;StDev:是标准偏差
2. traceroute
2.1 简介
traceroute指令让你追踪网络数据包的路由途径,预设数据包大小是40Bytes,用户可另行设置。
2.2 命令详解
命令格式:traceroute [参数] [主机]
-d使用Socket层级的排错功能。-f设置第一个检测数据包的存活数值TTL的大小。-F设置勿离断位。-g设置来源路由网关,最多可设置8个。-i使用指定的网络界面送出数据包。-I使用ICMP回应取代UDP资料信息。-m设置检测数据包的最大存活数值TTL的大小。-n直接使用IP地址而非主机名称。-p设置UDP传输协议的通信端口。-r忽略普通的Routing Table,直接将数据包送到远端主机上。-t设置检测数据包的TOS数值。-v详细显示指令的执行过程。-w设置等待远端主机回报的时间。-x开启或关闭数据包的正确性检验。
pi@raspberrypi:~ $ traceroute www.baidu.com
traceroute to www.baidu.com (115.239.210.27), 30 hops max, 60 byte packets
1 www.huaweimobilewifi.com (192.168.8.1) 29.969 ms 29.929 ms 30.182 ms
2 * * *
3 100.97.1.9 (100.97.1.9) 73.905 ms 77.927 ms 78.063 ms
4 100.97.1.2 (100.97.1.2) 70.830 ms 70.449 ms 70.662 ms
5 172.31.0.4 (172.31.0.4) 77.567 ms 77.662 ms 77.447 ms
6 101.95.40.177 (101.95.40.177) 78.388 ms 101.95.40.217 (101.95.40.217) 38.071 ms 101.95.89.229 (101.95.89.229) 58.613 ms
7 61.152.86.58 (61.152.86.58) 69.650 ms 101.95.88.6 (101.95.88.6) 48.548 ms 61.152.86.2 (61.152.86.2) 54.820 ms
8 * * 202.97.92.42 (202.97.92.42) 55.791 ms
9 220.191.200.30 (220.191.200.30) 50.032 ms 220.191.200.138 (220.191.200.138) 56.259 ms 220.191.200.126 (220.191.200.126) 58.008 ms
10 * * *
11 115.239.209.38 (115.239.209.38) 48.987 ms 115.239.209.10 (115.239.209.10) 51.455 ms 115.239.209.18 (115.239.209.18) 35.978 ms
12 * * *
13 * * *
2.3 结果报告说明
记录按序列号从1开始,每个纪录就是一跳 ,每跳表示一个网关,我们看到每行有三个时间,单位是 ms,其实就是-q的默认参数。探测数据包向每个网关发送三个数据包后,网关响应后返回的时间;如果您用 traceroute -q 4 www.baidu.com ,表示向每个网关发送4个数据包。
有时我们traceroute 一台主机时,会看到有一些行是以星号表示的。出现这样的情况,可能是防火墙封掉了ICMP的返回信息,所以我们得不到什么相关的数据包返回数据。
有时我们在某一网关处延时比较长,有可能是某台网关比较阻塞,也可能是物理设备本身的原因。当然如果某台DNS出现问题时,不能解析主机名、域名时,也会 有延时长的现象;您可以加-n 参数来避免DNS解析,以IP格式输出数据。
如果在局域网中的不同网段之间,我们可以通过traceroute 来排查问题所在,是主机的问题还是网关的问题。如果我们通过远程来访问某台服务器遇到问题时,我们用到traceroute 追踪数据包所经过的网关,提交IDC服务商,也有助于解决问题;但目前看来在国内解决这样的问题是比较困难的,就是我们发现问题所在,IDC服务商也不可能帮助我们解决。
2.4 Mac下traceroute的使用
在Spotlight中搜索网络实用工具,选择Traceroute即可使用;

转载请注明出处:
文章地址:实用Mtr和Traceroute来判断网络的连通性和路由追踪
文章作者:凌风
原始连接:https://lingfeng.me/blog/linux/mtr-traceroute/
许可协议:转载请注明原文链接及作者。