我试图在服务器上的替代端口下安装站点,但端口可能被防火墙关闭。是否有一种方法可以ping出或ping入一个特定的端口,以查看它是否打开?
当前回答
如果你从外部检查,而不是从服务器本身检查,并且你不想安装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仍然不可用)。
其他回答
你想要做这件事的工具吗?在http://www.canyouseeme.org/上有一个网站。否则,你需要其他服务器回叫你,看看端口是否打开…
在Windows机器上,您可以使用Microsoft的PortQry来检查应用程序是否已经在侦听特定端口,使用以下命令:
portqry -n 11.22.33.44 -p tcp -e 80
如果你想查看Windows服务器上所有被使用和监听的端口,使用这个:
netstat -an |find /i "listening"
查看所有开放、监听、已建立的端口:
netstat -a
假设您正在尝试使用的是TCP(而不是UDP)端口:
在服务器本身上,使用netstat -an检查哪些端口正在监听。 在外部,只需使用telnet主机端口(或Unix系统上的telnet host:port)查看连接是否被拒绝、接受或超时。
在后一个测试中,一般来说:
拒绝连接意味着该端口上没有任何运行 接受意味着某些东西正在该端口上运行 超时意味着防火墙正在阻止访问
在Windows 7或Windows Vista上,默认选项“telnet”不能被识别为内部或外部命令、可操作的程序或批处理文件。要解决这个问题,只需启用它:单击*开始**→控制面板→程序→打开或关闭Windows功能。2 .在下拉列表中,选择“Telnet客户端”,单击“确定”。
如果没有telnet,请下载“PuTTY”。它是一个远比Telnet、SSH等更优秀的客户端,在许多情况下都很有用,而不仅仅是在这种情况下,特别是在管理服务器时。
推荐文章
- 无法启动IIS Express Web服务器,注册URL失败,访问被拒绝
- 我可以在/etc/hosts中映射主机名*和端口*吗?
- 如何修改Play执行run命令时使用的默认端口(9000)?
- 如何找到可用的端口?
- ssh -L转发多个端口
- 将主机端口转发到docker容器
- Docker -绑定0.0.0.0:4000失败:端口已经分配
- Node.js中的process.env.PORT是什么?
- 在Python中ping服务器
- 如何打开“谷歌计算引擎”中的特定端口(如9090)
- 465端口和587端口有什么区别?
- Kubernetes Service定义中targetPort和port的区别
- 停止node.js服务器的所有实例
- 现代Linux机顶盒理论上最大的TCP连接数是多少
- 如何关闭Mac终端上的开放端口?