linux網絡診斷工具(結合ping和traceroute)是什么-mtr 命令使用與實例

linux網絡診斷工具(結合ping和traceroute)是什么-mtr 命令使用與實例

linux mtr 命令


mtr(My Traceroute)是一個結合了 traceroute 和 ping 功能的強大網絡診斷工具。它能夠實時顯示數據包在網絡中的傳輸路徑,并提供詳細的統計信息,是網絡管理員和開發人員排查網絡問題的利器。

mtr 的主要特點

  • 實時更新:持續顯示路由和延遲信息
  • 雙向診斷:可以同時顯示發送和接收方向的路徑
  • 綜合統計:提供丟包率、延遲等關鍵指標
  • 可視化界面:交互式顯示網絡路徑狀況

安裝 mtr 命令

在常見 Linux 發行版上安裝

實例

# debian/ubuntu 系統
sudo apt-get install mtr

# centos/RHEL 系統
sudo yum install mtr

# Fedora 系統
sudo dnf install mtr

# Arch Linux 系統
sudo pacman -S mtr

在 macos 上安裝

實例

# 使用 Homebrew 安裝
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

關鍵指標解釋

  1. Loss%:丟包率,數值越高表示網絡越不穩定
  2. Snt:已發送的探測包數量
  3. Last:最近一次探測的延遲(毫秒)
  4. Avg:平均延遲(毫秒)
  5. Best:最佳延遲(毫秒)
  6. Wrst:最差延遲(毫秒)
  7. StDev:延遲的標準差,反映網絡穩定性

高級用法與技巧

1. 同時追蹤IPv4和IPv6路徑

實例

mtr -4 example.com ?# IPv4路徑
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


常見問題排查

1. 高丟包率問題

如果在某個節點出現高丟包率:

  • 可能是該節點過載
  • 可能是網絡設備配置問題
  • 可能是ISP之間的互聯問題

2. 延遲突增問題

如果在某個節點延遲突然增加:

  • 可能是網絡擁塞
  • 可能是路由變化
  • 可能是設備性能問題

3. 星號(*)顯示

如果看到星號(*)而不是IP地址:

  • 可能是該節點不響應ICMP請求
  • 可能是防火墻阻止了探測包

mtr 與其他工具對比

工具 實時更新 雙向診斷 丟包統計 延遲統計 交互式界面
ping ? ? ?? ?? ?
traceroute ? ? ? ?? ?
mtr ?? ?? ?? ?? ??

實踐練習

  1. 使用mtr檢查到你常用網站的網絡路徑
  2. 比較Wi-Fi和有線連接的網絡質量差異
  3. 嘗試用不同大小的ping包測試網絡性能
  4. 設置一個定時任務,定期生成網絡質量報告

實例

# 示例:每天生成網絡狀況報告
(crontab -l 2>/dev/NULL; echo “0 2 * * * /usr/sbin/mtr -r -c 100 google.com > ~/network_report_$(date +%Y%m%d).txt”) | crontab –


總結

mtr是一個功能強大的網絡診斷工具,它結合了traceroute和ping的優點,提供了實時、全面的網絡路徑分析能力。通過本文的學習,你應該能夠:

  1. 理解mtr的基本原理和工作方式
  2. 熟練使用mtr進行網絡問題診斷
  3. 解讀mtr輸出的各項指標
  4. 應用mtr解決實際網絡問題

掌握mtr命令將大大提升你排查網絡問題的效率,是每個系統管理員和開發人員都應該具備的技能。


? 版權聲明
THE END
喜歡就支持一下吧
點贊9 分享