如何使用 PowerShell 检查远程端口是否打开?


早些时候我们使用 telnet 客户端来检查远程端口连接,事实上,我们现在仍然使用 cmd 和 PowerShell 来进行操作,但是此功能并非操作系统默认安装,并且一些公司对安装新功能(包括 telnet)有限制。

我们可以利用 PowerShell 在不安装 telnet 的情况下测试远程端口连接,并使用 Test-NetConnection 命令。此命令对于其他诊断也很有用,但我们这里重点关注远程端口检查。

要检查远程端口是否打开,我们可以使用 **Test-NetConnection** 命令,它需要 -ComputerName 参数和 -Port 参数来检查远程端口状态。

Test-NetConnection -ComputerName Test1-Win2k12 -Port 80

输出

ComputerName     : Test1-Win2k12
RemoteAddress    : 192.168.0.107
RemotePort       : 80
InterfaceAlias   : Ethernet0
SourceAddress    : 192.168.0.106
TcpTestSucceeded : True

以上示例将检查远程服务器 Test1-Win2k12 上的 80 端口连接。

您可以看到 TcpTestSucceeded 属性为 true,因此端口已打开。下面显示的另一个示例是 WInRM https 端口 5986。

Test-NetConnection -ComputerName Test1-Win2k12 -Port 5986

输出

WARNING: TCP connect to Test1-Win2k12:5986 failed
ComputerName           : Test1-Win2k12
RemoteAddress          : 192.168.0.107 RemotePort : 5986
InterfaceAlias         : Ethernet0
SourceAddress          : 192.168.0.106
PingSucceeded          : True
PingReplyDetails (RTT) : 0 ms
TcpTestSucceeded       : False

您可以看到 WinRM SSL 端口在远程服务器上未打开,并且在第一行以及 TcpTestSucceeded 属性中都显示了警告消息。

更新于: 2020年9月28日

6K+ 浏览量

开启你的 职业生涯

通过完成课程获得认证

开始学习
广告