tracert - 通信経路を調べる
tracertコマンドは、自分の PC から目的のサーバーまでの通信が、どのルーター(中継機器)を順番に経由しているかを調べるコマンドです。
pingでは「届くかどうか」と応答時間しか分かりませんが、tracertを使うと「どこまでは届いていて、どこから先で遅くなる・止まるのか」を確認できます。
tracertコマンドの基本構文
tracert [-d] [-h <最大ホップ数>] [-w <タイムアウト>] [-4] [-6] <ホスト名またはIPアドレス>
ここでは主なオプションのみを掲載しています。送信元アドレスを指定する-Sなど、そのほかのオプションはtracert /?で確認できます。
通信経路を調べる
調べたいホスト名または IP アドレスを指定して実行します。
tracert example.com
上記の出力はあくまで一例です(router.example.netのようにホスト名が分かるホップは「ホスト名 [IP アドレス]」の形式で表示されます)。経由するルーターの数やアドレス、応答時間は、ネットワーク環境や実行するタイミングによって変わります。
出力の読み方
各行が 1 つの中継地点(ホップ)を表します。
| 項目 | 説明 |
|---|---|
| 左端の数字 | 自分の PC から何番目のホップか(1 番目は多くの場合、家庭や社内のルーター) |
3 つの時間(ms) | そのホップに 3 回パケットを送ったときの、それぞれの応答時間 |
| 右端のアドレス | そのホップのルーターのホスト名または IP アドレス |
* | 時間内に応答が返ってこなかった |
最後の行が目的のサーバーのアドレスで、トレースを完了しました。と表示されれば、目的地まで到達できています。
逆引きを省略して高速化する(-d)
tracertは既定で、経由するルーターの IP アドレスからホスト名を調べて表示します。この逆引きに時間がかかり、1 行ごとに表示が止まることがあります。
-dオプションを付けると逆引きを行わず、IP アドレスだけを表示するため、結果が速く表示されます。
tracert -d example.com
最大ホップ数を指定する(-h)
既定では最大 30 ホップまでたどります。-hオプションで、この上限を変更できます。
tracert -h 15 example.com
到達できないときに、応答のないホップを延々とたどり続けるのを避けたい場合に便利です。
タイムアウト時間を指定する(-w)
-wオプションで、1 回の1 回の応答を待つ時間をミリ秒単位で指定します。既定は 4000(4 秒)です。各ホップには 3 回ずつ送信するため、応答がないホップでは最大でこの時間の 3 倍かかります。
tracert -w 1000 example.com
応答がないホップが多い経路でも、待ち時間を短縮して素早く結果を得られます。
IPv4 / IPv6 を指定する(-4 / -6)
-4で IPv4、-6で IPv6 を使って経路を調べます。ホスト名が両方のアドレスを持つ場合に、どちらを使うか指定したいときに使います。
tracert -6 example.com
主なオプション
| オプション | 説明 |
|---|---|
-d | ホスト名への逆引きを行わない |
-h <最大ホップ数> | 追跡する最大ホップ数を指定する(既定は 30) |
-w <タイムアウト> | 応答を待つ時間をミリ秒で指定する(既定は 4000) |
-4 | IPv4 を使用する |
-6 | IPv6 を使用する |
結果の見方とトラブルシューティング
要求がタイムアウトしました。が表示されたとき
その行のホップから応答がなかったことを示します。ただし、*が出たからといって、そこが障害点とは限りません。
ルーターによっては、セキュリティ上の理由や負荷対策のために、tracertが利用する ICMP の応答を制限していることがあります。その場合、途中の行が*でも、その後のホップが正常に応答していれば、通信はそのルーターを通過できている可能性が高いといえます。
途中から最後の行まで*が続き、最大ホップ数に達する場合は、その手前のホップより先で通信が遮断されている可能性があります。ただし、目的のサーバー自身が応答しない設定になっていることもあるため、pingやブラウザでの接続結果と合わせて判断してください。
特定のホップから急に遅くなるとき
あるホップから以降の応答時間が、すべて大きく増えている場合は、そのホップ付近に遅延の原因がある可能性があります。
一方、特定の 1 行だけ遅く、その後は元に戻る場合は、そのルーターが応答を後回しにしているだけで、実際の通信には影響していないことが多くあります。
1つ目のホップで止まるとき
1 つ目のホップ(自宅や社内のルーター)から先に進まない場合は、PC とルーターの接続、またはルーターのインターネット接続に問題がある可能性があります。
バッチファイルでの使い方
障害の報告などで経路の記録を残したい場合は、結果をファイルに保存します。
@echo off
tracert -d example.com > "%~dp0tracert-result.txt"
echo 結果を保存しました。
>(リダイレクト)で出力をファイルに書き出しています。%~dp0はバッチファイル自身があるフォルダーを表します。
既定の日本語環境では、tracertの出力はコードページ 932(Shift_JIS)で書き出されます(chcpでコードページを変更している場合は、そのコードページになります)。エディターで開いて文字化けする場合は、文字コードを Shift_JIS として開き直してください。
まずpingで目的のサーバーに届くかを確認し、届かない・遅いときにtracertで「どこから」問題が起きているかを調べる、という順番で使うと効率的です。名前解決そのものに問題がありそうなときはnslookupも併せて使います。