MTR 是一个简单的、跨平台的命令行网络诊断工具,它将常用的 traceroute 和 ping 命令整合到一个工具中。与 traceroute 类似,mtr 打印从运行 mtr 的主机到用户指定的目标主机的路由信息。
但是,mtr 显示的信息比 traceroute 丰富,它确定到远程计算机的路径,同时打印响应百分比以及本地系统和远程计算机之间的互联网路由中所有网络跃点的响应时间。
运行 mtr 命令后,它会探测本地系统与远程主机之间的网络连接。它首先在不同主机之间建立每个网络设备的跃点(网桥、路由器和网关等)的地址,然后向每一个跃点发送一系列 ICMP 请求(ping),如果接收方可用,它将使用 ICMP 回复数据包进行响应。
在此操作过程中,mtr 会输出有关每台机器的一些有用统计信息,且默认情况下会实时更新。
MTR 工具预装在大多数 Linux 发行版上,如果未安装 mtr,可以使用默认的包管理器安装。
$ sudo apt install mtr
$ sudo yum install mtr
$ sudo dnf install mtr
10 个 MTR 工具网络诊断使用示例
MTR 工具常用参数说明:
- -r 或 -report:以报告模式显示输出
- -p 或 -split:将每次追踪的结果分别列出来,而非如“-report”统计整个结果
- -s 或 -psize:指定ping数据包的大小
- -n 或 -no-dns:不对IP地址做域名反解析
- -a 或 -address:设置发送数据包的IP地址。用于主机有多个IP时
- -4:只使用IPv4协议
- -6:只使用IPv6协议
1.使用 mtr 最常见的例子是以域名或 IP 地址作为参数,例如下面的例子所示。此命令会显示实时更新的路由跟踪报告,直到您按 q 或Ctrl + C
退出。
$ mtr google.com
OR
$ mtr 216.58.223.78
Start: Thu Jun 28 12:10:13 2018
HOST: TecMint Loss% Snt Last Avg Best Wrst StDev
1.|-- 192.168.0.1 0.0% 5 0.3 0.3 0.3 0.4 0.0
2.|-- 5.5.5.211 0.0% 5 0.7 0.9 0.7 1.3 0.0
3.|-- 209.snat-111-91-120.hns.n 80.0% 5 7.1 7.1 7.1 7.1 0.0
4.|-- 72.14.194.226 0.0% 5 1.9 2.9 1.9 4.4 1.1
5.|-- 108.170.248.161 0.0% 5 2.9 3.5 2.0 4.3 0.7
6.|-- 216.239.62.237 0.0% 5 3.0 6.2 2.9 18.3 6.7
7.|-- bom05s12-in-f14.1e100.net 0.0% 5 2.1 2.4 2.0 3.8 0.5
输出项目说明:
- Host: 显示经过每一跳的地址
- LOSS%:到此此节点数据包丢包率,显示每个节点的丢包率
- Snt: 发送包的数量
- Last: 显示的最近一次的返回延时
- Avg: 发送ping包的平均延迟
- Best: 最低延迟时间
- Wrst: 最大延迟时间
- StDev:标准偏差
2.结合 -n 使用,可以强制 mtr 输出显示 IP 地址而不显示域名。
$ mtr -n google.com
Start: Thu Jun 28 12:12:58 2018
HOST: TecMint Loss% Snt Last Avg Best Wrst StDev
1.|-- 192.168.0.1 0.0% 5 0.3 0.3 0.3 0.4 0.0
2.|-- 5.5.5.211 0.0% 5 0.9 0.9 0.8 1.1 0.0
3.|-- ??? 100.0 5 0.0 0.0 0.0 0.0 0.0
4.|-- 72.14.194.226 0.0% 5 2.0 2.0 1.9 2.0 0.0
5.|-- 108.170.248.161 0.0% 5 2.3 2.3 2.2 2.4 0.0
6.|-- 216.239.62.237 0.0% 5 3.0 3.2 3.0 3.3 0.0
7.|-- 172.217.160.174 0.0% 5 3.7 3.6 2.0 5.3 1.4
3.如果希望 mtr 输出同时显示主机名和 IP 地址,请使用下面所示的 -b
标志。
$ mtr -b google.com
Start: Thu Jun 28 12:14:36 2018
HOST: TecMint Loss% Snt Last Avg Best Wrst StDev
1.|-- 192.168.0.1 0.0% 5 0.3 0.3 0.3 0.4 0.0
2.|-- 5.5.5.211 0.0% 5 0.7 0.8 0.6 1.0 0.0
3.|-- 209.snat-111-91-120.hns.n 0.0% 5 1.4 1.6 1.3 2.1 0.0
4.|-- 72.14.194.226 0.0% 5 1.8 2.1 1.8 2.6 0.0
5.|-- 108.170.248.209 0.0% 5 2.0 1.9 1.8 2.0 0.0
6.|-- 216.239.56.115 0.0% 5 2.4 2.7 2.4 2.9 0.0
7.|-- bom07s15-in-f14.1e100.net 0.0% 5 3.7 2.2 1.7 3.7 0.9
4.要将 ping 次数限制为特定值,并在执行 ping 之后退出mtr ,请使用 -c
标志。一旦达到指定的 ping 次数,实时更新就会停止并且退出程序。
$ mtr -c5 google.com
5.可以使用 -r
选项将其设置为报告模式,这个选项可以生成有关网络质量的统计数据。可以将此选项与指定 ping 次数的 -c
选项一起使用。由于统计信息打印到标准输出,您可以将它们重定向到文件中以供以后分析。
$ mtr -r -c 5 google.com >mtr-report
使用-w
选项可启用宽报告模式以获得更清晰的输出。
$ mtr -rw -c 5 google.com >mtr-report
6.还可以按照您希望的方式重新排列输出字段,通过如图所示的 -o
选项来实现(有关字段标签的含义,请参见 mtr 手册)。
$ mtr -o "LSDR NBAW JMXI" 216.58.223.78
7. ICMP 请求之间的默认间隔是一秒,您可以通过使用如图所示的 -i
选项来指定 ICMP 请求之间的间隔。
$ mtr -i 2 google.com
8.可以使用 TCP 数据包或 UDP 数据包代替默认的 ICMP 请求,如图所示。
$ mtr --tcp test.com
或者
$ mtr --udp test.com
9.要指定在本地系统和远程主机之间探测的最大跳数(默认为30),请使用 -m
选项。
$ mtr -m 35 216.58.223.78
10.在探测网络质量时,可以使用 -s
选项设置使用的数据包大小(以字节为单位)。
$ mtr -r -s PACKETSIZE -c 5 google.com >mtr-report
通过这些示例,可以更好地帮助您使用 mtr。
$ man mtr
作者:牛奇网,本站文章均为辛苦原创,在此严正声明,本站内容严禁采集转载,面斥不雅请好自为之,本文网址:https://www.niuqi360.com/linux/how-to-use-mtr-command/