505

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

4

13 回答 13

778

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

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

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

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

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

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

于 2008-11-07T18:55:40.463 回答
208

在 Windows 上,您可以使用

netstat -na | find "your_port"

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

于 2013-04-11T15:27:02.707 回答
116

如果您是从外部检查,而不是从服务器本身检查,并且您不想安装 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 < 4.0,那么您就不走运了。检查此表:

在此处输入图像描述

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

于 2016-02-25T10:09:27.053 回答
43

我确实喜欢这样:

netstat -an | find "8080" 

从远程登录

telnet 192.168.100.132 8080

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

于 2014-03-06T12:30:46.580 回答
41

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

portqry -n 11.22.33.44 -p tcp -e 80
于 2014-05-29T04:48:00.663 回答
24

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

于 2011-01-11T14:31:02.433 回答
16

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

netstat -an |find /i "listening"

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

netstat -a
于 2014-06-23T06:11:38.587 回答
13

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

于 2008-11-07T18:54:44.630 回答
8

在 Windows Server 上,您可以使用

netstat -an | where{$_.Contains("Yourport")}
于 2013-05-03T14:59:26.500 回答
4

Sysinternals 的PsPing也非常好。

于 2014-12-12T08:21:38.767 回答
4

另一种选择是tcping

例如:

tcping host port

于 2015-09-07T10:59:46.617 回答
1

这对我有用:

  • 打开命令提示符
  • 类型telnet
  • Microsoft Telnet>open <主机名或 IP 地址><空格><端口>

它将确认端口是否打开。

于 2013-07-02T15:38:42.143 回答
0

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

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

于 2016-06-07T20:23:33.150 回答