linux mtr 命令
mtr(My Traceroute)是一個結合了 traceroute 和 ping 功能的強大網絡診斷工具。它能夠實時顯示數據包在網絡中的傳輸路徑,并提供詳細的統計信息,是網絡管理員和開發人員排查網絡問題的利器。
mtr 的主要特點
- 實時更新:持續顯示路由和延遲信息
- 雙向診斷:可以同時顯示發送和接收方向的路徑
- 綜合統計:提供丟包率、延遲等關鍵指標
- 可視化界面:交互式顯示網絡路徑狀況
安裝 mtr 命令
在常見 Linux 發行版上安裝
實例
在 macos 上安裝
實例
# 使用 Homebrew 安裝
brew install mtr
brew install mtr
mtr 基本語法
mtr 命令的基本語法格式如下:
mtr [選項] 目標主機
常用選項參數說明
選項 | 說明 |
---|---|
-4 | 強制使用 IPv4 |
-6 | 強制使用 IPv6 |
-c count | 設置發送的ping包數量 |
-i SECONDS | 設置ping間隔時間(秒) |
-n | 不解析主機名,顯示IP地址 |
-r | 生成報告模式(非交互式) |
-s BYTES | 設置ping包大小(字節) |
-w | 寬輸出模式,顯示完整主機名 |
-z | 顯示AS(自治系統)編號 |
–report | 等同于 -r,生成報告后退出 |
–report-wide | 寬格式報告 |
mtr 使用示例
基礎用法:診斷到目標主機的網絡路徑
mtr google.com
執行后會顯示一個實時更新的界面,包含以下信息:
- 跳數(Hop)
- 主機名或IP地址
- 丟包率(Loss%)
- 最近延遲(Last)
- 平均延遲(Avg)
- 最佳延遲(Best)
- 最差延遲(Wrst)
- 標準差(StDev)
生成報告模式(適合腳本調用)
mtr -r -c 10 google.com > mtr_report.txt
這個命令會發送10個ping包到google.com,然后將結果保存到mtr_report.txt文件中。
設置ping包大小和間隔
mtr -s 100 -i 0.5 example.com
這個命令設置每個ping包大小為100字節,間隔時間為0.5秒。
同時顯示AS編號
mtr -z example.com
這個命令會在結果中顯示每個節點的AS(自治系統)編號,有助于識別網絡歸屬。
mtr 輸出解讀
交互式界面說明
當運行mtr時,你會看到類似下面的輸出:
My traceroute [v0.92] example.com (192.0.2.1) 2022-01-01T12:00:00+0000 Keys: Help Display mode Restart statistics Order of fields quit Packets Pings Host Loss% Snt Last Avg Best Wrst StDev 1. 192.168.1.1 0.0% 10 2.1 2.2 1.9 2.5 0.2 2. 10.0.0.1 0.0% 10 5.3 5.5 5.1 6.0 0.3 3. 203.0.113.1 0.0% 10 15.2 15.5 15.0 16.1 0.4 4. example.com 0.0% 10 20.1 20.3 20.0 21.0 0.3
關鍵指標解釋
- Loss%:丟包率,數值越高表示網絡越不穩定
- Snt:已發送的探測包數量
- Last:最近一次探測的延遲(毫秒)
- Avg:平均延遲(毫秒)
- Best:最佳延遲(毫秒)
- Wrst:最差延遲(毫秒)
- StDev:延遲的標準差,反映網絡穩定性
高級用法與技巧
1. 同時追蹤IPv4和IPv6路徑
實例
mtr -4 example.com ?# IPv4路徑
mtr -6 example.com ?# IPv6路徑
mtr -6 example.com ?# IPv6路徑
2. 使用TCP SYN代替ICMP(繞過某些防火墻)
mtr --tcp example.com
3. 指定源端口(用于特定路由測試)
mtr --port 8080 example.com
4. 保存結果到CSV格式
mtr --csv example.com > result.csv
5. 比較兩個時間點的網絡狀況
實例
mtr -c 60 -i 1 -w example.com > result1.txt
# 一段時間后
mtr -c 60 -i 1 -w example.com > result2.txt
diff result1.txt result2.txt
# 一段時間后
mtr -c 60 -i 1 -w example.com > result2.txt
diff result1.txt result2.txt
常見問題排查
1. 高丟包率問題
如果在某個節點出現高丟包率:
- 可能是該節點過載
- 可能是網絡設備配置問題
- 可能是ISP之間的互聯問題
2. 延遲突增問題
如果在某個節點延遲突然增加:
- 可能是網絡擁塞
- 可能是路由變化
- 可能是設備性能問題
3. 星號(*)顯示
如果看到星號(*)而不是IP地址:
- 可能是該節點不響應ICMP請求
- 可能是防火墻阻止了探測包
mtr 與其他工具對比
工具 | 實時更新 | 雙向診斷 | 丟包統計 | 延遲統計 | 交互式界面 |
---|---|---|---|---|---|
ping | ? | ? | ?? | ?? | ? |
traceroute | ? | ? | ? | ?? | ? |
mtr | ?? | ?? | ?? | ?? | ?? |
實踐練習
- 使用mtr檢查到你常用網站的網絡路徑
- 比較Wi-Fi和有線連接的網絡質量差異
- 嘗試用不同大小的ping包測試網絡性能
- 設置一個定時任務,定期生成網絡質量報告
實例
總結
mtr是一個功能強大的網絡診斷工具,它結合了traceroute和ping的優點,提供了實時、全面的網絡路徑分析能力。通過本文的學習,你應該能夠:
- 理解mtr的基本原理和工作方式
- 熟練使用mtr進行網絡問題診斷
- 解讀mtr輸出的各項指標
- 應用mtr解決實際網絡問題
掌握mtr命令將大大提升你排查網絡問題的效率,是每個系統管理員和開發人員都應該具備的技能。
? 版權聲明
文章版權歸作者所有,未經允許請勿轉載。
THE END