MTR – Linux 的网络诊断工具
MTR是一款简单的跨平台命令行网络诊断工具,它将常用的traceroute和ping程序的功能整合到一个工具中。与traceroute类似,mtr打印有关数据包从运行 mtr 的主机到用户指定的目标主机所采用的路由的信息。
另请参阅:如何在 Linux 中审核网络性能、安全性和排除故障
但是,mtr显示的信息比traceroute更丰富:它确定到远程机器的路径,同时打印响应百分比以及本地系统和远程机器之间的互联网路由中所有网络跳数的响应时间。
MTR 如何运作?
一旦运行mtr,它就会探测本地系统和您指定的远程主机之间的网络连接。它首先建立主机之间每个网络跳点(网桥、路由器和网关等)的地址,然后ping每个网络跳点(向其发送一系列ICMP ECHO请求)以确定到每台机器的链接质量。
在此操作过程中,mtr会输出有关每台机器的一些有用统计数据 - 默认情况下实时更新。
该工具已预安装在大多数 Linux 发行版上,并且一旦您了解了下面说明的 Linux 网络诊断的10 个 mtr 命令示例,它就相当容易使用。
如果未安装 mtr,您可以使用默认包管理器在相应的 Linux 发行版上安装它,如图所示。
$ sudo apt install mtr $ sudo yum install mtr $ sudo dnf install mtr
10 MTR 网络诊断工具使用示例
1.使用mtr的最简单示例是提供远程机器的域名或 IP 地址作为参数,例如google.com或216.58.223.78。此命令将显示实时更新的跟踪路由q
报告,直到您退出程序(按或Ctrl + C
)。
$ mtr google.com OR $ mtr 216.58.223.78 Start: Thu Jun 28 12:10:13 2018 HOST: Example 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
2.您可以强制 mtr 显示数字 IP 地址而不是主机名(通常是FQDN -完全限定域名),使用-n
如图所示的标志。
$ mtr -n google.com Start: Thu Jun 28 12:12:58 2018 HOST: Example 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: Example 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
,请使用标志。如果您从Snt列观察,一旦达到指定的 ping 次数,实时更新就会停止并且程序会退出。
$ mtr -c5 google.com
5.您可以使用标志将其设置为报告模式-r
,这是一个用于生成有关网络质量的统计数据的有用选项。您可以将此选项与-c
指定 ping 次数的选项一起使用。由于统计数据打印到标准输出,因此您可以将它们重定向到文件以供以后分析。
$ 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 ECHO请求之间的默认间隔为一秒,您可以通过使用标志更改值来指定 ICMP ECHO 请求之间的间隔,-i
如图所示。
$ mtr -i 2 google.com
8.您可以使用 TCP SYN 数据包或 UDP 数据报代替默认的 ICMP ECHO 请求,如图所示。
$ mtr --tcp test.com OR $ 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
另请查看有关 Linux 网络配置和故障排除的这些有用指南:
现在就这些了!MTR是一款简单易用且最重要的是跨平台的网络诊断工具。在本指南中,我们解释了Linux 中的10 个 mtr 命令示例。如果您有任何问题或想法要与我们分享,请使用下面的评论表。