tracertコマンドは、TTLを1から1ずつ増やしたパケットを送り、宛先までに通るルーターを順番に表示するWindowsのコマンドです。既定では最大30ホップまで調べ、1ホップごとに3回の往復時間を出します。途中に出る「*」は、そのルーターから応答が返らなかった印です。
この記事でわかること
- tracertが経路を調べる仕組み(TTLと時間超過メッセージ)
- Windows・Linux・Cisco IOSの既定値とオプションの対応
- ホップ番号・往復時間・アドレスの結果の読み方
- 「*」や「要求がタイムアウトしました」を出方のパターン別に読み分ける方法
- WindowsとLinuxで結果が変わる理由と、pathpingで損失の場所を絞る手順
一次情報: Microsoft Learn「tracert」(参照)/traceroute(8) マニュアル(参照)/Cisco「Understand the Extended Ping and Extended Traceroute Commands」(参照)※2026年9月時点
経路を読んで障害の区間を絞る作業は、運用保守の仕事の中心にあります。構築から運用保守へ移るときに何が変わるのかは、成功と失敗のパターンに分けて別の記事で整理しました。
tracertコマンドとは?宛先までのルーターを順番に表示するコマンド
tracertコマンドとは、宛先までの途中にあるルーターを、近い順に1台ずつ表示するWindowsのコマンドです。LinuxやmacOS、Cisco IOSでは、同じ役割のコマンドを「traceroute」と呼びます。
pingが「届くかどうか」を見るのに対し、tracertは「どこを通って、どこで止まるか」を見ます。pingで届かないとわかったあと、止まっている区間を探すときに使うのが基本の流れです。
TTLを1つずつ増やして、途中のルーターに返事をさせる
仕組みはTTLの性質を利用しています。ルーターはパケットを転送するたびにTTLを1減らし、0になったら捨てて、送り手に「時間超過」のメッセージを返します。ICMPの仕様(RFC 792)では、タイプ11・コード0が「転送中にTTLを超過した」という意味です。
tracertはこれを逆手に取ります。TTL=1で送れば1台目のルーターが、TTL=2で送れば2台目のルーターが時間超過を返してくるので、その送り主を順に並べれば経路になります。宛先に着いたら、宛先はエコー応答を返し、そこで終わりです。
- TTL=1で送る。1台目のルーターがTTLを0にして捨て、時間超過を返す
- TTL=2で送る。2台目のルーターが同じように時間超過を返す
- TTLを1ずつ増やす。返してきたルーターのアドレスを順番に表示する
- 宛先に届いたら終わる。宛先がエコー応答を返すか、最大ホップ数に達したところで止まる
表示されるアドレスは、各ルーターのうち送り手側を向いたインターフェースのものです。Microsoftの資料にも、そのように書かれています。構成図と見比べるときは、どちら側のIPが出ているかを意識すると迷いません。
Windows・Linux・Cisco IOSの既定値
同じ役割でも、送るパケットの種類と待ち時間はOSで違います。ここが、後で説明する「結果が食い違う」原因になります。
| 項目 | Windows tracert | Linux traceroute | Cisco IOS traceroute |
|---|---|---|---|
| 送るパケット | ICMPエコー要求 | UDP(宛先ポート33434から) | UDP(宛先ポート33434から) |
| 最大ホップ数 | 30 | 30 | 30 |
| 1ホップの試行回数 | 3 | 3 | 3 |
| 応答の待ち時間 | 4,000ミリ秒 | 5秒 | 3秒 |
出典は、WindowsがMicrosoft Learn「tracert」、Linuxがtraceroute(8)のマニュアル、Cisco IOSがシスコの拡張tracerouteの解説です。WindowsはICMP、LinuxとCisco IOSはUDPで調べるという違いは、先に押さえておいてください。
経路を調べるコマンドの既定値
- 送るもの
- ICMPエコー要求
- 最大ホップ
- 30
- 試行回数
- 1ホップ3回(固定)
- 待ち時間
- 4,000ミリ秒
- 送るもの
- UDP(33434番から)
- 最大ホップ
- 30(-m)
- 試行回数
- 3(-q)
- 待ち時間
- 5秒(-w)
- 送るもの
- UDP(33434番から)
- 最大ホップ
- 30
- 試行回数
- 3
- 待ち時間
- 3秒
図:WindowsはICMP、LinuxとCisco IOSはUDPで調べる。結果が食い違う原因の多くはここ
tracertコマンドの書き方とオプション
基本は「tracert 宛先」だけです。宛先はIPアドレスでもホスト名でも指定できます。
tracert 192.0.2.10
tracert /d www.example.com
実務でまず付けたいのが「/d」です。途中のルーターのIPを名前に変換しないので、表示がぐっと速くなります。逆引きの応答を待つぶん、名前を引く設定のままだと1行ごとに待たされるからです。
| やりたいこと | Windows tracert | Linux traceroute |
|---|---|---|
| 名前を引かずに速く出す | /d | -n |
| 最大ホップ数を変える | /h 15 | -m 15 |
| 待ち時間を変える | /w 1000(ミリ秒) | -w 2(秒) |
| 1ホップの試行回数を変える | 変更なし(3回固定) | -q 1 |
| 途中のホップから始める | 指定なし | -f 5 |
| ICMPで調べる | 既定がICMP | -I |
| TCPで調べる | 指定なし | -T(既定は80番) |
| IPv4/IPv6を指定 | /4//6 | -4/-6 |
LinuxのtracerouteはTCPでも調べられます。マニュアルでの位置づけは、ファイアウォールを越えるための方法です。Webサーバーまでの経路を見たいなら、-Tで80番や443番を宛先にすると最後まで届きやすくなります。環境によっては管理者権限(sudo)が要るので注意してください。
Cisco IOSの拡張traceroute
Cisco IOSでも「traceroute 宛先」の形はそのままです。特権EXECモードで引数を付けずに打つと、項目を対話形式で聞かれる拡張tracerouteになります。
| 項目 | 既定値 | 変える場面 |
|---|---|---|
| Source address | 指定なし | LAN側のIPから出して、戻り経路も確かめる |
| Probe count | 3 | 時間を短くしたいときに減らす |
| Minimum Time to Live | 1 | 手前の区間を飛ばしたいとき |
| Maximum Time to Live | 30 | 経路が短いとわかっているとき |
| Port Number | 33434 | フィルターの影響を切り分けるとき |
| Timeout in seconds | 3 | 遠い拠点で待ち時間を延ばす |
tracertの結果の見方|ホップ番号・時間・アドレス
結果は1行が1ホップです。左から、ホップ番号、3回分の往復時間、応答したルーターのアドレスと並びます。下はWindowsの出力例で、アドレスは説明用の値にしています。
www.example.com [203.0.113.80] へのルートをトレースしています
経由するホップ数は最大 30 です:
1 <1 ms <1 ms <1 ms 192.168.10.1
2 3 ms 2 ms 3 ms 198.51.100.1
3 8 ms 7 ms 9 ms 198.51.100.33
4 45 ms 12 ms 11 ms 198.51.100.65
5 * * * 要求がタイムアウトしました。
6 14 ms 13 ms 15 ms 203.0.113.1
7 15 ms 14 ms 14 ms 203.0.113.80
トレースを完了しました。
| 列 | 意味 | 見るポイント |
|---|---|---|
| 左端の数字 | ホップ番号(何台目か) | 経路の長さ。いつもより増えたら迂回を疑う |
| 3つの「ms」 | そのルーターまでの往復時間を3回測った値 | 3回とも高いか、1回だけ跳ねたか |
| 右端 | 応答したルーターのIPや名前 | 自社・プロバイダー・相手先のどこか |
| * | 待ち時間内に応答が無かった | 途中だけか、最後まで続くかで意味が変わる |
時間の数字は「その先の区間」と比べて読む
往復時間は、そのホップのルーターまで行って戻る時間です。例の4ホップ目は45msと1回だけ跳ねていますが、5ホップ目以降は13〜15ms台に戻っています。後ろのホップが速いなら、途中の1回の跳ねは転送の遅れとは限らないという読み方です。
ルーターは、自分宛てに返す応答(時間超過など)の作成を、通過するパケットの転送より後回しにすることがあります。そのため、途中のホップだけ時間が大きく見えることは珍しくありません。遅延の起点と判断してよいのは、ある地点から後ろのホップが揃って遅くなったときです。
表示されるのは「行き」の経路だけ
tracertが表示するのは、自分から宛先へ向かう行きの経路です。一方で往復時間には、ルーターから自分へ戻る帰りの経路も含まれます。行きと帰りで別の回線を通る構成では、表に出ない帰りの区間が遅延の原因になっていることもあります。
「*」と「要求がタイムアウトしました」の読み方
「*」は、待ち時間内に応答が来なかったことを表す記号です。Microsoftの資料によると、時間超過メッセージを返さないルーターがあり、その行には「*」が並びます。「*」が出た場所より、「*」の後ろに行が続くかどうかを先に見てください。
| 出方 | 考えられること | 次の一手 |
|---|---|---|
| 途中の1〜2行だけ「*」、その後は続く | そのルーターが応答を返さない設定。通信は通っている | 基本は問題なし |
| ある行から最後まで「*」が30ホップまで続く | その先で止まっている、または宛先側でICMPを遮断している | 手前の最後に返ったルーターを起点に調べる |
| 最後の宛先の行だけ「*」 | 宛先がエコー要求に応答しない | サービスのポートに接続できるか確かめる |
| 同じ2つのIPが交互に出続ける | ルーティングループ | 両ルーターの経路表を確認する |
| ある行から後ろの時間が揃って大きい | その区間が遅延の起点 | pathpingで損失の有無も見る |
「*」は出た場所より、後ろに行が続くかで読む
- tracertに「*」が出た
- 途中だけ「*」で後ろが続くそのルーターが応答を返さない設定。通信は先へ進んでいる
- ある行から最後まで「*」その先で止まっているか、宛先側でICMPを遮断。最後に返ったルーターを起点に調べる
- 宛先の行だけ「*」宛先がエコー要求に応答しない。サービスのポートに接続できるかを確かめる
- 同じ2つのIPが交互に出るルーティングループ。両ルーターの経路表を確認する
図:「*」の出方で、問題なし・止まっている・ループ・遅延の起点に分ける
LinuxとCisco IOSで出る記号
Linuxのtracerouteは、「*」に加えて、到達不能の理由を記号で添えることがあります。マニュアルに載っている主なものは次のとおりです。
| 記号 | Linux traceroute | Cisco IOS traceroute |
|---|---|---|
| * | 待ち時間内に応答なし | タイムアウト |
| !H/H | ホスト到達不能 | ホスト到達不能 |
| !N/N | ネットワーク到達不能 | ネットワーク到達不能 |
| !P/P | プロトコル到達不能 | プロトコル到達不能 |
| !X/A | 管理上の理由で禁止 | 管理上の理由で禁止(アクセスリストなど) |
| U | ─ | ポート到達不能 |
Cisco IOSで「A」が出たら、途中のアクセスリストで止められている可能性が高い合図です。記号が出たホップのルーターが、どのフィルターを持っているかを確かめに行きます。
WindowsとLinuxで結果が違う理由
同じ宛先なのに、Windowsのtracertは最後まで届き、Linuxのtracerouteは途中から「*」が並ぶ。これは現場でよく出会う食い違いです。
理由は、送っているパケットの種類が違うからです。WindowsはICMPのエコー要求、LinuxとCisco IOSはUDPの33434番以降を使います。ファイアウォールがICMPだけを通しUDPの高い番号を止めていれば、Linux側だけが途中で止まって見えます。
食い違ったときの確かめ方
- Linuxで -I を付ける。Windowsのtracertと同じICMPで送り直し、結果が揃うか見る
- Linuxで -T を付ける。TCPの80番や443番で送り、Webサーバーまで届くかを見る
- 送り元をそろえる。比べる2台が同じネットワークにいるか確かめる。出口が違えば経路も違う
どの方法で最後まで届いたかは、そのままファイアウォールの設定を知る手がかりになります。ICMPは通るのにUDPは通らない、TCPの443だけ通る、といった具合です。
tracertで決め切れないときはpathpingで損失の場所を見る
tracertは各ホップに3回しか送らないので、ときどき落ちる程度の障害は見逃します。Windowsには、tracertで経路を調べたあと各ホップに繰り返しpingを打つ「pathping」が用意されています。
pathping /n 203.0.113.80
Microsoft Learnによると、pathpingは既定で各ルーターに100回ずつエコー要求を送り、送る間隔は250ミリ秒です。統計を取るあいだ、Microsoftの説明では約90秒(ホップ数で変わる)待つことになります。
| 列 | 意味 | 読み方 |
|---|---|---|
| Source to Here | 送り手からそのホップまでの損失率 | 宛先まで同じ割合が続くなら、その地点から先で落ちている |
| This Node/Link(ルーターの行) | そのルーター自身が応答を落とした率 | ルーターの負荷。通過する通信には影響しないこともある |
| This Node/Link(縦棒の行) | ルーター間の回線で落ちた率 | ここに損失があれば、その区間の混雑や回線品質を疑う |
Microsoftの出力例でも、1台目と2台目のルーターの間の回線で13%が落ちている、という読み方が示されていました。回線の行の損失が、宛先まで引き継がれているかを見れば、どの区間を調べればよいかが決まります。Linuxなら、mtrというツールが同じ役割です。
経路の障害を絞り込む順番
- ときどき途切れる障害ほど、1回のtracertでは見逃します。
- 1pingで届くかを見る届かない・ときどき落ちる、を確かめる
- 2tracert /d で経路と止まる位置を見る「*」の出方と、後ろが揃って遅くなる地点を探す
- 3pathpingで区間ごとの損失を見る各ホップに100回。回線の行の損失が宛先まで続くかを読む
- 4その区間の管理者に当たる自社・プロバイダー・相手先のどこかを右端のアドレスで判断する
Linuxでは traceroute -I/-T と mtr が同じ役割を果たします。
図:pingで届くかを見て、tracertで区間を、pathpingで損失の場所を絞る
よくある質問
tracertで「要求がタイムアウトしました」が出たら異常ですか?
途中の行だけに出て、その後ろのホップが表示されているなら、多くはそのルーターが応答を返さない設定になっているだけです。通信自体は先へ進んでいます。最後まで「*」が続く場合だけ、止まっている可能性を考えます。
tracertが遅くてなかなか終わらないのはなぜですか?
途中のルーターのIPを名前に変換しようとして、そのたびに待っているのが主な理由です。「/d」を付けると名前を引かずに済み、表示が速くなります。応答しないホップが多い経路では、「/w」で待ち時間を短くするのも効果があります。
tracertとtracerouteは同じものですか?
目的は同じですが、送るパケットが違います。WindowsのtracertはICMPのエコー要求、LinuxとCisco IOSのtracerouteは既定でUDPを使います。そのため、同じ宛先でも途中で止まる位置が変わることは珍しくありません。
途中のホップだけ往復時間が長いのは遅延の原因ですか?
後ろのホップの時間が小さいなら、原因とは限りません。ルーターは自分宛ての応答の作成を後回しにすることがあり、そのホップだけ時間が大きく見えることがあります。ある地点から後ろが揃って遅くなっているかで判断してください。
ときどき通信が途切れる障害はtracertで見つけられますか?
tracertは各ホップに3回しか送らないので、ときどき起きる損失は見逃しやすくなります。Windowsならpathpingで各ホップに100回ずつ送り、どの区間で落ちているかを数字で確かめる方が確実です。
まとめ
- tracertは、TTLを1ずつ増やして途中のルーターに時間超過を返させ、経路を順に表示する
- WindowsはICMP、LinuxとCisco IOSはUDPで調べる。結果が食い違う原因の多くはここ
- 速く見たいときは /d(Linuxは -n)を付ける
- 「*」は出た場所より、その後ろに行が続くかどうかで読む
- ときどき落ちる障害は、pathpingで回線の行の損失を見て区間を絞る
経路を1台ずつ追えるようになると、障害連絡を受けたときに「どの会社の、どの区間に問い合わせるか」を自分で決められます。構築と運用のどちらに進んでも、長く使う基本の道具です。
クラウド移行が進んでも、経路と障害の区間を読める力はネットワークの仕事の土台に残ります。AI・クラウド時代に伸びる業務と縮む業務を、別の記事で分けて整理しました。
免責事項
※本記事はMicrosoft・シスコシステムズの公式ドキュメント、Linuxのマニュアル、RFCなどの公開情報をもとに整理したものです。コマンドの表示や既定値は、OSのバージョンや機器の設定によって変わる場合があります。業務で使う機器では、所属先の手順とベンダーの最新資料をあわせてご確認ください。

