MTR – 用於 Linux 的網路診斷工具

MTR 是一個簡單的跨平台命令行網絡診斷工具,將常用的 tracerouteping 程式的功能結合為一個工具。與 traceroute 類似,mtr 會列印有關封包從運行 mtr 的主機到用戶指定目的地主機的路徑信息。

閱讀更多: 如何在 Linux 中審核網絡性能、安全性和進行故障排除

然而,mtr 顯示的信息比 traceroute 更豐富:它確定到遠程機器的路徑,同時列印出所有網絡跳躍的響應百分比以及響應時間,這些跳躍位於本地系統和遠程機器之間的互聯網路由之間。

MTR 如何工作?

一旦運行 mtr,它會探測您指定的本地系統和遠程主機之間的網絡連接。它首先確定主機之間每個網絡跳躍(橋接器、路由器和網關等)的地址,然後 ping(向每個機器發送一系列 ICMP ECHO 請求)以確定到每台機器的連接質量。

在此操作過程中,mtr 會實時輸出有關每台機器的一些有用統計信息,默認情況下更新。

這個工具預先安裝在大多數Linux發行版中,一旦您通過以下解釋的10個mtr命令示例進行Linux網絡診斷,就會變得相當容易使用。

如果mtr未安裝,您可以按照所示使用您的默認套件管理器在您的相應Linux發行版上安裝它。

$ sudo apt install mtr
$ sudo yum install mtr
$ sudo dnf install mtr

10個MTR網絡診斷工具使用示例

1. 使用mtr的最簡單示例是將遠程機器的域名或IP地址作為參數提供,例如google.com216.58.223.78。此命令將向您顯示實時更新的路由跟踪報告,直到您退出程序(通過按下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的次數。由於統計信息被打印到標準輸出,您可以將其重定向到文件以供以後分析。

$ 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/