阿里云服务器ECS上已经开放了相应端口的安全组,云服务器的防火墙也已经关闭了。

阿里云服务器自带的安全组3389端口能脸上,但自定义开的端口22和8080连不上

阿里云服务器ECS windows server已开放端口但连不上的问题-编程知识网

 阿里云服务器的防火墙通过远程桌面连接也给关了:

阿里云服务器ECS windows server已开放端口但连不上的问题-编程知识网

阿里云服务器的防火墙高级设置里的入站规则也添加了22、8080端口:

 阿里云服务器ECS windows server已开放端口但连不上的问题-编程知识网

 阿里云服务器ECS windows server已开放端口但连不上的问题-编程知识网

 防火墙高级设置里的属性:

阿里云服务器ECS windows server已开放端口但连不上的问题-编程知识网

 里面所有的防火墙状态都设置为关闭,入站连接设置为允许,出站连接也设置为允许:

阿里云服务器ECS windows server已开放端口但连不上的问题-编程知识网

 防火墙的“允许应用或功能通过windows防火墙”也设置了如下:除了22、8080、3389端口允许,其他也全部勾上了:

阿里云服务器ECS windows server已开放端口但连不上的问题-编程知识网

 但通过本地windows的远程桌面连接连到云服务器ECS桌面,打开ECS的cmd查看端口开放列表时还是没有找到自定义开放的22、8080端口,ECS自带的3389端口倒是有。查了资料有一种说法说是端口可能被用作windows自己的保留端口所以才netstat找不到。每次开机,windows都会随机保留一些端口,被保留的端口即使没有任何程序在使用,用户自己创建的程序也是无法访问这些端口的,而且保留端口有一部分经常是8000及50000端口附近。

查看保留端口:netsh interface ipv4 show excludedportrange protocol=tcp

阿里云服务器ECS windows server已开放端口但连不上的问题-编程知识网

*标注的代表这些范围内端口不会被作为保留端口使用,如果自己要用的端口带*,说明该端口并没有被作为windows的保留端口,如果没有带*则说明被作为windows的保留端口了,此时就要将该端口移出

移出保留端口命令:netsh int ipv4 add excludedportrange protocol=tcp startport=8080 numberofports=10        (该命令8080为开始的端口,10的意思是8080-8089这些端口全部移出保留端口)

但我这里8080端口带*,表示其并没有被用作windows的保留端口,所以也无法解决netstat找不到8080端口的问题。

查资料又看到一种说法,说防火墙策略允许开放的端口netstat是有可能看不到的,因为相关服务/进程没启动的话netstat就看不到,所以先把服务器程序部署到云服务器上看看。但想要使用winscp或者Xshell将程序部署到云服务器上的话又一定要通过端口,现在的问题就是端口连不上

解决方法:直接通过windows的远程桌面连接打开云服务器的桌面,在云服务器上打开浏览器下载一个todesk,然后用todesk连自己的笔记本电脑把笔记本电脑上的程序通过文件形式传输到云服务器上。将服务器程序传到云服务器上运行后,再在云服务器的终端输入netstat -an就可以看到8080端口了。

服务器程序:就只是简单的写了个监听的功能 

 阿里云服务器ECS windows server已开放端口但连不上的问题-编程知识网

 8080端口监听成功:

阿里云服务器ECS windows server已开放端口但连不上的问题-编程知识网

 云服务器上部署服务器程序成功使端口成功被监听到后,客户端程序也成功通过8080端口连接上了云服务器:

阿里云服务器ECS windows server已开放端口但连不上的问题-编程知识网

 综上:在阿里云服务器ECS的windows server系统中,要想开放数据传输的新端口,要先写个监听指定端口的服务器程序部署到阿里云服务器中,这样客户端才能通过新开的指定端口去传输数据。