Windowsでは以下の方法で通信疎通確認が可能です。
- ping, tracert(コマンドプロンプトから実行)
- Test-NetConnection(PowerShellから実行)
pingコマンドの詳細:https://learn.microsoft.com/ja-jp/windows-server/administration/windows-commands/ping
Test-Connectionコマンドの詳細:https://learn.microsoft.com/ja-jp/powershell/module/microsoft.powershell.management/test-connection?view=powershell-7.4
自ホストに宛先のルーティングが設定されていない場合、上記の通信疎通コマンドが正しく実行できないことがあります。ネットワークのルーティングは以下のコマンドで確認可能です。
- route print
- netstat
routeコマンドの詳細:https://learn.microsoft.com/ja-jp/windows-server/administration/windows-commands/route_ws2008
netstatコマンドの詳細:https://learn.microsoft.com/ja-jp/windows-server/administration/windows-commands/netstat
ping(コマンドプロンプトから実行)
Windowsキーを押し、「cmd」と検索するとコマンドプロンプトを見つけることができます。コマンドプロンプトで以下のコマンドを入力することで対象のIPアドレスまでの通信の疎通確認が可能です。
Windowsのpingコマンドについては以下Microsoft公式サイトが参考になります。
ping <IPアドレス>
以下は実際のコマンド入力例です。※CtrlキーとCキーを同時に押すことでコマンドを途中で終了させることができます。
ping 8.8.8.8
以下のコマンドを入力すると、こちらでCtrlキーとCキーを同時に押して中断させるまで処理を継続することができます。
ping /t 8.8.8.8
以下コマンドもこちらでCtrlキーとCキーを同時に押して中断させるまで処理を継続することができます。
ping -t 8.8.8.8
本コマンドが通らなかった場合は、そのIPアドレスまでの通信が確立できていないということになります。ポート番号を指定して疎通確認が可能な「nping」コマンドは、Linuxでは使えますがWindowsでは使えません。npingと類似のコマンド実行結果はPowerShellから「Test-Netconnection <IPアドレス> -port <ポート番号>」を入力することでnpingに類似の結果を得られます。
tracertはLinuxのtracerouteコマンドに該当するコマンドです。通信経路を確認できます。
pingコマンド(Windows)には以下のオプションを指定することができます。
パラメーター 説明 /t 中断するまで ping による送信先へのエコー要求メッセージの送信を続けることを指定します。 中断して統計情報を表示するには、Ctrl + Enter キーを押します。 このコマンドを中断して終了するには、Ctrl + C キーを押します。 /a 送信先の IP アドレスに対して逆引き名前解決を実行することを指定します。 この操作が成功した場合、ping は対応するホスト名を表示します。 /n <count>
送信するエコー要求メッセージの数を指定します。 既定値は 4 です。 /l <size>
エコー要求メッセージのデータ フィールドの長さ (バイト単位) を指定します。 既定値は 32 です。 最大サイズは 65,500 です。 /f IP ヘッダーのフラグメント禁止フラグを 1 に設定してエコー要求メッセージを送信することを指定します (IPv4 のみで利用可能)。 エコー要求メッセージは、送信先までのパス内のルーターによってフラグメント化できません。 このパラメーターは、パスの最大転送ユニット (PMTU) に関する問題のトラブルシューティングに役立ちます。 /i <TTL>
送信されるエコー要求メッセージの IP ヘッダーの Time To Live (TTL) フィールドの値を指定します。 既定では、ホストの既定の TTL 値です。 最大 TTL 255 文字です。 /v <TOS>
送信されるエコー要求メッセージの IP ヘッダーの Type of Service (TOS) フィールドの値を指定します (IPv4 のみで利用可能)。 既定値は 0 です。 TOS は 0 ~ 255 の 10 進値として指定します。 /r <count>
エコー要求メッセージと対応するエコー応答メッセージで使用されたパスを記録するために IP ヘッダーのルート記録オプションを使用することを指定します (IPv4 のみで利用可能)。 パスの各ホップで、ルート記録オプションのエントリが使用されます。 可能な場合、count では、送信元と送信先の間のホップ数以上の値を指定します。 count は、1 以上 9 以下にする必要があります。 /s <count>
エコー要求メッセージと対応するエコー応答メッセージの各ホップへの到着時刻を記録するために、IP ヘッダーのインターネット タイムスタンプ オプションを使用することを指定します。 count は、1 以上 4 以下にする必要があります。 このパラメーターは、リンク ローカルの宛先アドレスに必要です。 /j <hostlist>
hostlist で指定されている中間宛先のセットについて、エコー要求メッセージで IP ヘッダーの厳密でないソースのルーティング オプションを使用することを指定します (IPv4 でのみ利用可能)。 厳密でないソースのルーティングと連続した中間宛先は、1 つまたは複数のルーターで区切ることができます。 アドレスまたはホストの一覧に名の最大数が 9 です。 ホストの一覧は、スペースで区切られた一連の IP アドレス (ドット形式 10 進表記) です。 /k <hostlist>
hostlist で指定されている中間宛先のセットについて、エコー要求メッセージで IP ヘッダーの厳密なソースのルーティング オプションを使用することを指定します (IPv4 でのみ利用可能)。 厳密なソースのルーティングとは、次の中継送信先を直接到達可能にする必要があります (ルーターのインターフェイスで近隣ノードがある必要があります)。 アドレスまたはホストの一覧に名の最大数が 9 です。 ホストの一覧は、スペースで区切られた一連の IP アドレス (ドット形式 10 進表記) です。 /w <timeout>
特定のエコー要求メッセージに対応するエコー応答メッセージを待機する時間をミリ秒単位で指定します。 タイムアウト中にエコー応答メッセージが受信されない場合は、「要求がタイムアウトしました」というエラー メッセージが表示されます。 既定のタイムアウトは 4000 (4 秒) です。 /R ラウンドトリップのパスをトレースすることを指定します (IPv6 のみで利用可能)。 /S <Srcaddr>
(IPv6 のみで使用可能) を使用する送信元アドレスを指定します。 /4 ping に IPv4 を使用することを指定します。 このパラメーターは、IPv4 アドレスを持つターゲット ホストを識別する必要はありません。 ターゲット ホストを名前で識別するためにのみ必要です。 /6 ping に IPv6 を使用することを指定します。 このパラメーターは、IPv6 アドレスを持つターゲット ホストを識別するために必要ありません。 ターゲット ホストを名前で識別するためにのみ必要です。 <targetname>
ホスト名または変換先の IP アドレスを指定します。 /? コマンド プロンプトにヘルプを表示します。 https://learn.microsoft.com/ja-jp/windows-server/administration/windows-commands/pingより引用
tracert(コマンドプロンプトから実行)
tracertコマンドはインターネットプロトコル( IP )パケットが宛先に送信するパスをトレースすることができるコマンドです。Linuxで確認する場合はtracerouteコマンドを使用します。
コマンドプロンプトから下記のように使用します。
tracert 11.1.0.1
以下はコマンド結果の例です。
C:\>tracert 11.1.0.1
コマンドの出力:
Tracing route to 11.1.0.1 over a maximum of 30 hops
---------------------------------------------------
1 2 ms 3 ms 2 ms 157.54.48.1
2 75 ms 83 ms 88 ms 11.1.0.67
3 73 ms 79 ms 93 ms 11.1.0.1
Trace complete.
※上記コマンド出力結果は、以下Microsoft公式サイトからの引用です。
Test-NetConnection(PowerShellから実行)
ポート番号も含めてpingと同じ通信の疎通確認を行うにはPowerShellから以下のコマンドを実行します。
Test-NetConnection <IPアドレス> -port <ポート番号>
以下は実際の入力例です。
Test-NetConnection 8.8.8.8 -port 53
Linuxではnpingコマンドでポート番号を指定して疎通確認が可能です。
route print, netstatコマンド
見出しのコマンドを実行すると、OSからのスタティックルートを確認することができます。これはOSからどこまでのIPアドレス、ネットワークアドレスへ通信することができるようになっているかの設定を確認できます。
ネットワークアドレスは172.16.100.0のようなIPアドレスのことを指し、複数のIPアドレスをまとめて指定する場合はネットワークアドレスに対してルーティングを設定します。
routeコマンドの詳細:https://learn.microsoft.com/ja-jp/windows-server/administration/windows-commands/route_ws2008
netstatコマンドの詳細:https://learn.microsoft.com/ja-jp/windows-server/administration/windows-commands/netstat
Linuxでの通信の疎通確認
Linuxで通信の疎通確認する方法は以下の記事でまとめました。