如何确定端口是否在Windows服务器上打开?

我正在尝试在服务器上的另一个端口下安装一个站点,但端口可能被防火墙closures。 有没有办法在特定的端口上ping或者查看是否打开?

假设它是一个TCP(而不是UDP)端口,你正在尝试使用:

  1. 在服务器本身上,使用netstat -an来检查哪些端口正在侦听

  2. 从外部,只需telnet host port (或Unix系统上的telnet host:port )来查看连接是否被拒绝,接受或超时

在后面的testing中,一般来说:

  • 拒绝连接意味着该端口上没有任何内容正在运行
  • 接受意味着在该端口上正在运行某些东西
  • 超时意味着防火墙阻止访问

在Win7或Vista中,默认选项“telnet”不被识别为内部或外部命令,可操作程序或batch file。 要解决此问题,请启用它:单击开始,控制面板,程序,然后打开或closuresWindowsfunction。 在列表中,向下滚动并selectTelnet客户端,然后单击确定

只是想添加在Windows上,你可以使用

 netstat -na | find "your_port" 

缩小结果。 您也可以过滤LISTENINGESTABLISHEDTCP等。 不过,请注意区分大小写。

我这样做:

 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>打开

它会确认端口是否打开。

我认为我得到的最好的是你可以检查自己的端口以及其他域的端口。

http://www.checkmyports.net

我发现的其他实用程序,也是很好,小,PortQry命令行端口扫描仪版本2.0 https://www.microsoft.com/en-us/download/details.aspx?id=17148

你可以ping一个服务器和一个端口,它会告诉你端口的状态,有一个命令行工具和一个UI。