如何确定端口是否在Windows服务器上打开?
我正在尝试在服务器上的另一个端口下安装一个站点,但端口可能被防火墙closures。 有没有办法在特定的端口上ping或者查看是否打开?
假设它是一个TCP(而不是UDP)端口,你正在尝试使用:
-
在服务器本身上,使用
netstat -an
来检查哪些端口正在侦听 -
从外部,只需
telnet host port
(或Unix系统上的telnet host:port
)来查看连接是否被拒绝,接受或超时
在后面的testing中,一般来说:
- 拒绝连接意味着该端口上没有任何内容正在运行
- 接受意味着在该端口上正在运行某些东西
- 超时意味着防火墙阻止访问
在Win7或Vista中,默认选项“telnet”不被识别为内部或外部命令,可操作程序或batch file。 要解决此问题,请启用它:单击开始,控制面板,程序,然后打开或closuresWindowsfunction。 在列表中,向下滚动并selectTelnet客户端,然后单击确定
只是想添加在Windows上,你可以使用
netstat -na | find "your_port"
缩小结果。 您也可以过滤LISTENING
, ESTABLISHED
, TCP
等。 不过,请注意区分大小写。
我这样做:
netstat -an | find "8080"
从远程login
telnet 192.168.100.132 8080
只要确保该机器上的防火墙已closures。
在Windows计算机上,可以使用Microsoft的PortQry ,使用以下命令检查应用程序是否正在侦听特定的端口:
portqry -n 11.22.33.44 -p tcp -e 80
如果您是从外部进行检查,而不是从服务器本身进行检查,并且您不想安装远程login(因为它不包含最新版本的Windows)或任何其他软件,那么您将拥有本机PowerShell:
Test-NetConnection -Port 800 -ComputerName 192.168.0.1 -InformationLevel Detailed
(不幸的是,这只适用于PowerShell 4.0或更新版本。要查看您的PS版本,请input$PSVersionTable
。)
(如果你的PSVersion <4.0,那你倒霉了,请检查下表:
即使您可以通过安装Windows Management Framework 4.0来升级您的PowerShell版本,但是对于我来说, Test-NetConnection cmdlet仍然不可用)。
如果telnet不可用,请下载PuTTY 。 这是一个非常优秀的远程login,SSH等客户端,并将在许多情况下,而不仅仅是这一个,特别是如果你正在pipe理服务器有用。
你想要一个工具吗? 有一个网站http://www.canyouseeme.org/ 。 否则,你需要一些其他的服务器来回电,看看端口是否打开…
如果要查看Windows服务器上的所有已使用和侦听端口,请使用此选项:
netstat -an |find /i "listening"
查看所有打开,监听,build立的端口:
netstat -a
在Windows服务器上,您可以使用
netstat -an | where{$_.Contains("Yourport")}
从Sysinternals psping也是非常好的
另一个select是tcping 。
例如:
tcping host port
Test-NetConnection -Port 800 -ComputerName 192.168.0.1 -InformationLevel Detailed
上面的PowerShell示例仅在Windows 7上的Windows版本上有效。该cmdlet与Windows 7不兼容。
这是为我工作的,
- 打开命令提示符
- 键入telnet
- Microsoft Telnet>打开
它会确认端口是否打开。
我认为我得到的最好的是你可以检查自己的端口以及其他域的端口。
我发现的其他实用程序,也是很好,小,PortQry命令行端口扫描仪版本2.0 https://www.microsoft.com/en-us/download/details.aspx?id=17148
你可以ping一个服务器和一个端口,它会告诉你端口的状态,有一个命令行工具和一个UI。