【问题标题】:How do I determine if a port is open on a Windows server? [closed]如何确定 Windows 服务器上的端口是否打开? [关闭]
【发布时间】:2010-09-21 08:25:19
【问题描述】:

我正在尝试在服务器上的备用端口下安装站点,但该端口可能已被防火墙关闭。有没有办法在特定端口上 ping 出或入,以查看它是否打开?

【问题讨论】:

标签: windows-server-2003 port ping


【解决方案1】:

假设您尝试使用的是 TCP(而不是 UDP)端口:

  1. 在服务器本身上,使用netstat -an 查看正在监听的端口。

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

在后一个测试中,一般来说:

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

在 Windows 7 或 Windows Vista 上,默认选项“telnet”不被识别为内部或外部命令、可运行程序或批处理文件。要解决此问题,只需启用它:单击 *开始** → 控制面板程序打开或关闭 Windows 功能。在列表中,向下滚动并选择 Telnet 客户端,然后单击 确定

【讨论】:

  • 在 Win7 或 Vista 默认选项 'telnet' 不被识别为内部或外部命令、可运行程序或批处理文件。要解决此问题,只需启用它:单击开始、控制面板、程序,然后打开或关闭 Windows 功能。在列表中,向下滚动并选择 Telnet 客户端,然后单击确定
  • @PankajKohli 使用 PuTTy telnet 客户端。它不需要安装。
  • Could not open connection to the host, on port *x*: Connect failed 表示什么?
  • @Alnitak 我只是想检查一下,因为我认为这已经回答了我的问题。当我执行telnet api-3t.sandbox.paypal.com 443 时,我得到Connecting to api-3t.sandbox.paypal.com...Could not open connection to the host on port 443: Connect failed 这是因为防火墙阻止了它吗?
  • 打开 telnet.exe 然后输入 o host port 与打开命令行 (cmd.exe) 然后输入 telnet host port 是有区别的
【解决方案2】:

在 Windows 上你可以使用

netstat -na | find "your_port"

缩小结果范围。您还可以过滤LISTENINGESTABLISHEDTCP 等。请注意,它是区分大小写的。

【讨论】:

  • 你不能像这样使用find,它会搜索文件,你应该使用grep
  • @MoatazElmasry,在 Linux 上确实如此,但这是在 Windows 服务器上,其中 find 是正确的命令。 Grep 在 Windows 上不可用。我刚刚运行了这里提到的确切命令,它运行良好。
  • 当我使用该命令时,即 netstat -an |找到“19345”,我没有得到任何结果。这是什么意思?
  • find 不适用于我的 Windows 10,但 netstat -na | findstr "8080" 有效
  • 什么都没有发生,没有 find 或 findstr
【解决方案3】:

如果您是从外部检查,而不是从服务器本身检查,并且您不想安装 telnet(因为它没有随 Windows 的最新版本提供)或任何其他软件,那么您有原生 PowerShell:

Test-NetConnection -Port 800 -ComputerName 192.168.0.1 -InformationLevel Detailed

(不幸的是,这仅适用于 PowerShell 4.0 或更高版本。要检查您的 PowerShell 版本,请输入 $PSVersionTable。)

PS:请注意,最近在 twittersphere 上有一些声明暗示可以通过提及 PowerShell Core 中的“Test-Connection”或快捷方式“tnc”来改进此答案。请参阅https://twitter.com/david_obrien/status/1214082339203993600 并帮助我编辑此答案以改进它!


(如果您的 PSVersion

即使您可以通过安装 Windows Management Framework 4.0 来升级您的 PowerShell 版本,但它并没有为我解决问题,Test-NetConnection cmdlet 仍然不可用)。

【讨论】:

  • 这是最好的答案。在其他人的服务器上安装 telnet 并不总是那么简单!
  • 肯定是最佳答案。
  • 这是一个比 telnet 更可靠的选项,telnet 只会挂起,不会报告任何内容,而这会报告端口在我的情况下可用。
  • 太棒了,对于 Windows 10,这是迄今为止最好的解决方案,不会弄乱安装第三方扩展(在 Linux 上我会使用 telnet 或 nc)。
  • 它有效。赞赏。
【解决方案4】:

我确实喜欢这样:

netstat -an | find "8080" 

从远程登录

telnet 192.168.100.132 8080

只需确保该计算机上的防火墙已关闭。

【讨论】:

  • 当我使用该命令时,即 netstat -an |找到“19345”,我没有得到任何结果。这是什么意思? ——
  • 表示这个端口是空闲的
  • 当我运行netstat -an | find "8080" 时出现错误,它显示no such file named "8080"
【解决方案5】:

在 Windows 机器上,您可以使用来自 Microsoft 的 PortQry 来检查应用程序是否已经在使用以下命令侦听特定端口:

portqry -n 11.22.33.44 -p tcp -e 80

【讨论】:

  • 防火墙端口通常会显示为“FILTERED”。
  • 您也可以使用此工具检查 UDP 端口:portqry -n 11.22.33.44 -p udp -e 19132
【解决方案6】:

如果telnet 不可用,请下载PuTTY。它是一个非常出色的 Telnet、SSH 等客户端,并且在许多情况下都很有用,而不仅仅是这个,尤其是在您管理服务器时。

【讨论】:

  • 是的,但不适用于粘贴 Forth 代码,例如使用 AmForth(除非将 PuTTY 与 Edit Overflow 结合使用)。
【解决方案7】:

如果您想查看 Windows 服务器上所有使用和侦听的端口,请使用此选项:

netstat -an |find /i "listening"

查看所有打开的、正在监听的、已建立的端口:

netstat -a

【讨论】:

    【解决方案8】:

    你想要一个工具来做这件事吗?有一个网站http://www.canyouseeme.org/。否则,您需要其他服务器给您回电以查看端口是否打开...

    【讨论】:

      【解决方案9】:

      在 Windows Server 上你可以使用

      netstat -an | where{$_.Contains("Yourport")}
      

      【讨论】:

      • 不以任何方式解决防火墙问题。
      • 这适用于powershell
      • 或者您的意思是“Windows 服务器”?
      【解决方案10】:

      另一个选项是tcping

      例如:

      tcping host port

      【讨论】:

        【解决方案11】:

        来自Sysinternals的PsPing也很好。

        【讨论】:

        • 好工具。示例代码为:PsPing -n 20 -i 0 servername:port
        【解决方案12】:

        这对我有用:

        • 打开命令提示符
        • 输入telnet
        • Microsoft Telnet>打开

        会确认端口是否打开。

        【讨论】:

          【解决方案13】:

          我发现的另一个既好又小的实用程序是PortQry Command Line Port Scanner version 2.0

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

          【讨论】:

            猜你喜欢
            • 2015-05-01
            • 2015-09-08
            • 1970-01-01
            • 2012-06-09
            • 2011-04-28
            • 2012-10-05
            • 1970-01-01
            • 1970-01-01
            • 2011-12-27
            相关资源
            最近更新 更多