tracertコマンドの使い方、初心者に必要なことだけを説明する

6 min 309,421 views

この記事では、ネットワークトラブルの時に役立つネットワークコマンド「tracert」の使い方を説明します。

「tracert」は「トレースルート」と読みます。

「tracert」を使うと、「tracert」を実行するコンピュータから、通信相手までの経路上にあるルーターを一覧表示することができます

「tracert」は「ping」に次いで、ネットワークエンジニアが頻繁に使う重要なネットワークコマンドです。

ノンネットワークエンジニアの方も是非覚えておきましょう。

使い方はとても簡単です。

この記事では、Windowsのコマンドプロンプトでネットワークコマンド「tracert」を使います。

コマンドプロンプトの基本操作についてはこちらの記事にまとめていますので、必要な方はご参照下さい。

「tracert」は通信相手までの経路確認ができる

「tracert」を使うと、「tracert」を実行するコンピュータから、通信相手までの経路上にあるルーターを一覧表示することができます。

また、実行結果を見ることによって、通信相手までどの様な経路を通ってたどり着くのかもわかるので、通信トラブルの時には、どこに原因があるかを切り分ける時に役立ちます。

例えば、サーバーにアクセスできない時に「tracert」を使うと、経路上のどのルーターまでつながり、どのルーターからつながらないかがわかります。

tracertで問題の切り分けを行う説明図

「tracert」コマンドの使い方

「tracert」の使い方について説明していきます。

ノンネットワークエンジニアの方は、次の項目だけ読んでおけば十分です。

大抵の場合、これだけで事足ります。

  • よく使う書式
  • 実行結果の見方

もう少し詳しく知りたい方は、その先を読み進めていって下さい。

よく使う書式

ノンネットワークエンジニアが「tracert」を使うなら、次の書式だけ覚えておきましょう。

この書式だけ覚えよう
tracert [IPアドレスまたはドメイン名]

「IPアドレス」には、経路確認したい機器のIPアドレスを入力します。

IPアドレスではなく、ドメイン名で指定することもできます。

ドメイン名とは、「network-beginners-handbook.com」の様な、IPアドレスの代わりになる名前のことです。

経路確認したい機器のIPアドレスが「192.168.0.1」の場合入力例は次の通りです。

tracert 192.168.0.1

上のコマンドの実行結果を見ることで、「tracert」を実行するコンピュータから、通信相手までの経路上にあるルーターを一覧表示することができます。

打つ前に確認したいときは、やりたいことを選ぶだけでコマンドを組み立てられる道具もあります。宛先を入れると、そのままコピーできる1行になります。ネットワークコマンドを作る

実行結果の見方

「tracert」を実行すると、コマンドプロンプトに実行結果が表示されます。

ここでは、ノンネットワークエンジニアの方が見るポイントを説明していきます。

「yahoo.co.jp」へ「tracert」を実行した結果は次の様になります。

コマンドプロンプトでtracertを実行した結果
  1. ルーターの番号
    コンピュータに近い方が小さい数字になる。
  2. ルーターの応答時間
    3回実行された結果が表示される。
  3. ルーターのIPアドレスまたはドメイン名
    ルーターの応答がないときは「要求がタイムアウトしました。」と表示される。

「tracert」を実行すると、実行したコンピュータから「yahoo.co.jp」までの経路上にあるルーターのIPアドレス(またはドメイン名)が、コンピュータから近い方から順に応答時間と一緒に表示されます。

ルーターが応答しない場合は、次のルーターとの通信確認に進みます。

時間の数字は「そのルーターまでの往復」です

ここを誤解しやすいので補足します。真ん中に並ぶ3つの数字について、Microsoft は「パケットがデバイスからルーター、その特定のホップ、デバイスに戻るまでのラウンド トリップ時間がミリ秒単位で表示されます」と説明しています。

つまり各行の数字は、そのルーター単体の速さではなく、自分のパソコンからそこまで行って戻ってくるまでの合計時間です。遠くなるほど数字が大きくなるのは当たり前で、それ自体は異常ではありません。

そのため「ある行の数字が大きいから、そのルーターが原因」とは言えません。Microsoft も、この時間は「ネットワークの輻輳、ネットワーク リンクの品質、ホップ間の距離などの要因によって影響を受ける可能性があります」としています。

見るなら「そこから先の行も、ずっと大きいままか」です。1行だけ大きくて次の行から戻っているなら、そのルーターが返事を後回しにしただけのことがあります。

実際、Microsoft が載せている出力例でも、途中の行が「67 ms 287 ms *」と大きく乱れたあと、最後の行は「204 ms 58 ms 51 ms」に戻っています

そしてその1回だけで決めつけないことです。時間帯を変えて何度か実行すると、たまたまだったのか、いつもそうなのかが分かります。

6本ずつ2列に並んだ棒グラフの図。上の列は4本目だけが高く5本目以降は元の高さに戻り、下の列は4本目から6本目までずっと高いままになっている

英語で表示されることもあります

この記事の画面は日本語ですが、環境によっては同じ内容が英語で出ます並びも見る場所も同じです。

日本語のとき英語のとき意味
〜へのルートをトレースしていますTracing route to 〜これから経路を調べます、という書き出し
経由するホップ数は最大 30 ですover a maximum of 30 hops最大30台まで調べます
要求がタイムアウトしました。Request timed out.その行のルーターから返事が無かった
トレースを完了しました。Trace complete.相手まで到達して終了

