mtrコマンド入門
ネットワーク経路を継続的に診断する
mtr(My Traceroute)はtracerouteとpingを組み合わせた高機能ネットワーク診断ツールです。各ホップのレイテンシやパケットロス率をリアルタイムで継続的に測定できます。
こんな人向けの記事です
- ネットワーク経路の問題を継続的に監視したい人
- tracerouteより詳細な情報が欲しい人
- ISPに問題報告する際のエビデンスを取得したい人
Step 1mtrとは・インストール
mtrはtracerouteのように経路を表示しながら、pingのように継続的に統計情報を収集するツールです。問題箇所を正確に特定するのに非常に有効です。
ターミナル
# Debian/Ubuntu系
sudo apt-get install mtr
# RHEL/CentOS/Fedora系
sudo yum install mtr
# macOS(Homebrew)
brew install mtr
# Arch Linux
sudo pacman -S mtr
ポイント: Windowsでは WinMTR というGUI版が利用可能です。WSL内でLinux版のmtrをインストールすることもできます。
Step 2基本的な使い方
ターミナル
# 基本的な実行(リアルタイム表示)
mtr www.google.com
# 数値形式で表示(名前解決なし)
mtr -n www.google.com
# レポートモード(10回測定して結果を表示)
mtr -r -c 10 www.google.com
リアルタイム表示の例:
ターミナル
My traceroute [v0.95]
Host: Loss% Snt Last Avg Best Wrst StDev
1. _gateway (192.168.1.1) 0.0% 50 1.2 1.5 0.8 3.2 0.4
2. isp-router1 (10.0.0.1) 0.0% 50 10.5 11.2 9.8 15.3 1.1
3. isp-core (172.16.0.1) 0.0% 50 12.3 13.1 11.5 18.7 1.5
4. peer-exchange (203.0.113.1) 2.0% 50 15.8 16.5 14.2 25.3 2.3
5. google-edge (142.250.0.1) 0.0% 50 14.5 15.2 13.8 20.1 1.2
Step 3結果の読み方
| 列 | 意味 | 判断基準 |
|---|---|---|
| Loss% | パケットロス率 | 0%が理想。5%以上で問題の可能性 |
| Snt | 送信パケット数 | 多いほど統計が正確 |
| Last | 直近のRTT(ms) | 参考値 |
| Avg | 平均RTT(ms) | 最も重要な指標 |
| Best | 最小RTT(ms) | 理想的な応答時間 |
| Wrst | 最大RTT(ms) | Avgとの差が大きいとジッターが問題 |
| StDev | 標準偏差 | 値が大きいほど不安定 |
注意: 中間ホップでパケットロスがあっても、最終目的地でロスがなければ問題ないことが多いです。中間ルーターはICMP応答を低優先度で処理するためです。
Step 4主なオプション一覧
| オプション | 説明 |
|---|---|
| -r, --report | レポートモード(結果をまとめて表示) |
| -c [数] | 送信パケット数を指定(デフォルト10) |
| -n, --no-dns | 名前解決を無効化(高速化) |
| -w, --report-wide | ホスト名を省略せず表示 |
| -i [秒] | パケット送信間隔 |
| -u | UDPモード |
| -T | TCPモード |
| --csv | CSV形式で出力 |
| --json | JSON形式で出力 |
Step 5レポートモードの活用
ISPへの問題報告用レポート:
ターミナル
# 100回測定のレポートを生成
mtr -r -c 100 -w www.google.com
# JSON形式でファイルに保存
mtr -r -c 100 --json www.google.com > mtr_report.json
# CSV形式でファイルに保存
mtr -r -c 100 --csv www.google.com > mtr_report.csv
TCPモードで特定ポートを指定:
ターミナル
# TCPポート443(HTTPS)で測定
mtr -T -P 443 www.google.com
# TCPポート80(HTTP)で測定
mtr -T -P 80 www.google.com
ポイント: ISPに問題報告する際は、レポートモードで100回以上測定した結果を添付すると効果的です。また、問題発生時と正常時の両方のレポートを比較すると原因特定に役立ちます。
Step 6トラブルシューティング実践
| mtrの結果パターン | 原因の可能性 |
|---|---|
| 最初のホップでLoss%が高い | ローカルネットワーク(Wi-Fi、ルーター)の問題 |
| ISPホップでAvgが急増 | ISPネットワークの混雑または障害 |
| 特定ホップ以降で全てLoss%が高い | そのホップのルーターに問題あり |
| 最終ホップのみLoss%が高い | 目的サーバー側の問題またはICMP制限 |
| StDevが大きい | ネットワークのジッターが大きい(不安定) |
ターミナル
# 双方向の診断(自分→サーバー と サーバー→自分 の両方を確認)
# 自分側から
mtr -r -c 50 target-server.com
# サーバー側から(SSHアクセス可能な場合)
ssh user@target-server.com "mtr -r -c 50 your-ip-address"