PowerShell Test NetConnection (Check is Port available)
2022-01-05
筆記如何使用 PowerShell 檢查特定 Port 是否提供服務。
說明
Test-NetConnection
Test-NetConnection 是 Test-Connection 以及 Ping 的後繼者,可以指定 Port 對遠端 Host 進行連線測試。
Test-NetConnection ptt.cc -port 23
ComputerName : pttcc
RemoteAddress : 140.112.172.5
SourceAddress : 127.0.0.1
TcpTestSucceeded : True
Test-NetConnection www.ptt.cc -port 443
ComputerName : www.ptt.cc
RemoteAddress : 104.21.235.87
RemotePort : 443
InterfaceAlias : 乙太網路
SourceAddress : 127.0.0.1
TcpTestSucceeded : True
如果 Port 沒有回應則會顯示如下訊息:
Test-NetConnection www.ptt.cc -port 23
警告: TCP connect to (104.21.235.88 : 23) failed
警告: TCP connect to (104.21.235.87 : 23) failed
ComputerName : www.ptt.cc
RemoteAddress : 104.21.235.88
RemotePort : 23
InterfaceAlias : 乙太網路
SourceAddress : 127.0.0.1
PingSucceeded : True
PingReplyDetails (RTT) : 40 ms
TcpTestSucceeded : False
System.Net.Sockets.TcpClient
此外也可以使用 .NET 的 TcpClient 類別測試 Port。
New-Object System.Net.Sockets.TcpClient("www.ptt.cc", 443)
NMAP
可以由 Client 端使用 NMAP 批次檢查。
檢查伺服器所有服務的 Port
netstat -na | findstr LISTENING
PowerShell
Get-NetTCPConnection -State Listen
相關連結
Powershell 使用物件與資料結構 (Array, Hash)