MTR – 用于Linux的网络诊断工具

MTR是一个简单的跨平台命令行网络诊断工具,将常用的tracerouteping程序的功能结合到一个工具中。与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.com216.58.223.78。这个命令会实时显示一个traceroute报告,直到您退出程序(通过按下qCtrl + 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

2. 您可以强制mtr显示数字IP地址而不是主机名(通常是FQDNs完全限定域名),使用如下的-n标志。

$ 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标志。如果您从Snt列观察,一旦达到指定的ping次数,实时更新就会停止,程序退出。

$ mtr -c5 google.com

5. 使用-r标志将其设置为报告模式,这是一个有关网络质量统计的有用选项。您可以与-c选项一起使用此选项来指定ping的次数。由于统计数据打印到std输出,您可以将其重定向到文件以供以后分析。

$ 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
MTR Fields and Order

7. ICMP ECHO请求之间的默认间隔为一秒,您可以通过改变值使用-i标志来指定ICMP ECHO请求之间的间隔。

$ 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网络配置和故障排除的这些有用指南。

  1. 13 Linux网络配置和故障排除命令
  2. 如何阻止Ping ICMP请求到Linux系统

就是这样了!MTR是一个简单、易于使用且跨平台的网络诊断工具。在本指南中,我们已经解释了Linux中的10个mtr命令示例。如果您有任何问题或想法要与我们分享,请使用下面的评论表单。

Source:
https://www.tecmint.com/mtr-a-network-diagnostic-tool-for-linux/