【发布时间】:2010-09-21 08:25:19
【问题描述】:
我正在尝试在服务器上的备用端口下安装站点,但该端口可能已被防火墙关闭。有没有办法在特定端口上 ping 出或入,以查看它是否打开?
【问题讨论】:
标签: windows-server-2003 port ping
我正在尝试在服务器上的备用端口下安装站点,但该端口可能已被防火墙关闭。有没有办法在特定端口上 ping 出或入,以查看它是否打开?
【问题讨论】:
标签: windows-server-2003 port ping
假设您尝试使用的是 TCP(而不是 UDP)端口:
在服务器本身上,使用netstat -an 查看正在监听的端口。
从外部,只需使用 telnet host port(或 Unix 系统上的 telnet host:port)查看连接是否被拒绝、接受或超时。
在后一个测试中,一般来说:
在 Windows 7 或 Windows Vista 上,默认选项“telnet”不被识别为内部或外部命令、可运行程序或批处理文件。要解决此问题,只需启用它:单击 *开始** → 控制面板 → 程序 → 打开或关闭 Windows 功能。在列表中,向下滚动并选择 Telnet 客户端,然后单击 确定。
【讨论】:
Could not open connection to the host, on port *x*: Connect failed 表示什么?
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 这是因为防火墙阻止了它吗?
o host port 与打开命令行 (cmd.exe) 然后输入 telnet host port 是有区别的
在 Windows 上你可以使用
netstat -na | find "your_port"
缩小结果范围。您还可以过滤LISTENING、ESTABLISHED、TCP 等。请注意,它是区分大小写的。
【讨论】:
find 不适用于我的 Windows 10,但 netstat -na | findstr "8080" 有效
如果您是从外部检查,而不是从服务器本身检查,并且您不想安装 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 仍然不可用)。
【讨论】:
我确实喜欢这样:
netstat -an | find "8080"
从远程登录
telnet 192.168.100.132 8080
只需确保该计算机上的防火墙已关闭。
【讨论】:
netstat -an | find "8080" 时出现错误,它显示no such file named "8080"
在 Windows 机器上,您可以使用来自 Microsoft 的 PortQry 来检查应用程序是否已经在使用以下命令侦听特定端口:
portqry -n 11.22.33.44 -p tcp -e 80
【讨论】:
portqry -n 11.22.33.44 -p udp -e 19132
如果telnet 不可用,请下载PuTTY。它是一个非常出色的 Telnet、SSH 等客户端,并且在许多情况下都很有用,而不仅仅是这个,尤其是在您管理服务器时。
【讨论】:
如果您想查看 Windows 服务器上所有使用和侦听的端口,请使用此选项:
netstat -an |find /i "listening"
查看所有打开的、正在监听的、已建立的端口:
netstat -a
【讨论】:
你想要一个工具来做这件事吗?有一个网站http://www.canyouseeme.org/。否则,您需要其他服务器给您回电以查看端口是否打开...
【讨论】:
在 Windows Server 上你可以使用
netstat -an | where{$_.Contains("Yourport")}
【讨论】:
【讨论】:
来自Sysinternals的PsPing也很好。
【讨论】:
这对我有用:
telnet
会确认端口是否打开。
【讨论】:
我发现的另一个既好又小的实用程序是PortQry Command Line Port Scanner version 2.0。
你可以 ping 一个服务器和一个端口,它会告诉你端口的状态。有一个命令行实用程序和一个 UI。
【讨论】: