我经常需要诊断网络连接问题,目前使用的Test-NetConnection
是 PowerShell(版本 5.1)。输出告诉我端口是否可访问。如果不可访问,我想知道具体错误,例如timeout
或connection refused
。到目前为止,我在输出中找不到这条信息。
是否可以使用 获取失败的连接尝试的具体错误消息Test-NetConnection
? 如果可以,如何获取?
作为参考,这里有我得到的三个输出示例。
- 连接成功
Test-NetConnection somehostname -Port 1433 -InformationLevel Detailed
ComputerName : somehostname
RemoteAddress : 10.0.1.201
RemotePort : 1433
NameResolutionResults : 10.0.1.201
MatchingIPsecRules :
NetworkIsolationContext : Private Network
InterfaceAlias : Dialog
SourceAddress : 10.0.2.150
NetRoute (NextHop) : 10.0.2.99
TcpTestSucceeded : True
- 从不同来源进行相同测试,中间设有防火墙
Test-NetConnection somehostname -Port 1433 -InformationLevel Detailed
WARNING: TCP connect to (10.0.1.201 : 1433) failed
ComputerName : somehostname
RemoteAddress : 10.0.1.201
RemotePort : 1433
NameResolutionResults : 10.0.1.201
MatchingIPsecRules :
NetworkIsolationContext : Private Network
IsAdmin : False
InterfaceAlias : Dialog
SourceAddress : 10.0.2.38
NetRoute (NextHop) : 10.0.2.35
PingSucceeded : True
PingReplyDetails (RTT) : 0 ms
TcpTestSucceeded : False
- 在本地主机上测试关闭的端口
Test-NetConnection localhost -Port 12345 -InformationLevel Detailed
WARNING: TCP connect to (127.0.0.1 : 12345) failed
WARNING: TCP connect to (::1 : 12345) failed
ComputerName : localhost
RemoteAddress : 127.0.0.1
RemotePort : 12345
NameResolutionResults : 127.0.0.1
::1
MatchingIPsecRules :
NetworkIsolationContext : Loopback
InterfaceAlias : Loopback Pseudo-Interface 1
SourceAddress : 127.0.0.1
NetRoute (NextHop) : 0.0.0.0
PingSucceeded : True
PingReplyDetails (RTT) : 0 ms
TcpTestSucceeded : False