2026年8月4日

2026年8月4日

tracert と traceroute の使い分け|ICMP・UDP・TCP の違いと結果が食い違うときの選び方

tracert は Windows、traceroute は Linux や macOS の経路調査コマンドで、どちらも TTL を1ずつ増やしながら中継点を洗い出す仕組みは同じです。大きな違いは「どの種類のパケットで調べるか」で、tracert は ICMP、traceroute は既定で UDP を使います。この違いのせいで、同じ宛先でも結果が食い違うことがあります。この記事では、両者の違いを整理し、調べたい状況に応じてどちらを、どのオプションで使えばよいかを説明します。

共通する仕組み

どちらのコマンドも、次の流れで経路を調べます。

  1. TTL(通過できるルーターの数)を 1 にしてパケットを送る
  2. 最初のルーターで TTL が尽き、そのルーターから「時間超過」の ICMP が返る
  3. TTL を 2、3 と増やしながら繰り返し、宛先に届いたら終了する

1ホップあたり3回ずつ送るのも、最大ホップ数の既定が 30 なのも共通です。違いは、手順1で送るパケットの種類と、宛先に届いたことの判定方法にあります。

違い1:送るパケットの種類

tracert(Windows)は ICMP Echo

tracert は ping と同じ ICMP Echo Request を、TTL を変えながら送ります。宛先に届くと ICMP Echo Reply が返り、それで到達したと判断します。したがって、宛先が ping に応答しない設定だと、tracert も最後のホップで応答なし(*)になります。

traceroute(Linux / macOS)は既定で UDP

traceroute は既定で、通常使われない高い番号のポート(33434 番から順に)へ UDP パケットを送ります。宛先に届くと、そのポートでは何も待ち受けていないため「ポート到達不能」の ICMP が返り、それで到達を判断します。

この方式では、途中や宛先のファイアウォールが UDP の高いポートを遮断していると、宛先付近から先が * * * になります。

結果が食い違う典型例

  • **tracert は最後まで届くが、traceroute は途中から * * ***: UDP が遮断され、ICMP は許可されている環境です。
  • **traceroute は届くが、tracert は最後だけ ***: 宛先が ICMP Echo に応答しない設定です。
  • どちらも最後まで届かないのに、Web サイトは表示できる: ICMP も UDP も絞られていて、Web 用の TCP だけが許可されている環境です。

いずれも「経路が壊れている」わけではなく、調べ方とファイアウォールの方針が合っていないだけです。

違い2:選べる調べ方

Linux の traceroute はプロトコルを切り替えられる

Linux で広く使われている traceroute(多くのディストリビューションで traceroute パッケージとして提供)は、オプションで送るパケットを変えられます。

traceroute example.com              # 既定:UDP
sudo traceroute -I example.com      # ICMP Echo(tracert と同じ方式)
sudo traceroute -T -p 443 example.com  # TCP SYN をポート 443 へ

-I と -T は root 権限が必要です。-T -p 443 は、実際の HTTPS 通信と同じポートで調べるため、Web サーバーへの経路を見るときに最も実態に近い結果になります。なお、ディストリビューションによっては traceroute が最初から入っておらず、sudo apt install traceroute などで追加する必要があります。

root 権限がない環境では、iputils に含まれる tracepath も使えます。UDP で調べつつ、経路上の MTU(pmtu)も表示してくれます。

macOS の traceroute

macOS の traceroute も既定は UDP で、-I で ICMP に切り替えられます。-P でプロトコルを指定するオプションもありますが、指定できる値は版によって異なるため man traceroute で確認してください。

Windows の tracert は ICMP のみ

tracert には送るパケットの種類を変えるオプションがありません。使える主なオプションは次のとおりです。

tracert -d example.com          # 逆引きをしない(速く終わる)
tracert -h 40 example.com       # 最大ホップ数を 40 に
tracert -w 1000 example.com     # 1回の応答待ちを 1000 ミリ秒に
tracert -4 example.com          # IPv4 を指定(-6 で IPv6)

-d を付けないと、各ホップの名前を逆引きするため、終わるまでにかなり時間がかかることがあります。まず -d 付きで経路を見て、必要ならホスト名付きで取り直すと効率的です。

Windows で TCP の到達性を確かめたい場合は、PowerShell の Test-NetConnection が使えます。Test-NetConnection example.com -Port 443 で指定ポートへの接続可否を確認でき、-TraceRoute を付けると経路も表示します(経路の調べ方自体は ICMP です)。

違い3:結果の見た目

Linux / macOS の traceroute は、標準ではホップごとに「ホスト名(IP アドレス)」と3回分の往復時間を1行に出します。tracert は先に3回分の往復時間を並べ、その後にホスト名と IP アドレスを出します。表示の順序が違うだけで、読み方は同じです。

どちらも、途中のホップで * や大きな遅延が出ても、その先のホップが正常ならたいていは問題ありません。中継ルーターは自分宛ての問い合わせへの応答を後回しにしたり、回数を制限したりするためです。判断の基準は「最終ホップまで届いているか」「遅延の増加がその先のホップでも続いているか」です。

状況別の選び方

Web サイトにつながらない・遅い

Linux / macOS から sudo traceroute -T -p 443 で調べるのが最も実態に近い方法です。Windows しかない場合は、tracert で経路の概要を見たうえで、Test-NetConnection -Port 443 で TCP の到達性を別に確認します。

社内ネットワークや VPN の経路を確かめたい

ICMP が許可されていることが多い社内環境なら、tracert や traceroute -I で十分です。まず -d(Windows)や -n(Linux / macOS)を付けて逆引きを省き、どのゲートウェイを通っているかを確認します。

断続的なロスや遅延を調べたい

tracert も traceroute も、各ホップに3回ずつ送るだけなので、ときどき起きる問題は捉えにくいです。継続的に測るなら mtr(Windows では pathping)を使います。pathping は各ホップに繰り返し問い合わせてから統計を出すため、完了まで数分かかります。

結果がどうしても食い違う

ICMP・UDP・TCP の3種類で調べ比べると、どの通信が遮断されているかが見えてきます。また、経路上に負荷分散の装置があると、送るパケットによって通る道が変わることもあります。一度の結果だけで断定せず、時間を置いて複数回取ると判断の精度が上がります。

使うときの注意点

  • 往きの経路しか分からない: どちらのコマンドも自分から相手への経路を調べるもので、戻りの経路は別のことがあります。可能なら相手側からも調べてもらいます。
  • ホスト名から事業者を推測しすぎない: 逆引き名は管理者が付けたもので、古い情報のまま残っていることもあります。目安として扱います。逆引き名の付け方に統一された決まりはありません(2026年10月現在)。
  • 共有するときは自分側の情報に注意: 最初の数ホップには社内や自宅のルーターのアドレスが含まれます。

まとめ

  • tracert(Windows)は ICMP Echo、traceroute(Linux / macOS)は既定で UDP を使うのが最大の違いです。仕組みや既定の最大 30 ホップ・3回ずつ送る点は共通です。
  • 片方だけ途中で止まるのは、多くの場合ファイアウォールが特定のプロトコルを遮断しているためです。
  • Linux の traceroute は -I(ICMP)や -T -p 443(TCP)に切り替えられ、Web サーバーへの経路は TCP で調べるのが実態に近くなります。
  • Windows では tracert に -d を付けて速く終わらせ、TCP の確認は Test-NetConnection -Port で補います。
  • 断続的な問題は mtr や pathping で継続的に測ります。

お気軽にご相談ください

お見積りへ お問い合わせへ
▲