Powershell でポート指定の通信確認

2 minute read

ポート番号指定での疎通確認方法

特定の TCP ポートの疎通確認をしたい場合は、下記のコマンドを試してみてください。

Test-NetConnection

このコマンドは、Windows 8.1、Windows Server 2012R2 以降の OS では既定で利用できるコマンドです。

このコマンドでは、Ping コマンドでは確認できない項目を確認することが可能です。

  1. Ping 疎通確認
  2. TCP 疎通確認
  3. よく使う TCP ポート

1. Ping 疎通確認

通信先のみを指定して確認します。

PS C:\> Test-NetConnection google.com

ComputerName           : google.com
RemoteAddress          : 172.217.161.78
InterfaceAlias         : Team0
SourceAddress          : 192.168.244.16
PingSucceeded          : True
PingReplyDetails (RTT) : 3 ms

Ping 疎通確認のより詳細バージョン

通信先だけでなく、表示する情報のレベルを指定します。 詳細表示させたい場合、-InformationLevelDetailed としてください。 名前解決や Next Hop の情報が追加されます。

PS C:\> Test-NetConnection google.com -InformationLevel Detailed

ComputerName           : google.com
RemoteAddress          : 172.217.161.78
NameResolutionResults  : 172.217.161.78
InterfaceAlias         : Team0
SourceAddress          : 192.168.244.16
NetRoute (NextHop)     : 192.168.244.254
PingSucceeded          : True
PingReplyDetails (RTT) : 3 ms

-InformationLevel はもう1つオプションがあり、Quiet と指定もできます。 こちらは非常にシンプルな結果が表示されます。

PS C:\> Test-NetConnection google.com -InformationLevel Quiet
True

2. TCP 疎通確認

TCP ポートの疎通確認をする場合、-Port オプションを利用します。TcpTestSucceeded の結果が True であれば、指定した TCP ポートで疎通できたことが確認できます。

PS C:\> Test-NetConnection google.com -Port 443

ComputerName     : google.com
RemoteAddress    : 216.58.197.206
RemotePort       : 443
InterfaceAlias   : Team0
SourceAddress    : 192.168.244.16
TcpTestSucceeded : True

詳細バージョン

-InformationLevelDetailed で指定した場合の結果はこちらです。

PS C:\> Test-NetConnection google.com -Port 443 -InformationLevel Detailed

ComputerName            : google.com
RemoteAddress           : 216.58.197.206
RemotePort              : 443
NameResolutionResults   : 216.58.197.206
MatchingIPsecRules      :
NetworkIsolationContext : Internet
InterfaceAlias          : Team0
SourceAddress           : 192.168.244.16
NetRoute (NextHop)      : 192.168.244.254
TcpTestSucceeded        : True

3. よく使う TCP ポートの疎通確認

Test-NetConnection コマンドでは、よく使う TCP ポートのポート番号を指定せず、-CommonTCPPort のオプションを指定するだけで、疎通確認することができます。

  • -CommonTCPPort で指定できる引数
オプション ポート番号
HTTP 80
RDP 3389
SMB 445
WinRM 5985

ポート番号を覚えていなくても通信確認できるのが便利ですね。

PS C:\> Test-NetConnection google.com -CommonTCPPort HTTP

ComputerName     : google.com
RemoteAddress    : 172.217.31.174
RemotePort       : 80
InterfaceAlias   : Team0
SourceAddress    : 192.168.244.16
TcpTestSucceeded : True

RDP の通信確認もできるので、クラウドに作成した仮想マシンに通信できないときなど、切り分けとしても使えると思います。

PS C:\> Test-NetConnection AZSHCINODE01 -CommonTCPPort RDP -InformationLevel Detailed

ComputerName            : AZSHCINODE01
RemoteAddress           : 192.168.245.71
RemotePort              : 3389
NameResolutionResults   : 192.168.245.71
MatchingIPsecRules      :
NetworkIsolationContext : Internet
InterfaceAlias          : Team0
SourceAddress           : 192.168.244.16
NetRoute (NextHop)      : 192.168.244.254
TcpTestSucceeded        : True

Windows 8.1 や Windows Server 2012R2 から標準でインストールされているコマンドのため、手軽に疎通確認できるコマンドです。 通信できない状況になった場合、どのレベルで疎通ができていないのか確認したいときに試してみてください!