我正在尝试在服务器上的备用端口下安装站点,但该端口可能被防火墙关闭.有没有办法ping或在特定端口上,看它是否打开?
假设它是您尝试使用的TCP(而不是UDP)端口:
在服务器本身,用于netstat -an
检查哪些端口正在侦听
从外部,只是telnet host port
(或telnet host:port
在Unix系统上)查看连接是否被拒绝,接受或超时
在后一个测试中,那么一般来说:
连接被拒绝意味着该端口上没有任何运行
接受意味着该端口上正在运行某些东西
超时意味着防火墙阻止访问
在Win7或Vista默认选项'telnet'不被识别为内部或外部命令,可操作程序或批处理文件.要解决此问题,只需启用它:单击"开始","控制面板","程序",然后单击"打开或关闭Windows功能".在列表中,向下滚动并选择Telnet Client,然后单击"确定"
只是想在Windows上添加它,你可以使用
netstat -na | find "your_port"
缩小结果范围.您还可以过滤LISTENING
,ESTABLISHED
,TCP
和这样的.但请注意它是区分大小写的.
如果你是从外部检查,而不是从服务器本身检查,并且你不想打扰安装telnet(因为它没有附带最新版本的Windows)或任何其他软件,那么你有本机PowerShell:
Test-NetConnection -Port 800 -ComputerName 192.168.0.1 -InformationLevel Detailed
(不幸的是,这仅适用于PowerShell 4.0或更高版本.要检查您的PS版本,请键入$PSVersionTable
.)
(如果你有PSVersion <4.0,那你就不走运了.查看下表:
即使您可以通过安装Windows Management Framework 4.0来升级您的PowerShell版本,但它对我来说并不起作用,Test-NetConnection cmdlet仍然不可用).
在Windows计算机上,您可以使用Microsoft的PortQry来检查应用程序是否已使用以下命令侦听特定端口:
portqry -n 11.22.33.44 -p tcp -e 80
我确实喜欢这样:
netstat -an | find "8080"
来自telnet
telnet 192.168.100.132 8080
并确保该计算机上的防火墙已关闭.
如果没有telnet,请下载PuTTY.它是一个远远优越的telnet,ssh等客户端,并且在许多情况下都很有用,而不仅仅是这个,特别是如果你正在管理服务器.
你想要一个工具吗?http://www.canyouseeme.org/上有一个网站.否则,您需要一些其他服务器来回叫,看看端口是否打开...
如果要查看Windows服务器上的所有已使用和侦听端口,请使用此选项:
netstat -an |find /i "listening"
查看所有打开,侦听,建立的端口:
netstat -a
在Windows服务器上,您可以使用
netstat -an | where{$_.Contains("Yourport")}