Linux mtr コマンド

Linux コマンド大全


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

このコマンドはgoogle.comに10個のpingパケットを送信し、結果を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. ICMPの代わりにTCP SYNを使用する(一部のファイアウォールを回避)

mtr --tcp example.com

3. 送信元ポートを指定する(特定のルートテスト用)

mtr --port 8080 example.com

4. 結果をCSV形式で保存する

mtr --csv example.com > result.csv

5. 2つの時点のネットワーク状況を比較する

例

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を使用して、よく利用するWebサイトまでのネットワーク経路を確認する
  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コマンドを習得すれば、ネットワーク問題を調査する効率が大幅に向上します。これは、すべてのシステム管理者と開発者が身につけるべきスキルです。


Linux コマンド大全

その他の拡張