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 -n
no-dns不对IP地址做域名解析mtr -a
来设置发送数据包的IP地址 这个对一个主机由多个IP地址是有用的mtr -i
使用这个参数来设置ICMP返回之间的要求默认是1秒mtr -4
IPv4mtr -6
IPv6
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/
许可协议:转载请注明原文链接及作者。