traceroute コマンドは、指定したホストまでのネットワーク経路(ルーターやゲートウェイの通過点)を表示するためのコマンドです。
ネットワーク遅延や接続トラブルの原因を調査するときに利用されます。
構文(Syntax)
traceroute [オプション] ホスト名またはIPアドレス
主なオプション一覧
| オプション | 説明 | 使用例 |
|---|---|---|
-n | ホスト名を解決せずにIPアドレスのみ表示 | traceroute -n example.com |
-w 秒数 | 応答のタイムアウト秒数を指定 | traceroute -w 2 example.com |
-q 回数 | 各ホップに送信するパケット数(デフォルト3) | traceroute -q 1 example.com |
-m TTL | 最大ホップ数(デフォルト30) | traceroute -m 20 example.com |
-I | ICMP Echo Request を使用(ping と同様の方式) | traceroute -I example.com |
-T | TCP SYN パケットを使用 | traceroute -T example.com |
-p PORT | TCP/UDP のポートを指定 | traceroute -T -p 80 example.com |
実行例
基本的な経路調査
traceroute example.com
出力例:
traceroute to example.com (93.184.216.34), 30 hops max, 60 byte packets
1 192.168.1.1 (192.168.1.1) 0.456 ms 0.412 ms 0.398 ms
2 203.0.113.1 (203.0.113.1) 5.321 ms 5.287 ms 5.240 ms
3 198.51.100.2 (198.51.100.2) 12.123 ms 12.099 ms 12.088 ms
4 93.184.216.34 (93.184.216.34) 20.456 ms 20.432 ms 20.401 ms
ホスト名解決を省略
traceroute -n example.com
出力例:
1 192.168.1.1 0.456 ms 0.412 ms 0.398 ms
2 203.0.113.1 5.321 ms 5.287 ms 5.240 ms
3 198.51.100.2 12.123 ms 12.099 ms 12.088 ms
4 93.184.216.34 20.456 ms 20.432 ms 20.401 ms
ICMPモードでの経路調査
sudo traceroute -I example.com
TCP SYN パケットを使用(ファイアウォール回避用)
sudo traceroute -T -p 443 example.com
エラー例(DNS解決できない場合)
traceroute unknown.host
出力例:
traceroute: unknown.host: Name or service not known
関連コマンド
ping: 指定ホストとの疎通を確認する。mtr:pingとtracerouteを組み合わせたリアルタイム経路調査ツール。ss/netstat: ローカルのソケット状態を確認する。
備考
- 一般的に
tracerouteは UDP パケットを利用しますが、環境やオプションにより ICMP や TCP を使用できます。 - Linux では
tracerouteパッケージが必要(インストールされていない場合はtracerouteコマンドが使えない)。 traceroute実行には root 権限が必要な場合があります(特に ICMP/TCP オプション使用時)。
参考
- manページ: https://man7.org/linux/man-pages/man8/traceroute.8.html
- traceroute公式ドキュメント: https://traceroute.sourceforge.net/

コメント