ネットワーク通信の調査に役立つWindowsコマンドとその使い方

ネットワーク通信の調査に役立つWindowsコマンドとその使い方

Windowsには、ネットワーク通信のトラブルが発生したときに、調査などで役立つ以下のようなコマンドが用意されています。

  • ping
  • tracert
  • pathping
  • netstat
  • nslookup
  • route

そこでここでは、これらのネットワーク通信の調査に役立つコマンドの使い方を紹介します。

この記事は、以下の環境での動作結果を基にしています。他のエディションやバージョンでは、動作結果が異なる場合があることをご了承ください。

ソフトウェアバージョン
Windows 10 Pro 64bit22H2

Ping

Pingコマンドは、指定した宛先とのネットワーク疎通や応答時間を確認できるコマンドで、基本的な使い方は以下のようにコマンドを実行します。

> ping <宛先のIPアドレスやホスト名>

pingコマンドで利用できるオプションは、次のとおりです。

ネットワーク通信の調査に役立つWindowsコマンドとその使い方

pingコマンドを実行すると、指定した宛先に32バイトのパケットを4回を送信して、応答時間やパケットの損失がないかなどを確認することができます。

なお、pingコマンドを実行する際、初めの1回目はARPによる名前解決(MACアドレスとIPアドレスの紐づけ)が行われるため、若干の遅延が発生するため、より正確な測定を行いたい場合は、はじめに1回だけpingを実行して名前解決を済ませてから、改めてpingコマンドを実行することで、比較的正確な測定ができます。

ネットワーク通信の調査に役立つWindowsコマンドとその使い方

送信回数を指定して実行する

pingコマンドはデフォルトで宛先に4回だけパケットを送信します。ですが、ネットワークの遅延やパケットの消失を調べる場合、4回では足りない場合が多々あります。

ネットワーク通信の調査に役立つWindowsコマンドとその使い方

そのようなときは、「-n」オプションでパケットの送信回数を指定でき、たとえば、10回送信したい場合は、次のように実行します。

> ping -n 10 <宛先のIPアドレスやホスト名>

回数を指定せず実行し続ける

-nオプションでは回数を指定して実行できますが、回数を指定せず実行し続けたい場合は「-t」オプションを利用します。

実行方法は、次のとおりです。

> ping -t <宛先のIPアドレスやホスト名>

なお、コマンドの実行を終了するには「Ctrl」+「C」キーを押し、途中経過の情報を表示するには「Ctrl」+「Break」キーを押します。

tracert

tracertコマンドは、指定した宛先に到達するまでに経由したルーター(ホスト)と応答時間を確認できるコマンドで、基本的な使い方は以下のようにコマンドを実行します。

> tracert <宛先のIPアドレスやホスト名>

tracertコマンドで利用できるオプションは、次のとおりです。

ネットワーク通信の調査に役立つWindowsコマンドとその使い方

tracertコマンドを実行すると、指定した宛先に到達するまでに経由したルーター(ホスト)が一覧表示され、経由したルーターごとの応答時間(3回分)を確認することができます。

以下の画面では、宛先に到達するまでに9台のルーターを経由していることが分かります。

ネットワーク通信の調査に役立つWindowsコマンドとその使い方

tracertコマンドは、ローカルネットワーク上ではあまり利用することはないコマンドですが、インターネット上のホストととの通信でトラブルが発生した場合は、tracertコマンドを利用することで、経路の途中でトラブルが発生しているのかなどを確認することができます。

なお、経路上のルーターの応答時間が大きい場合がありますが、最終的な宛先との通信には影響しない場合がほとんどです。

pathping

pathpingコマンドは、指定した宛先との疎通や経由したルーター(ホスト)と応答時間を一度に確認できるコマンドで、基本的な使い方は以下のようにコマンドを実行します。

> pathping <宛先のIPアドレスやホスト名>

pathpingコマンドで利用できるオプションは、次のとおりです。

ネットワーク通信の調査に役立つWindowsコマンドとその使い方

