我想在服务器的一个替代端口下安装一个网站,但该端口可能被防火墙关闭。是否有办法在一个特定的端口上ping出或ping入,看看它是否开放?
假设你试图使用的是一个TCP(而不是UDP)端口。
1.在服务器上,使用netstat -an
来检查哪些端口正在监听。
2.2. 在外部,只需使用telnet host port
(或Unix系统上的telnet host:port
)来查看连接是否被拒绝、接受或超时。
在这后一个测试中,那么一般来说。
在Windows 7或Windows Vista中,默认选项'telnet'不被认为是内部或外部命令、可操作程序或批处理文件。要解决这个问题,只需启用它。点击*开始 → 控制面板* → 程序 → 打开或关闭Windows功能。在列表中,向下滚动并选择Telnet Client*,然后点击OK。
如果你从外部检查,而不是从服务器本身检查,而且你不想麻烦地安装telnet(因为它不随同最新版本的Windows一起安装)或任何其他软件,那么你就有了本地PowerShell。
Test-NetConnection -Port 800 -ComputerName 192.168.0.1 -InformationLevel Detailed
(不幸的是,这只适用于PowerShell 4.0或更新的版本,要检查你的PS版本,键入$PSVersionTable
)。
要检查你的PS版本,请键入$PSVersionTable
)。
(如果你有一个PSVersion < 4.0,你'就不走运了。 检查这个表格。
尽管你可以通过安装[Windows管理框架4.0][2]来升级你的powershell版本,但对我来说,它并没有起到作用,Test-NetConnectioncmdlet仍然不可用)。)
1:
[2]: https://www.microsoft.com/en-us/download/details.aspx?id=40855
在Windows机器上,您可以使用微软的[PortQry][1]来检查应用程序是否已经在特定的端口上监听,使用的命令如下:
portqry -n 11.22.33.44 -p tcp -e 80
。
portqry -n 11.22.33.44 -p tcp -e 80
[1]: http://www.microsoft.com/en-us/download/details.aspx?id=17148
我确实喜欢这样。
netstat -an | find "8080"
从远程登录
telnet 192.168.100.132 8080
而且只要确保那台机器的防火墙是关闭的。
Sysinternals的[PsPing][1]也很不错。
[1]: https://docs.microsoft.com/en-us/sysinternals/downloads/psping