はじめに
UNIX系OSにて以下で紹介した手法でネットワークレベルの疎通確認ができますが
Windows機でも同様の観点の確認をしたい場合があります。
本記事ではそれらを実現するTest-NetConnectionを紹介します。
コマンド実行環境
- Windows 10
- Windows Server 2016
PowerShell>Test-NetConnection
PowerShellとはWindowsにて利用できるコマンドラインツールで実体は以下のパスにあります。
C:\system32\WindowsPowerShell\v1.0\PowerShell_ISE.exe
こちらを起動して「Test-NetConnection」と押下すれば
PS C:\Users\XX> Test-NetConnection ComputerName : internetbeacon.msedge.net RemoteAddress : XX InterfaceAlias : イーサネット X SourceAddress : XX PingSucceeded : True PingReplyDetails (RTT) : 43 ms
上記のようにテスト用宛先と疎通確認が行えます。
ちなみにinternetbeacon.msedge.netをnslookupコマンドで調査してみましたが
nslookup ... > internetbeacon.msedge.net ... 名前: cs9.wpc.v0cdn.net ... Aliases: internetbeacon.msedge.net fp-vs.azureedge.net fp-vs.ec.azureedge.net
と出てきました。Windowsにデフォルトで設定されているインターネットとの接続テスト用アドレスと思われます。
インターネットに接続していない場合は以下のような結果になります。
PS C:\Users\XX> Test-NetConnection 警告: Name resolution of internetbeacon.msedge.net failed -- Status: そのようなホストは不明です。 ComputerName : internetbeacon.msedge.net RemoteAddress : InterfaceAlias : SourceAddress : PingSucceeded : False
IPアドレス・ポート指定で通信
構文は以下となります。
Test-NetConnection [ターゲット] -Port [ポート番号]
この引数を指定することにより、指定したIPアドレス及びポート番号に通信を発生させることができます。もちろんターゲットはIPアドレスでもホスト名でも利用できます。
例えばIPアドレスA.B.C.DのWindowsServerにリモートデスクトップ用の通信を行えるかを確認したい場合は
PS C:\Users\XX> Test-NetConnection A.B.C.D -Port 3389 ComputerName : A.B.C.D RemoteAddress : A.B.C.D RequestPort : 3389 InterfaceAlias : イーサネット X SourceAddress : XX TcpTestSucceeded : True
となります。上記は成功例で、失敗時は以下の警告メッセージが表示されます。
PS C:\Users\XX> Test-NetConnection A.B.C.D -Port 3389 警告: TCP connect to A.B.C.D failed 警告: Ping to A.B.C.D failed -- Status: TimedOut ...
終わりに
疎通先のサーバの間にファイアウォール等がある場合、アプリ側に原因があるのかインフラ側に原因があるのかを判断する際に重宝するコマンドなので覚えておくとどこかで役立つと思います。
以上、ご参考になれば幸いです。