traceroute です。目的のサーバーまでの通信経路を1ホップずつ表示してくれるため、「どの区間で通信が止まっているのか」を特定できます。この記事では、
tracerouteコマンド の基本的な使い方から、出力結果の読み方、*(アスタリスク)が表示される原因、mtr との使い分けまでを実践的に解説します。・tracerouteはTTLを1ずつ増やしながら、通信経路上のルーターを1ホップずつ可視化するコマンド
・「*」表示の意味、ICMP/UDP/TCPモードの使い分け、ファイアウォール越しの調査方法まで解説
・経路監視にはmtrコマンドが便利。リアルタイムでパケットロス率や遅延を確認できる
でも安心してください。プロのエンジニアはコマンドを暗記していません。
「現場で使える型」を効率よく使いこなしているだけです。
tracerouteコマンドの仕組み
traceroute は、目的のホストに向けてTTL(Time To Live=パケットの生存時間)を1ずつ増やしながらパケットを送信します。各ルーター(中継機器)はTTLが0になったパケットを破棄し、送信元にICMPエラーを返します。この応答を利用して、経路上のルーターを1台ずつ特定していきます。簡単に言えば、「1番目のルーターは?」「2番目は?」と順番に問いかけていく仕組みです。
基本的な使い方
# 基本書式 # traceroute ホスト名(またはIPアドレス) $ traceroute www.example.com traceroute to www.example.com (93.184.216.34), 30 hops max, 60 byte packets 1 gateway (192.168.1.1) 1.234 ms 1.112 ms 1.045 ms 2 10.0.0.1 (10.0.0.1) 5.678 ms 5.432 ms 5.321 ms 3 isp-router.example.net (203.0.113.1) 12.345 ms 12.234 ms 12.123 ms 4 core-router.example.net (198.51.100.1) 15.678 ms 15.567 ms 15.456 ms 5 93.184.216.34 (93.184.216.34) 20.123 ms 20.012 ms 19.901 ms
出力結果の読み方
各行の意味は以下の通りです。・左端の数字:ホップ番号(1番目のルーター、2番目のルーター、という順番)
・ホスト名(IPアドレス):そのホップにあるルーターの情報
・3つの時間(ms):各パケットの往復時間(RTT)。tracerouteは1ホップあたり3回パケットを送信するため、3つの値が表示される
ホップ数が増えるにつれて応答時間が長くなるのが一般的です。途中で急に応答時間が跳ね上がっている箇所があれば、そこがボトルネックの可能性があります。
よく使うオプション
1. IPアドレスだけで表示する(-n)
-n オプションを付けると、DNS逆引きを行わずにIPアドレスだけで結果を表示します。逆引きに時間がかかる環境では、結果の表示が速くなります。$ traceroute -n www.example.com traceroute to www.example.com (93.184.216.34), 30 hops max, 60 byte packets 1 192.168.1.1 1.234 ms 1.112 ms 1.045 ms 2 10.0.0.1 5.678 ms 5.432 ms 5.321 ms 3 203.0.113.1 12.345 ms 12.234 ms 12.123 ms
2. 最大ホップ数を変更する(-m)
デフォルトでは最大30ホップまで調査しますが、-m で変更できます。# 最大ホップ数を15に制限 $ traceroute -m 15 www.example.com
3. ICMPモードで実行する(-I)
tracerouteはデフォルトでUDPパケットを使用しますが、-I オプションでICMP(pingと同じプロトコル)モードに切り替えられます。ファイアウォールでUDPがブロックされている場合に有効です。# ICMP モードで実行(root権限が必要) $ sudo traceroute -I www.example.com
4. TCPモードで実行する(-T)
-T オプションでTCPパケットを使用します。Webサーバーへの疎通確認では、実際のHTTP通信に近い条件で調査できるため有効です。# TCP モードで実行(root権限が必要) $ sudo traceroute -T -p 80 www.example.com
5. 応答待ち時間を変更する(-w)
各ホップの応答待ち時間を秒単位で指定します。デフォルトは5秒です。# 応答待ち時間を3秒に短縮 $ traceroute -w 3 www.example.com
*(アスタリスク)が表示される原因と対処
出力に* が表示される場合、そのホップのルーターから応答がなかったことを意味します。3 203.0.113.1 (203.0.113.1) 12.345 ms 12.234 ms 12.123 ms 4 * * * 5 * * * 6 198.51.100.1 (198.51.100.1) 18.456 ms 18.345 ms 18.234 ms
* が表示される主な原因は以下の通りです。・ファイアウォールで応答が遮断されている:セキュリティ上の理由でICMP応答を返さないルーターは珍しくない。途中のホップが
* でも最終目的地に到達していれば問題ない・ネットワーク障害で通信が途切れている:特定のホップ以降がすべて
* の場合、その地点で障害が発生している可能性が高い・応答が時間内に返ってこなかった:
-w オプションで待ち時間を延ばすと解決する場合がある途中の
* は気にしなくてよいケースが多いですが、最終目的地まで到達できていない場合はネットワーク障害を疑いましょう。「traceroute: command not found」の対処法
最小構成でインストールしたLinuxでは、tracerouteが入っていない場合があります。# RHEL / CentOS / AlmaLinux / Rocky Linux $ sudo dnf install traceroute # Ubuntu / Debian $ sudo apt install traceroute
tracerouteとpingの使い分け
ping は「目的地に到達できるか」を確認するコマンドですが、到達できなかった場合に「どこで止まっているか」はわかりません。traceroute は経路上の各ホップを表示するため、障害箇所の特定に使います。・まずpingで疎通確認 → 応答がなければ tracerouteで障害箇所を特定 という流れが基本です。
mtrコマンドで継続的に監視する
mtr は traceroute と ping を組み合わせたコマンドで、各ホップの応答状況をリアルタイムに更新しながら表示します。断続的な障害の調査に便利です。# mtr でリアルタイム監視(終了は q キー) $ mtr www.example.com # テキストモードでレポート出力(10回送信して終了) $ mtr -r -c 10 www.example.com
mtr がインストールされていない場合は、sudo dnf install mtr または sudo apt install mtr でインストールできます。本記事のまとめ(tracerouteコマンド早見表)
| やりたいこと | コマンド |
|---|---|
| 通信経路を表示する | traceroute ホスト名 |
| IPアドレスだけで表示する | traceroute -n ホスト名 |
| 最大ホップ数を指定する | traceroute -m 15 ホスト名 |
| ICMPモードで実行する | sudo traceroute -I ホスト名 |
| TCPモードで実行する | sudo traceroute -T -p 80 ホスト名 |
| 応答待ち時間を変更する | traceroute -w 3 ホスト名 |
| リアルタイムで経路監視する | mtr ホスト名 |
ネットワークトラブルを自力で切り分けられるエンジニアになりませんか?
pingとtracerouteの使い分けは、障害対応の第一歩。しかし現場ではそこからルーティング・DNS・ファイアウォールまで一気通貫で見る力が問われます。
ネットの切れ端の情報をコピペするだけでなく、現場で通用する安全なLinuxサーバー構築の「型」を体系的に身につけたい方へ、『Linuxサーバー構築入門マニュアル(図解60P)』を完全無料でプレゼントしています。
「独学の時間がもったいない」「プロから直接、現場の技術を最短で学びたい」という本気の方には、2日で実務レベルのスキルが身につく【初心者向けハンズオンセミナー】も開催しています。
3,100名以上が実践した「型」を無料で公開中
プロのエンジニアはコマンドを暗記していません。
「現場で使える型」を効率よく使いこなしているだけです。
その「型」を図解60Pにまとめた入門マニュアルを、完全無料でプレゼントしています。
登録10秒/合わなければ解除3秒 / 詳細はこちら
- 次のページへ:topコマンドでCPU・メモリ使用状況を確認する方法|プロセス絞り込みとload averageの読み方
- 前のページへ:ntpdateでLinuxサーバーの時刻を同期する方法|chronyへの移行とcrontab連携も
- この記事の属するカテゴリ:Linuxコマンド・LinuxコマンドP-T・ネットワーク管理コマンドへ戻る

無料メルマガで学習を続ける
Linuxの実践スキルをメールで毎週お届け。
登録は1分、解除もいつでも可。
登録無料・いつでも解除できます