pathpingコマンドを実行すると、指定した宛先に到達するまでに経由したルーターの一覧と、経路の状況が表示されます。

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

  0  192.168.XXX.XXX
  1  192.168.XXX.XXX
  2  192.168.XXX.XXX
  3  211.XXX.XXX.XXX
  4  211.XXX.XXX.XXX
  5  118.XXX.XXX.XXX
  6  153.XXX.XXX.XXX
  7  60.XXX.XXX.XXX
  8  60.XXX.XXX.XXX
  9  118.XXX.XXX.XXX
 10  210.XXX.XXX.XXX

統計を 250 秒間計算しています...
            ソースからここまで   このノード/リンク
ホップ  RTT    損失/送信 = Pct  損失/送信 = Pct  アドレス
  0                                           192.168.XXX.XXX
                                0/ 100 =  0%   |
  1    2ms     0/ 100 =  0%     0/ 100 =  0%  192.168.XXX.XXX
                                0/ 100 =  0%   |
  2    2ms     0/ 100 =  0%     0/ 100 =  0%  192.168.XXX.XXX
                                0/ 100 =  0%   |
  3    3ms     0/ 100 =  0%     0/ 100 =  0%  211.XXX.XXX.XXX
                                0/ 100 =  0%   |
  4    5ms     0/ 100 =  0%     0/ 100 =  0%  211.XXX.XXX.XXX
                                0/ 100 =  0%   |
  5    7ms     0/ 100 =  0%     0/ 100 =  0%  118.XXX.XXX.XXX
                                0/ 100 =  0%   |
  6    8ms     0/ 100 =  0%     0/ 100 =  0%  153.XXX.XXX.XXX
                                0/ 100 =  0%   |
  7    7ms     0/ 100 =  0%     0/ 100 =  0%  60.XXX.XXX.XXX
                                0/ 100 =  0%   |
  8    6ms     0/ 100 =  0%     0/ 100 =  0%  60.XXX.XXX.XXX
                                0/ 100 =  0%   |
  9    7ms     0/ 100 =  0%     0/ 100 =  0%  118.XXX.XXX.XXX
                                1/ 100 =  1%   |
 10    6ms     1/ 100 =  1%     0/ 100 =  0%  210.XXX.XXX.XXX

トレースを完了しました。

結果画面の見方

pathpingコマンドの結果画面は、大きく2つのパートに分かれており、前半部分には、宛先までの経路上にあるルーターのIPアドレス一覧が表示されます。

以下の結果では、宛先に到達するまでに9台のルーターを経由したことが分かります。

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

  0  192.168.XXX.XXX …自分のマシン
  1  192.168.XXX.XXX
  2  192.168.XXX.XXX
  3  211.XXX.XXX.XXX
  4  211.XXX.XXX.XXX
  5  118.XXX.XXX.XXX
  6  153.XXX.XXX.XXX
  7  60.XXX.XXX.XXX
  8  60.XXX.XXX.XXX
  9  118.XXX.XXX.XXX
 10  210.XXX.XXX.XXX …宛先のマシン

後半部分には、経路上のルーターごとの応答時間(RTT)やパケットの損失率、ルーター間のパケット損失率といった統計情報が表示されます。

統計を 250 秒間計算しています...
            ソースからここまで   このノード/リンク
ホップ  RTT    損失/送信 = Pct  損失/送信 = Pct  アドレス
  0                                           192.168.XXX.XXX
                                0/ 100 =  0%   |
  1    2ms     0/ 100 =  0%     0/ 100 =  0%  192.168.XXX.XXX
                                0/ 100 =  0%   |
  2    2ms     0/ 100 =  0%     0/ 100 =  0%  192.168.XXX.XXX
                                0/ 100 =  0%   |
  3    3ms     0/ 100 =  0%     0/ 100 =  0%  211.XXX.XXX.XXX
                                0/ 100 =  0%   |
  4    5ms     0/ 100 =  0%     0/ 100 =  0%  211.XXX.XXX.XXX
                                0/ 100 =  0%   |
  5    7ms     0/ 100 =  0%     0/ 100 =  0%  118.XXX.XXX.XXX
                                0/ 100 =  0%   |
  6    8ms     0/ 100 =  0%     0/ 100 =  0%  153.XXX.XXX.XXX
                                0/ 100 =  0%   |
  7    7ms     0/ 100 =  0%     0/ 100 =  0%  60.XXX.XXX.XXX
                                0/ 100 =  0%   |
  8    6ms     0/ 100 =  0%     0/ 100 =  0%  60.XXX.XXX.XXX
                                0/ 100 =  0%   |
  9    7ms     0/ 100 =  0%     0/ 100 =  0%  118.XXX.XXX.XXX
                                1/ 100 =  1%   |
 10    6ms     1/ 100 =  1%     0/ 100 =  0%  210.XXX.XXX.XXX

トレースを完了しました。

上の結果では、9番目のルーターと最終的な宛先の間で若干のパケットの損失を確認できますが、最終的な宛先に対する応答時間(RTT)は6msのため、特に問題ないと判断できます。

最終的な宛先の応答時間が大きい場合や、ルーター間の損失率が大きい場合は、ネットワークの混雑が予想されます。 

なお、デフォルト設定では、経路上の各ルーターに対してICMPのEchoパケットを0.25秒間隔で100回送信し、応答時間(RTT)やパケットの損失率を算出するため、ルーターごとに25秒(0.25秒間隔×100パケット分)必要となり、上の例では結果が表示されるまでに250秒(25秒×10台分)かかりますが、コマンドにオプションを指定することで、送信間隔や送信パケット数は変更することができます。

netstat

netstatコマンドは、TCP/IP通信の接続状態を確認できるコマンドで、利用できるオプションは、次のとおりです。

ネットワーク通信の調査に役立つWindowsコマンドとその使い方

netstatコマンドを利用すれば、現在どの宛先と通信しているのかや、サーバーソフトウェアなどが稼働している環境では、待ち受けポートの状態を確認することができます。

> netstat -a

nslookup

nslookupコマンドは、DNSのサーバと正しく通信できているかや、名前解決などができるかを調査するときに役立つコマンドで、利用できるオプションは、次のとおりです。

ネットワーク通信の調査に役立つWindowsコマンドとその使い方

たとえば「www.google.co.jp」の名前解決ができるか確認したいときは、以下のように実行します。

> nslookup www.google.co.jp ←正引き:ドメイン名からIPアドレスを調べる

ネットワーク通信の調査に役立つWindowsコマンドとその使い方

> nslookup 8.8.8.8 ←逆引き:IPアドレスからドメイン名を調べる

ネットワーク通信の調査に役立つWindowsコマンドとその使い方

また、デフォルトではネットワークインターフェースに設定されているDNSサーバーと通信が行われますが、接続するDNSサーバーを指定することもできます。

たとえば、DNSサーバーとして「1.1.1.1」を使用して調査したいときは、以下のように実行します。

> nslookup www.google.co.jp 1.1.1.1

ネットワーク通信の調査に役立つWindowsコマンドとその使い方

route

routeコマンドは、宛先ネットワークへの経路の情報を管理するコマンドで、現在保存されている経路情報を確認したり、経路情報を登録したりできます。

routeコマンドで利用できるオプションは、次のとおりです。

ネットワーク通信の調査に役立つWindowsコマンドとその使い方

現在の経路情報を確認したいときは、以下のように実行します。

> route print

静的な経路(スタティックルート)を新たに登録したいときは、以下のように実行します。

> route -p add <ネットワーク> mask <サブネット> <ゲートウェイ> [if <インターフェース番号>]

たとえば、宛先ネットワーク(172.16.1.0/24)へのゲートウェイとして192.168.0.254を指定したいときは、以下のように実行します。

> route -p add 172.16.1.0 mask 255.255.255.0 192.168.0.254

あとがき

Windows環境でネットワーク通信関連のトラブルシューティングをするなら、上のコマンドを押さえておけば、ほとんどンケースで対応できるでしょう。

ご活用あれ。