如何确定端口是否在Windows服务器上打开?
假设它是一个TCP(而不是UDP)端口,您正在尝试使用:
在服务器本身,使用
netstat -an
进行检查,看哪些端口监听从外面,只是
telnet host port
(或在Unix系统telnet host:port
),看是否连接被拒绝,接受或超时
在那后面的测试,然后在一般:
- 拒绝连接意味着没有什么是该端口
- 接受上运行意味着什么是该端口
- 超时上运行意味着防火墙阻止访问
Win7上或Vista默认选项'telnet'不被识别为内部或外部命令,可操作程序或批处理文件。要解决这个问题,只需启用它:单击开始,控制面板,程序,然后打开或关闭Windows功能。在列表中,向下滚动并选择Telnet客户端,然后单击确定
在Win7或Vista中,默认选项'telnet'不被识别为内部或外部命令,可操作程序或批处理文件。要解决这个问题,只需启用它:单击开始,控制面板,程序,然后打开或关闭Windows功能。在列表中,向下滚动并选择Telnet客户端,然后单击确定 – volody 2010-11-03 01:41:39
@volody任何建议,如何做到这一点W/O管理员权限? – 2014-04-24 07:44:02
@PankajKohli改为使用[PuTTy](http://www.chiark.greenend.org.uk/~sgtatham/putty/download.html)telnet客户端。它不需要安装。 – 2014-05-12 14:28:04
只是想补充一点,在Windows中可以使用
netstat -na | find "your_port"
缩小的结果。您还可以过滤LISTENING
,ESTABLISHED
,TCP
和这样的。不过,请注意区分大小写。
在Windows Server,你可以使用
netstat -an | where{$_.Contains("Yourport")}
这里是我工作,
- 打开命令提示符
- 输入telnet
- 微软的Telnet>打开
这将确认端口是否打开。
我不喜欢的是:
netstat -an | find "8080"
从远程登录
telnet 192.168.100.132 8080
而只是确保防火墙是关闭的那台机器上。
使用这个,如果你想看到所有的使用和听力Windows服务器上的端口:
netstat -an |find /i "listening"
查看所有打开的,听,建立港口:
netstat -a
从Sysinternals psping也很好
如果你从外面检查,而不是从服务器本身,你不想打扰安装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的版本,它并没有为我做的伎俩,试验的NetConnection cmdlet的仍然是不可用)。
其他工具,我发现是好的,少为好, PortQry将命令行端口扫描器2.0版 https://www.microsoft.com/en-us/download/details.aspx?id=17148
可以ping服务器和端口,它会告诉你该端口的状态,有一个命令行工具和一个UI。
Test-NetConnection -Port 800 -ComputerName 192.168.0.1 -InformationLevel Detailed
上面的PowerShell的例子只是上面的Windows 7的Windows版本有效的cmdlet的是与Windows 7不兼容。
另请参见http://serverfault.com/questions/309357/ping-a-specific-port – Vadzim 2015-09-07 11:00:49
也检查此 - http://*.com/questions/41522605/how-to-check-if-port远程服务器随批处理文件和不带Thir – npocmaka 2017-01-25 20:10:10