我正在尝试在服务器上的另一个端口安装网站,但该端口可能被防火墙关闭。是否有一种方法可以ping出或ping进,检查特定端口是否开放?
我正在尝试在服务器上的另一个端口安装网站,但该端口可能被防火墙关闭。是否有一种方法可以ping出或ping进,检查特定端口是否开放?
netstat -an
检查哪些端口正在侦听。telnet host port
(或在Unix系统上使用telnet host:port
)来查看连接是否被拒绝、接受或超时。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
。这是因为防火墙阻止了它吗? - Popeyeo host port
和打开命令行 (cmd.exe) 后输入 telnet host port
是有区别的。 - Pawel Cioch在Windows操作系统上,您可以使用
netstat -na | findstr "your_port"
为了缩小结果范围,你可以过滤 LISTENING
、ESTABLISHED
、TCP
等。请注意它是区分大小写的。
find
命令对我无效,但是 netstat -na | findstr "8080"
命令有效。 - arun如果你是从外部检查而不是从服务器本身检查,并且你不想麻烦安装telnet(因为它不随Windows的最新版本一起提供)或其他任何软件,那么你可以使用本地PowerShell:
Test-NetConnection -Port 800 -ComputerName 192.168.0.1 -InformationLevel Detailed
很不幸,这仅适用于PowerShell 4.0或更新版本。要检查您的PowerShell版本,请键入$PSVersionTable
。
PS:请注意,现在在Twitter上有一些声称暗示可以通过提及PowerShell Core中的“Test-Connection”或快捷方式“tnc”来改进此答案。请参见https://twitter.com/david_obrien/status/1214082339203993600 并帮助我编辑此答案以进行改进!
如果您的PSVersion<4.0,则没有运气了。请检查此表格:
尽管可以通过安装Windows管理框架4.0升级PowerShell版本,但对我来说并没有起作用,Test-NetConnection cmdlet仍然不可用。
我是这样做的:
netstat -an | find "8080"
通过 Telnet
telnet 192.168.100.132 8080
只需确保该计算机的防火墙已关闭。
netstat -an | find "8080"
时,出现错误提示,指出没有名为“8080”的文件
。 - Pragyaditya Dasportqry -n 11.22.33.44 -p udp -e 19132
。 - HelloWorld101如果您想查看 Windows 服务器上所有已使用和正在侦听的端口,请使用此命令:
netstat -an |find /i "listening"
查看所有开放、监听和已建立的端口:
netstat -a
netstat -an | where{$_.Contains("Yourport")}