李逍遙

新手如何使用MTR工具:Linux網絡診斷工具教程

李逍遙 運營經驗 2021-09-29

新手如何使用mtr工具?MTR(My traceroute)是幾乎所有Linux發行版本預裝的網絡測試工具,此工具也有對應的Windows版本,名稱為WinMTR。 MTR工具將ping和traceroute命令的功能并入了同一個工具中,實現更強大的功能。 Linux版本的mtr命令默認發送ICMP數據包進行鏈路探測??梢酝ㄟ^“-u”參數來指定使用UDP數據包用于探測。 相對于traceroute命令只會做一次鏈路跟蹤測試,mtr命令會對鏈路上的相關節點做持續探測并給出相應的統計信息。所以,mtr命令能避免節點波動對測試結果的影響,所以其測試結果更正確,建議優先使用。

 新手如何使用MTR工具:Linux網絡診斷工具教程 運營經驗

MTR 是經典網絡診斷工具,常用于網絡故障排除。簡單來說,它工作原理是通過訪問指定 IP 或域名,列出其完整訪問鏈路,并向鏈路節點發送 ICMP 數據包,根據響應情況確定連接質量。MTR 可以視為結合 traceroute 和 ping 特性的網絡檢測工具。

舉個使用場景,如果本地連接到遠程服務器出現不穩定、網絡抖動的情況。這時就可以通過 MTR 查詢問題出在哪,進而提供有用信息給有關方解決。

MTR 安裝

Linux

主流 Linux 發行版可通過系統自帶軟件源安裝 MTR。

# Debian & Ubuntu

apt -y install mtr-tiny

# RHEL & CentOS

yum -y install mtr

如果軟件倉庫沒有,可以下載 MTR 源碼編譯安裝。詳細請查看官方說明。

https://github.com/traviscross/mtr

Windows

Windows 下軟件名為 WinMTR,其官網 http://winmtr.net/ 早已關閉,但可以在第三方載點下載。

https://sourceforge.net/projects/winmtr/files/

另外還有個分支版本,增加了 IPv6 支持和一些錯誤修復。

https://github.com/White-Tiger/WinMTR

MTR使用方法

如果測試連接去程應在本地電腦上運行 MTR 測試服務器 IP。如果測試回程則在服務器上操作,測試本地網絡公網 IP。

對于大多數服務,如網站或代理用途,應更關注回程質量。因為主要是服務器返回數據到本地,而本地發送到服務器的數據量很少。

下面只說 Linux MTR 用法,Windows 圖形操作界面很容易就不做介紹了,

例如測試到 8.8.8.8 的連接情況。命令中的 r 參數表示向目標主機發送 10 個 ICMP 數據包,然后輸出報告。如果不帶參數,則會不間斷運行,取消按 q 鍵退出。

mtr -r 8.8.8.8

示例輸出結果:

Start: Tue Feb 4 01:51:49 2020

HOST: localhost.localdomain Loss% Snt Last Avg Best Wrst StDev

1.|– 64.52.23.1 0.0% 10 0.1 0.1 0.1 0.2 0.0

2.|– 96.44.162.122.static.quad 0.0% 10 0.4 0.8 0.4 1.1 0.0

3.|– colo-lax13.as8100.net 0.0% 10 0.9 3.5 0.2 32.3 10.1

4.|– 204.152.204.18 0.0% 10 1.2 0.8 0.3 1.6 0.0

5.|– 108.170.247.129 0.0% 10 1.4 1.4 1.3 1.6 0.0

6.|– 108.170.234.215 0.0% 10 0.3 0.4 0.3 0.5 0.0

7.|– dns.google 0.0% 10 0.3 0.3 0.2 0.3 0.0

報告里數字編號每一行表示一個躍點,數據包經過每個躍點后到達目標主機。前幾個躍點通常是本地 ISP 節點,后幾個是目標主機 ISP 節點,中間為網絡路由節點。

報告里的各列數據說明如下:

Loss%:數據包丟失率(百分比);

Snt:已發送數據包數量;

Last:最近一個數據包的延遲(毫秒);

Avg:已發數據包的平均延遲(毫秒);

Best:已發數據包中的最小延遲(毫秒);

Wrst:已發數據包中的最大延遲(毫秒);

StDev:已發數據包的延遲偏差,越大表示延遲波動越大越不穩定;

介紹幾個 MTR 常用參數。

如果不希望有的躍點以域名顯示,添加 n 參數禁用反向 DNS 查找,這樣就會始終顯示 IP。

mtr -rn 8.8.8.8

如果需要指定發送數據包數量,通過 c 參數設置。例如發送 20 個數據包(發送數據包后會自動退出,因此可不必添加 r 參數)。

mtr -c 20 8.8.8.8

發送數據包間隔默認為 1 秒。如果希望加快發包速度,用 i 參數設置。例如每 0.2 秒發送(小于 1 秒需要 sudo 提權運行)。

sudo mtr -ri 0.2 8.8.8.8

如果需要指定數據包大小,用 s 參數。例如設置數據包大小為 128 字節(如設置負數,則每次發送數據包大小是隨機的)。

mtr -rs 128 8.8.8.8

發送 UDP 數據包探測而非默認 ICMP ECHO 數據包。

mtr -ru 8.8.8.8

MTR結果分析

MTR 檢測結果主要看丟包率、平均延遲和延遲偏差這幾項。優先看目標主機的情況,也就是最后一跳。如果沒有丟包,延遲和波動值在正常區間。即使往前躍點有丟包或超時,也不一定表示有故障。因為可能受到節點 ICMP 速率限制或丟棄 ICMP 包影響,特別是當只有個別躍點這樣顯示時可能性尤其大。

如果多個躍點出現丟包,并且不是短暫高峰時段網絡擁堵才出現,影響了到目標主機的質量。那么就需根據丟包節點聯系相關方解決,通常要么是本地 ISP 或是服務器商家。

本文固定鏈接:http://www.yuntue.com/post/30587.html | 云服務器 ,轉載請注明出處!

 新手如何使用MTR工具:Linux網絡診斷工具教程 運營經驗
發表評論
色天天综合色天天