Test-NetConnection を成功させるには以下の3つの条件を満たす必要があります。
- 途中にあるファイアウォールのポートが開放されている
- サーバー側のファイアウォールが開放されている
- 対象のポートでリスニングしている
1 と 2の条件を満たしていても、対象のポートでリスナーがリスニングをおこなっていない場合は、 Test-NetConnection に失敗します。ファイアウォールを開放しているのに、 Test-NetConnection に失敗する場合はリスナーが起動しているか確認してみましょう。
リスナーとは外部からの接続要求を受け付けるプログラムです。リスナーが接続要求を受け入れられるようにスタンバイしていることをリスニングしていると表現します。
サーバー側でリスナーが起動しているか確認する方法
ここではWindowsの80番ポートと通信ができない場合にどう調査すれば良いかを説明します。
前提条件
- OS:Windows Server
- プログラム:IIS
- ポート番号: 80
状況
クライアントからサーバーに対して、80番ポートを指定して、コネクションテストを実施したが、失敗となった。経路上のファイアウォールは開放されていることを確認済み。サーバー側に問題があると考え、調査を開始することにした。
PS> Test-NetConnection 82.251.108.83 -port 80
ComputerName : 82.251.108.83
RemoteAddress : 82.253.108.83
RemotePort : 80
InterfaceAlias : Wi-Fi
SourceAddress : 192.168.1.7
PingSucceeded : False
PingReplyDetails (RTT) : 0 ms
TcpTestSucceeded : False ◀指定したポートへの接続失敗
調査
調査1
サーバー側のWindows ファイアウォールを確認したところ、Word Wide Web Service (IIS) に対する通信は許可されていることを確認。ファイアウォール以外に問題があると想定される。
調査2
サーバーで netstat -an | find “LISTEN” コマンドを実施し、リスニングしているポートを確認したところ、80番ポートでのリスニングがおこなわれていないことを確認。IISのサービスである Word Wide Web サービスが起動していないのではないかと推測。
調査3
Word Wide Web サービス が停止していることが判明したので、サービスの起動を実施。
調査4
nd “LISTEN” コマンドを実施し、80番ポートでリスニングを開始したことを確認。
調査5
改めてクライントから接続確認をおこなったところ、問題なく接続できたため調査を終了。
PS> Test-NetConnection 82.251.108.83 -port 80
ComputerName : 82.251.108.83
RemoteAddress : 82.253.108.83
RemotePort : 80
InterfaceAlias : Wi-Fi
SourceAddress : 192.168.1.7
TcpTestSucceeded : True ◀指定したポートへの接続成功
以上。
コメント