tracert(トレースルート)の使い方と結果の見方 — どこで止まっているかを調べる

公開: 2026年10月 カテゴリ: インフラ実務

ping が通らないとき、次に知りたいのは「どこまでは届いていて、どこで止まっているのか」です。それを1台ずつ順に確かめるのが tracert(トレースルート)です。この記事では、日本語版Windowsで実際に表示される画面をもとに、使い方と結果の読み方、止まっているように見えても問題ないケースを説明します。

tracertの仕組み — TTLを1つずつ増やして送る

IPのパケットには、TTL(Time To Live)という「あと何台のルーターを通れるか」を表す数字が付いています。ルーターを1台越えるたびに1減り、0になるとそのルーターがパケットを捨てて、送り主に「期限切れ」の通知(ICMPの時間超過メッセージ)を返します。

tracertはこの仕組みを利用します。TTLを1にして送ると1台目のルーターが、2にして送ると2台目のルーターが通知を返すので、TTLを1つずつ増やしていけば、通知を返してきたルーターを順番に並べることができます。これが経路の一覧になります。pingで「転送中に TTL が期限切れになりました。」と出るのも同じ仕組みです(pingのエラー表示)。

使い方とオプション

コマンドプロンプトかPowerShellで、宛先のIPアドレスか名前を付けて実行します。

tracert www.example.com
tracert -d 203.0.113.10
やりたいことWindows(tracert)Linux(traceroute)
途中のルーターの名前を引かずに速く終わらせる-d-n
調べる最大の台数(ホップ数)を決める-h 15(既定は30)-m 15(既定は30)
1回の応答を待つ時間-w 1000(ミリ秒)-w 1(秒)
IPv4/IPv6を指定する-4 / -6-4 / -6

何も付けないと、途中のルーターごとに名前解決(DNSの逆引き)をするので時間がかかります。経路を確かめたいだけなら、-d を付けるのがおすすめです。

結果の見方

tracert -d を実行すると、次のように表示されます(IPアドレスは説明用の値に置き換えています)。

203.0.113.10 へのルートをトレースしています。経由するホップ数は最大 30 です

  1    <1 ms    <1 ms    <1 ms  192.168.1.1
  2     8 ms     6 ms     6 ms  198.51.100.1
  3     3 ms     3 ms     3 ms  198.51.100.33
  4    12 ms    11 ms    12 ms  198.51.100.70
  5    12 ms    11 ms    12 ms  203.0.113.10

トレースを完了しました。
部分意味
左端の数字(1〜5)何台目か(ホップ数)。1台目はたいてい自宅や社内のルーター(デフォルトゲートウェイ)
3つの時間そのルーターまでの往復時間。1台につき3回ずつ送って、それぞれの結果を表示する
右端のアドレス通知を返してきたルーター。最後の行が宛先のアドレスなら、宛先まで届いている

時間は「宛先までの合計」ではなく、「そのルーターまでの往復時間」です。そのため、上の例のように2台目(8ms)より3台目(3ms)のほうが短い、ということも普通に起こります。

「*」と「要求がタイムアウトしました。」の読み方

時間の代わりに * が並び、「要求がタイムアウトしました。」と表示される行は、待ち時間のうちに通知が返ってこなかったことを表します。ただし、それだけで「そこで止まっている」とは言えません。どの行に出ているかで意味が変わります。

途中の1行だけ「*」で、その先は表示が続く場合は、問題ありません。そのルーターが、通知を返さない設定になっているだけです。パケット自体はそのルーターを通って先へ進んでいます。

ある行から最後までずっと「*」が続く場合は、その手前までは届いていて、そこから先で止まっている可能性が高い、と読みます。実際に、存在しない宛先(説明用のアドレス 192.0.2.1)に試すと、次のようになりました。

  4    22 ms    19 ms    20 ms  198.51.100.70
  5     *        *        *     要求がタイムアウトしました。
  6     *        *        *     要求がタイムアウトしました。
  7     *        *        *     要求がタイムアウトしました。

4台目まではプロバイダーの中で応答があり、その先は行き先がないので、通知が返ってきません。

注意したいのは、宛先そのものが応答しない設定になっている場合です。Windowsは、標準のファイアウォールの設定ではpingに応答しないため、tracertでも最後の数行がタイムアウトになることがあります。この場合は、途中のルーターまでは届いているので、宛先のサービスのポートまで届くかを Test-NetConnection 宛先 -Port 番号 で確かめます(ポートの確認方法)。

遅い場所の見分け方

時間がある行から急に増えて、その先もずっと大きいままなら、そこから先の区間で時間がかかっています。海外のサーバーなら、海を越える区間で数十〜百数十ms増えるのは普通です。

反対に、途中の1行だけ時間が大きく、次の行で元に戻るなら、そのルーターが通知を返す処理を後回しにしているだけで、通信そのものは遅くなっていません。ルーターにとって、通知を返すことは本来の仕事(パケットの中継)より優先度が低いためです。

「ターゲット システム名 … を解決できません。」と出たら

宛先の名前からIPアドレスを調べられなかった、という意味です。経路の問題ではなく、名前解決(DNS)の問題なので、nslookup 名前 で引けるか、IPアドレスを直接指定するとtracertできるかを確かめます。手順は 名前解決できない時の確認方法 にまとめています。

Linuxのtracerouteとの違い

Windowsのtracertはpingと同じICMPのエコー要求を使いますが、Linuxの traceroute は、標準ではUDPのパケットを使います。そのため、ファイアウォールの設定によっては「Windowsでは最後まで届くのにLinuxでは途中で止まる」、またはその逆が起こります。Linuxで traceroute -I を付けるとICMPで送るので、Windowsと条件をそろえて比べられます。

PowerShellで調べる

PowerShellでは Test-NetConnection 宛先 -TraceRoute でも経路を調べられます。結果の TraceRoute 欄に、通ったルーターのIPアドレスが順番に入ります。また、pathping 宛先 は、経路を調べたあと各ルーターに一定時間パケットを送り続け、どこでパケットが失われているかを数字で表示します。完了まで数分かかりますが、「ときどき途切れる」ような症状を調べるときに役立ちます。

つながらない時の調べ方の中での位置づけ

tracertは、ping で宛先まで届かないことが分かったあとに、「どこまで届いているか」を調べるために使います。順番としては、①自分のIP設定(ipconfig)→ ②デフォルトゲートウェイへのping → ③宛先へのping → ④届かなければtracertで止まっている場所を探す、という流れです。ping側の切り分けの手順は pingの記事 で解説しています。

よくある質問

Q. tracertの最後が「要求がタイムアウトしました。」で終わったら、相手に届いていない?
A. 届いていないとは限りません。宛先がpingやtracertの通知に応答しない設定になっていることがあります。途中まで順に応答が返っているなら、Test-NetConnection 宛先 -Port 番号 で、使いたいサービスのポートまで届くかを確かめてください。

Q. tracertが終わるまでとても時間がかかるのは?
A. 途中のルーターごとに名前解決をしているか、応答のない行で待たされているためです。-d で名前解決を止め、-w 500 などで待ち時間を短くすると速く終わります。

Q. 1行目のアドレスは何?
A. 多くの場合、自分のPCが最初にパケットを渡すルーター、つまりデフォルトゲートウェイです。ipconfig で表示されるデフォルトゲートウェイと同じアドレスになっているはずです。1行目から「*」になる場合は、PCからルーターまでの間(LANケーブル、Wi-Fi、IP設定)を先に確かめます。

🔗 関連:pingの使い方と結果の見方 / ポート番号とは(一覧と確認方法) / DNSと名前解決の確認方法 / ルーティングの可視化