tracerouteコマンドでネットワーク経路を調査する方法|出力の見方とトラブル対処コマンド

宮崎智広 この記事の監修:宮崎智広(Linux実務・教育歴20年以上・受講者3,100名超)
HOMELinux技術 リナックスマスター.JP(Linuxマスター.JP)Linuxコマンド, LinuxコマンドP-T, ネットワーク管理コマンド > tracerouteコマンドでネットワーク経路を調査する方法|出力の見方とトラブル対処コマンド
「サーバーにpingは通るのに、Webページが表示されない」 「ネットワーク障害の原因がどこにあるのか切り分けられない」 ネットワークのトラブル対応で、pingの次に使うべきコマンドが traceroute です。目的のサーバーまでの通信経路を1ホップずつ表示してくれるため、「どの区間で通信が止まっているのか」を特定できます。

この記事では、tracerouteコマンド の基本的な使い方から、出力結果の読み方、*(アスタリスク)が表示される原因、mtr との使い分けまでを実践的に解説します。
【この記事でわかること】
・tracerouteはTTLを1ずつ増やしながら、通信経路上のルーターを1ホップずつ可視化するコマンド
・「*」表示の意味、ICMP/UDP/TCPモードの使い分け、ファイアウォール越しの調査方法まで解説
・経路監視にはmtrコマンドが便利。リアルタイムでパケットロス率や遅延を確認できる

「このままじゃマズい」と感じていませんか?
参考書を開く気力もない、同年代に取り残される不安——
でも安心してください。プロのエンジニアはコマンドを暗記していません。
「現場で使える型」を効率よく使いこなしているだけです。
図解60P/登録10秒/解除も3秒 / 詳細はこちら

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日で実務レベルのスキルが身につく【初心者向けハンズオンセミナー】も開催しています。

無料メルマガで学習を続ける

Linuxの実践スキルをメールで毎週お届け。
登録は1分、解除もいつでも可。

登録無料・いつでも解除できます

暗記不要・1時間後にはサーバーが動く

3,100名以上が実践した「型」を無料で公開中

プロのエンジニアはコマンドを暗記していません。
「現場で使える型」を効率よく使いこなしているだけです。
その「型」を図解60Pにまとめた入門マニュアルを、完全無料でプレゼントしています。

登録10秒/合わなければ解除3秒 / 詳細はこちら

Linux無料マニュアル(図解60P) 名前とメールで30秒登録
宮崎 智広

この記事を書いた人

宮崎 智広(みやざき ともひろ)

株式会社イーネットマーキュリー代表。現役のLinuxサーバー管理者として15年以上の実務経験を持ち、これまでに累計3,100名以上のエンジニアを指導してきたLinux教育のプロフェッショナル。「現場で本当に使える技術」を体系的に伝えることをモットーに、実践型のLinuxセミナーの開催や無料マニュアルの配布を通じてLinux人材の育成に取り組んでいる。

趣味は、キャンプにカメラ、トラウト釣り。好きな食べ物は、ラーメンにお酒。休肝日が作れない、酒量を減らせないのが悩み。最近、ドラマ「フライトエンジェル」を観て涙腺が崩壊しました。