mtr コマンドとは?
Mtr (my traceroute) は、ping および traceroute コマンドの機能を提供するコマンドライン ネットワーク診断ツールです。これは、ホスト システムから指定された宛先システムまでのネットワーク パケットのルート全体に関する情報を出力する、シンプルなクロスプラットフォーム ツールです。 mtr コマンドは、2 つのシステム間のすべてのネットワーク ホップの応答率と応答時間を出力するため、traceroute コマンドよりも優れています。
ネットワーク管理者は、生産的なネットワーク診断を実行するために、mtr コマンドの使用方法と、出力をカスタマイズするために使用できるフラグを知っている必要があります。この記事では、mtr コマンドの使用方法を詳しく説明し、このコマンドで特定のフラグを使用する方法を示す例を示します。
この記事で説明するコマンドと手順は、Ubuntu 20.04 および Ubuntu 22.04 LTS システムで実行しましたが、Debian 11 でも動作するはずです。
mtr はコマンド ライン プログラムであるため、Ubuntu コマンド ラインであるターミナルで使用します。システム ダッシュまたはキーの組み合わせ Ctrl +Alt+t を使用して、ターミナル アプリケーションを開くことができます。
mtr コマンドのインストール
mtr コマンドは、システムにデフォルトでインストールされていない可能性があります。ただし、apt で簡単にインストールできます。
sudo apt install mtr
mtr コマンドの使い方
1. traceroute レポートをリアルタイムで表示
mtr コマンドは、主にリモート マシンの traceroute レポートを表示するために使用されます。 mtr コマンドを使用してリモート システムのドメイン名または IP アドレスを入力するだけで、traceroute レポートがリアルタイムで出力されます。レポートの表示が完了したら、q または Ctrl+C キーの組み合わせでコマンドを終了できます。
ホスト名を表示
次の mtr コマンドの構文は、traceroute レポートにホスト名を表示します。
構文:
$ mtr [ドメイン名/IP]
例:
$ mtr google.com
数値の IP アドレスを表示
mtr コマンドで g フラグを使用すると、traceroute レポートにホスト名の代わりに数値の IP アドレスが表示されます。
構文:
$ mtr -g [ドメイン名/IP]
例:
$ mtr -g google.com
ホスト名と数値 IP アドレスの両方
mtr コマンドで b フラグを使用すると、数値の IP アドレスとホスト名の両方が traceroute レポートに表示されます。
構文:
$ mtr -b [ドメイン名/IP]
例:
$ mtr -b google.com
2. ping 数の制限を指定
特定の数の ping の traceroute レポートを出力した後に終了するように mtr コマンドを構成できます。出力では、Snt 列の下にある ping の数を簡単に確認できます。 Snt が c フラグを介してコマンドで指定した数に達すると、mtr は自動的に終了します。
構文:
$ mtr -c [n] “ ドメイン名/IP"
例:
$ mtr -c 10 google.com
3.レポートモードを有効にする
mtr コマンドの出力を画面に出力する代わりに、出力をテキスト ファイルに出力するレポート モードを有効にすることができます。このようにして、後で使用および観察するためにネットワーク分析を記録できます。 r フラグを使用してレポート モードを有効にし、c フラグを使用してレポートを制限する ping カウントを指定し、レポートを保存するレポート ファイル名を指定するだけです。
構文:
$ mtr -r -c [n] “ ドメイン名/IP”>”レポート名”
例:
$ mtr -r -c 10 google.com >mtr-report-google
デフォルトでは、レポートは現在のユーザーのホーム フォルダーに保存されます。ただし、レポートを保存する適切なパスを指定することはできます。
レポートの出力をクリア
r フラグに w フラグを追加すると、mtr は、traceroute のかなり明確で読みやすいレポートを出力できるようになります。
構文:
$ mtr – rw -c [n] “ ドメイン名/IP”>”レポート名”
例:
mtr -rw -c 10 google.com >mtr-report-google
4.出力フィールドを再配置
mtr レポートの出力を見ると、列が特定のデフォルトの方法で配置されていることがわかります。 o フラグを使用すると、カスタマイズされた方法で出力を再配置して、より便利で生産的なものにすることができます。
構文:
$ mtr -o “[出力フォーマット]” “ ドメイン名/IP"
mtr のマンページは、mtr レポートの列をカスタマイズする際のオプションについて説明しています。
例:
$ mtr -o "LSDR NBAW JMXI" google.com
5. ICMP ECHO リクエスト間の時間間隔を指定
各 ICMP および ECHO 要求間のデフォルトの時間間隔は mtr コマンドで 1 秒ですが、i フラグを使用して新しい時間間隔を指定することで変更できます。
構文:
$ mtr -i [秒単位の時間] “ ドメイン名/IP"
例:
$ mtr -i 10 google.com
6. TCP SYN パケットまたは UDP データグラムを使用
デフォルトの ICMP ECHO リクエストの代わりに、TCP SYN または UDP データグラムを使用して mtr をリクエストする場合は、それぞれ tcp フラグと udp フラグを使用して実行できます。
構文:
$ mtr –tcp “ドメイン名/IP”
$ mtr –udp “ドメイン名/IP”
例:
$ mtr --tcp google.com
$ mtr --udp google.com
7.ローカル システムとリモート マシン間の最大ホップ数を指定します
m フラグを使用して時間を秒単位で指定することにより、ローカル システムとリモート マシンの間でプローブされるホップの最大数をカスタマイズできます。 mtr コマンドの場合、2 つのホップ間のデフォルトの制限時間は 30 秒です。
構文:
$ mtr -m [timeInSeconds] “ ドメイン名/IP"
例:
$ mtr -m 35 216.58.223.78
8.パケット サイズを指定
mtr コマンドの s フラグを使用して、ネットワーク品質を診断するための IP パケットのサイズをバイト単位で指定できます。
構文:
$ mtr – r -s [パケットサイズ] “ ドメイン名/IP"
例:
mtr -r -s 50 google.com
9. CSV出力を印刷
mtr レポートの CSV 出力では、列が「,」で区切られています。 csv フラグを使用すると、mtr コマンドをカスタマイズしてレポートを CSV 形式で出力できます。
構文:
$ mtr –csv “ドメイン名/IP”
例:
$ mtr --csv google.com
10. XML 出力の印刷
mtr コマンドは、traceroute レポートを印刷するための XML 形式もサポートできます。 XML レポートは、出力の自動処理に適したオプションであり、mtr コマンドで xml フラグを指定して印刷できます。
構文:
$ mtr –xml “ドメイン名/IP”
例:
$ mtr --xml google.com
11. mtr ヘルプとマニュアル ページへのアクセス
最後に、mtr コマンドのヘルプとマニュアル ページを次のコマンドで読むことにより、mtr コマンドの使用法とカスタマイズのためのさらなるオプションを取得できます。
$ man mtr
$ mtr --help
ここにすべての mtr コマンドライン オプションのリストがあります
Usage: mtr [options] hostname -F, --filename FILE read hostname(s) from a file -4 use IPv4 only -6 use IPv6 only -u, --udp use UDP instead of ICMP echo -T, --tcp use TCP instead of ICMP echo -I, --interface NAME use named network interface -a, --address ADDRESS bind the outgoing socket to ADDRESS -f, --first-ttl NUMBER set what TTL to start -m, --max-ttl NUMBER maximum number of hops -U, --max-unknown NUMBER maximum unknown host -P, --port PORT target port number for TCP, SCTP, or UDP -L, --localport LOCALPORT source port number for UDP -s, --psize PACKETSIZE set the packet size used for probing -B, --bitpattern NUMBER set bit pattern to use in payload -i, --interval SECONDS ICMP echo request interval -G, --gracetime SECONDS number of seconds to wait for responses -Q, --tos NUMBER type of service field in IP header -e, --mpls display information from ICMP extensions -Z, --timeout SECONDS seconds to keep probe sockets open -M, --mark MARK mark each sent packet -r, --report output using report mode -w, --report-wide output wide report -c, --report-cycles COUNT set the number of pings sent -j, --json output json -x, --xml output xml -C, --csv output comma separated values -l, --raw output raw format -p, --split split output -t, --curses use curses terminal interface --displaymode MODE select initial display mode -g, --gtk use GTK+ xwindow interface -n, --no-dns do not resolve host names -b, --show-ips show IP numbers and host names -o, --order FIELDS select output fields -y, --ipinfo NUMBER select IP information in output -z, --aslookup display AS number -h, --help display this help and exit -v, --version output version information and exit
この記事を読んだ後は、マシンとリモート システムの間でネットワーク診断を実行する準備が整います。また、ping および traceroute コマンドに代わるものもあり、生産性と有用性を向上させるための多くのカスタマイズ オプションがあります。