ヘルプ(tracert /?)の表示も、環境によって英語になります。どういうときに英語になるのかは、はっきりした条件が分かっていないため書きません。上の表で読み替えれば、同じように使えます。

とはいえ、自分の画面に出た結果が「これで正常なの?」と迷うこともあると思います。

実行結果をそのまま貼り付けると、行ごとに意味を説明するツールを用意しました。どこまでが手元の機器で、「*」が出ている行をどう読めばよいのかがわかります。

ヘルプで全てのオプションを表示する

「tracert」にはたくさんのオプションが用意されています。

しかし、ノンネットワークエンジニアの方には、これらのオプションは必要ありません。

ここでは、コマンドプロンプトで「tracert」のオプションを一覧表示する方法だけ説明しておきます。

「tracert」のオプションを一覧表示するには、コマンドプロンプトで

オプションの表示

tracert /?

と入力します。

実行すると、次の様に全オプションと説明が表示されます。

>tracert /?

使用法: tracert [-d] [-h maximum_hops] [-j host-list] [-w timeout]
[-w timeout] [-R] [-S srcaddr] [-4] [-6] target_name

オプション:
-d アドレスをホスト名に解決しません。
-h maximum_hops ターゲットを検索するときの最大ホップ数です。
-j host-list host-list で指定された緩やかなソース ルートを使用します
(IPv4 のみ)。
-w timeout timeout ミリ秒間、応答を待ちます。
-R 往復のパスをトレースします (IPv6 のみ)。
-S srcaddr 使用するソース アドレスです (IPv6 のみ)。
-4 IPv4 の使用を強制します。
-6 IPv6 の使用を強制します。

もしオプション指定が必要になることがあれば「/?」で確認して下さい。

「tracert」のしくみ

「tracert」の機能は、「ping」と同じICMPのエコー要求/応答の仕組みで実現しています。

経路上にあるルーターの順番がわかるのは、パケットの有効期限であるTTLの値を1つずつ大きくしてエコー要求パケットを送信することで、期限切れのパケットを通知してくるルーターを確認しているからです。

次の図で説明します。

tracertのしくみ

「tracert」を実行すると、コンピュータは指定した通信相手を宛先としたエコー要求パケットをTTL=1で送信します。

パケットが「ルーター1」に届くと、TTLは1減らされTTL=0になります。

「ルーター1」はパケットの有効期限切れと判断し、送信元のコンピュータに「時間超過パケット」を送り返します。

TTLを1ずつ増やしながら、宛先からエコー応答パケットが届くまで続けます。

ルーターによっては応答しない設定になっている場合もあります。
ルーターが応答しない場合でもその後のルーターが応答を返すこともあります。

宛先の機器にエコー要求パケットが届いたら、送信元のコンピュータに「エコー応答パケット」を返してきます。

エコー要求パケットを送信してから、「時間超過パケット」や「エコー応答パケット」が届くまでにかかった時間とそのパケットの送信元が結果として表示されます。

「tracert」の注意点

「tracert」の注意点について説明しておきます。

「要求がタイムアウトしました。」が出ても異常とは限らない

ネットワーク機器によっては、ICMPの機能をオフしている場合があります。

理由は、見知らぬ機器からのエコー要求パケットに対して応答を返すと、セキュリティ上の脅威にさらされる危険性があるからです。

経路上のルーターに「応答しない」設定になった機器があると、結果は「要求がタイムアウトしました。」となります。

ただし、応答しないルーター以降のルーターが応答する場合は、tracertの処理は継続されます

これは仕様として説明されています。Microsoft は「一部のルーターは、期限切れの TTL 値を持つパケットに対して Time Exceeded メッセージを返さず、tracert コマンドには見えません。この場合、そのホップの行にはアスタリスク (*) が表示されます」としています。

*」は1回ごとの印です。3回のうち1回だけ「*」で残り2回に時間が出る行もあります。3回とも応答が無かったときに、その行の末尾へ「要求がタイムアウトしました。」と出ます。

途中の行に「*」やタイムアウトが並んでいても、最後の行に相手が出ていれば通信は届いています。

気にするのは、そこから先がずっと届かないまま終わっている場合です。ただし相手自身が応答しない設定のこともあるので、最後まで「*」が並んだからといって、それだけで「相手が落ちている」とは決められません。

「tracert」のまとめ

この記事では、ネットワークトラブルの時に役立つネットワークコマンド「tracert」の使い方を説明しました。

「tracert」を使うと、「tracert」を実行するコンピュータから、通信相手までの経路上にあるルーターを一覧表示することができます。

また、実行結果を見ることによって、通信相手までどの様な経路を通ってたどり着くのかもわかるので、通信トラブルの時には、どこに原因があるかを切り分ける時に役立ちます。

ノンネットワークエンジニアは次の書式だけ覚えておきましょう。

この書式だけ覚えよう
tracert [IPアドレスまたはドメイン名]

「tracert」はシンプルでとても役に立つコマンドです。

ノンネットワークエンジニアの方も是非覚えておきましょうね。

通信がうまくいかないときは、「ipconfig」でネットワーク設定情報を確認しましょう。

「この症状のときは、どのコマンドを使えばいいのか」を一覧で確かめたい方は、次の記事にまとめてあります。

関連記事