新Linux入門|tracerouteコマンドを使って経路を確認する方法

 ネットワーク通信で「目的地のサーバーに届かない…」「どこで遅延してるんだろう?」というトラブルに遭遇したことはありませんか?💦
そんなときに役立つのが traceroute(トレースルート)コマンド です。

 このコマンドを使うと、あなたのPCから目的地のサーバーまでデータが通るルート(経路)を“目で見て確認”できるんです✨
 まるで「インターネットの地図」をたどるように、通過するルーター(ホップ)を順番に表示してくれる便利なコマンドです。

🧭 tracerouteコマンドとは?

 tracerouteコマンド は、パケットが目的地に到達するまでに通過するルーター(ホップ)を追跡し、それぞれのホップに到達するまでの**応答時間(遅延時間)**を測定して表示します。

このコマンドを使うことで、

  • どのルーターを経由して通信しているのか
  • どの区間で遅延や障害が発生しているのか
    を簡単に確認できます👀

📌 POINT

  • 通信経路を可視化できる
  • 遅延の発生箇所を特定できる
  • ネットワーク障害の切り分けに非常に有効

⚙️ コマンド書式

traceroute [オプション] 宛先ホスト名またはIPアドレス

たとえば、example.com までの経路を調べたい場合は、次のように入力します👇

[suzuki@AlmaLinux ~]$ traceroute example.com

🧩 tracerouteの仕組みをざっくり解説 💡

tracerouteは、TTL(Time To Live) というパケットの寿命を使って経路を調べます。

  1. まずTTL=1のパケットを送信し、最初のルーターで期限切れ(TTL=0)になります。
  2. ルーターは「TTLが切れたよ!」というICMPメッセージを送り返します。
  3. その次にTTL=2のパケットを送信し、次のルーターでTTLが切れて同様にICMPを返します。
  4. これを繰り返して、最終的に目的地に到達するまでの全ルートを調べる、という仕組みです🔍

📘 イメージで言うと…
 あなたのパケットが「中継所(ルーター)」を一つずつ通過しながらゴールを目指していく様子を、tracerouteは順番に追いかけていきます🏃‍♀️💨

🔧 主なオプション一覧

オプション説明
-4IPv4を使用して経路を表示する。
-6IPv6を使用して経路を表示する。
-IICMPエコーリクエストを使用してトレースする(pingのような動作)
-TTCP SYNパケットを使用してトレースする(ファイアウォール越えに有効)
-UUDPパケットを使用してトレースする(デフォルト動作)
-q 回数各ホップへの送信回数を指定する(デフォルトは3回)
-m TTL最大ホップ数(TTLの上限値)を指定する。
-w 秒数各ホップの応答を待つ時間(タイムアウト値)を指定する。
-p ポート番号宛先ポート番号を指定(TCP/UDP時に有効)

💬 補足解説

  • -I はICMP方式でのトレースなので、pingと同様の動作をします。
  • -T はTCPを使うため、ICMPをブロックしているネットワークでも通ることがあります。
  • -m はどこまでたどるかを制限できます(ループ防止にも便利)。

🧪 使用例と出力例

① 通常のtraceroute実行(UDP方式)

[suzuki@AlmaLinux ~]$ traceroute example.com
traceroute to example.com (93.184.216.34), 30 hops max, 60 byte packets
 1  10.0.2.2 (10.0.2.2)  0.543 ms  0.498 ms  0.481 ms
 2  192.168.56.1 (192.168.56.1)  1.284 ms  1.268 ms  1.251 ms
 3  203.0.113.1 (203.0.113.1)  5.612 ms  5.597 ms  5.581 ms
 4  93.184.216.34 (93.184.216.34)  8.974 ms  8.958 ms  8.941 ms

💡 見方のポイント

項目説明
1列目ホップ番号(通過ルーターの順番)
IPアドレスルーターのアドレス
各数値応答時間(ms)— 3回測定された平均遅延時間

② TCP SYNパケットを使用してトレースする

[suzuki@AlmaLinux ~]$ traceroute -T example.com

→ ICMPをブロックしているネットワークでも経路確認ができる場合があります。

③ ICMP方式でトレースする

[suzuki@AlmaLinux ~]$ traceroute -I example.com

→ pingの仕組みに近い形で経路を追跡します。

④ 最大TTL(経路の深さ)を指定する

[suzuki@AlmaLinux ~]$ traceroute -m 20 example.com

→ 20ホップ目まででトレースを終了します。

📊 出力結果を理解しよう

表示項目内容
hop番号通過したルーターの順序番号
IPアドレス/ホスト名各中継ルーターの識別情報
応答時間(ms)各ルーターへの往復遅延時間
*(アスタリスク)応答がなかったことを示す(ルーターがICMPを遮断している場合など)

💡 TIP
 通信が止まっている区間があっても、*(アスタリスク)が出ていればその区間のルーターが応答を拒否している可能性があります。
ネットワーク断線とは限りません。

🌟 まとめ

tracerouteコマンドは、ネットワーク経路を可視化して原因を探る“探偵ツール” のような存在です。
 「どこで遅れているのか」「どこまで届いているのか」を一目で確認できるので、ネットワーク管理やトラブル対応にとても役立ちます。

IPv4でもIPv6でも使える便利なコマンドなので、覚えておくと通信トラブルに強くなれますよ😉