如何使用 Linux mtr (My Traceroute) 命令

Mtr 命令是什麼?

Mtr(my traceroute) 是一個命令行網絡診斷工具,它提供了 ping 和 traceroute 命令的功能。 它是一個簡單的跨平台工具,可打印有關網絡數據包從主機系統到指定目標系統的整個路由的信息。 mtr 命令優於 traceroute 命令,因為它還打印兩個系統之間所有網絡躍點的響應百分比和響應時間。

作為網絡管理員,您需要了解 mtr 命令的用法以及可用於自定義輸出的標誌,以便執行高效的網絡診斷。 本文詳細介紹了 mtr 命令的用法以及示例,這些示例將為您提供有關如何在此命令中使用某些標誌的專有技術。

我們已經在 Ubuntu 18.04 LTS 系統上運行了本文中提到的命令和過程。

由於 mtr 是一個命令行實用程序,我們將在 Ubuntu 命令行終端上使用它。 您可以通過系統 Dash 或 Ctrl +Alt+t 快捷方式打開終端應用程序。

Mtr 命令的使用

1.實時查看traceroute報告

mtr 命令的基本用途是查看遠程機器的 traceroute 報告。 您需要做的就是使用 mtr 命令提供遠程系統的域名或 IP 地址,輸出將實時顯示 traceroute 報告。 完成查看報告後,您可以通過按 q 或 Ctrl+C 快捷鍵退出命令。

顯示主機名

mtr 命令的以下語法在 traceroute 報告中顯示主機名。

句法:

$ mtr [domainName/IP]

例子:

$ mtr google.com

顯示數字 IP 地址

當您將 g 標誌與 mtr 命令一起使用時,它會在 traceroute 報告中顯示數字 IP 地址而不是主機名。

句法:

$ mtr -g [domainName/IP]

例子:

$ mtr -g google.com

主機名和數字 IP 地址

當您在 mtr 命令中使用 b 標誌時,它會在 traceroute 報告中顯示數字 IP 地址和主機名。

句法:

$ mtr -b [domainName/IP]

例子:

$ mtr -b google.com

2.指定ping次數限制

您可以將 mtr 命令配置為在打印特定數量的 ping 的 traceroute 報告後退出。 在輸出中,您可以輕鬆查看 Snt 列下的 ping 數; 當 Snt 達到您通過 c 標誌在命令中指定的數量時, mtr 將自動退出。

句法:

$ mtr -c [n] “域名/IP”

例子:

$ mtr -c 10 google.com

3. 啟用報告模式

您可以啟用報告模式,而不是在屏幕上打印 mtr 命令的輸出,該模式將在文本文件中打印輸出。 這樣您就可以記錄網絡分析以供以後使用和觀察。 您需要做的就是通過 r 標誌啟用報告模式,通過 c 標誌指定要限制報告的 ping 計數,並指定保存報告的報告文件名。

句法:

$ mtr -r -c [n] “域名/IP”>“報告名稱”

例子:

$ mtr -r -c 10 google.com >mtr-report-google

默認情況下,報告保存在當前用戶的主文件夾中。 但是,您可以為要保存的報告指定正確的路徑。

清除報告中的輸出

添加帶有 r 標誌的 aw 標誌將使 mtr 能夠為 traceroute 打印相當清晰且更具可讀性的報告。

句法:

$ mtr –rw -c [n] “域名/IP”>“報告名稱”

例子:

mtr -rw -c 10 google.com >mtr-report-google

4. 重新排列輸出字段

當您看到 mtr 報告的輸出時,您會觀察到列以特定的默認方式排列。 o 標誌使您能夠以自定義方式重新排列輸出,以使其更有用和更高效。

句法:

$ mtr -o “[Output Format]” “域名/IP”

mtr 聯機幫助頁可以幫助您在自定義 mtr 報告列時選擇哪些選項。

例子:

$ mtr -o "LSDR NBAW JMXI" google.com

5. 指定 ICMP ECHO 請求之間的時間間隔

儘管在 mtr 命令中每個 ICMP 和 ECHO 請求之間的默認時間間隔是 1 秒,但您可以通過使用 i 標誌來指定新的時間間隔來更改它。

句法:

$ mtr -i [time-in-seconds] “域名/IP”

例子:

$ mtr -i 10 google.com

6. 使用 TCP SYN 數據包或 UDP 數據報

如果您想使用 TCP SYN 或 UDP 數據報來請求 mtr 而不是默認的 ICMP ECHO 請求,您可以分別使用 tcp 和 udp 標誌來實現。

句法:

$ mtr –tcp “域名/IP”

$ mtr –udp “域名/IP”

例子:

$ mtr --tcp google.com
$ mtr --udp google.com

7.指定本地系統和遠程機器之間的最大跳數

您可以通過使用 m 標誌指定時間(以秒為單位)來自定義要在本地系統和遠程計算機之間探測的最大躍點數。 對於 mtr 命令,兩跳之間的默認時間限制為 30 秒。

句法:

$ mtr -m [timeInSeconds] “域名/IP”

例子:

$ mtr -m 35 216.58.223.78

8. 指定數據包大小

通過mtr命令中的s標誌,可以指定用於診斷網絡質量的IP包的大小,單位為字節。

句法:

$ mtr –r -s [packetsize] “域名/IP”

例子:

mtr -r -s 50 google.com

9. 打印 CSV 輸出

mtr 報告的 CSV 輸出使用“,”分隔列。 使用 csv 標誌,您可以自定義 mtr 命令以 CSV 格式輸出報告。

句法:

$ mtr –csv “域名/IP”

例子:

$ mtr --csv google.com

10. 打印 XML 輸出

mtr 命令還可以支持用於打印 traceroute 報告的 XML 格式。 XML 報告是自動處理輸出的不錯選擇,可以通過使用 mtr 命令指定 xml 標誌來打印。

句法:

$ mtr –xml “域名/IP”

例子:

$ mtr --xml google.com

11. 訪問 mtr 幫助和手冊頁

最後,您可以通過以下命令閱讀 mtr 命令的幫助和手冊頁,以獲得有關 mtr 命令的使用和自定義的更多選項。

$ man mtr
$ mtr --help

閱讀本文後,您可以更好地在您的機器和遠程系統之間運行網絡診斷。 您還可以使用 ping 和 traceroute 命令的替代方法,其中包含更多自定義選項以提高生產力和實用性。