阿里云ECS放行80端口,防火墙已关闭的情况下还是无法访问从外部访问80端口,而本地则可以正常访问80端口,这让我初始时以为是外部不能访问到服务器端口的原因。尝试了以下几种方法
nmap查看端口是否开放
结果如上图所示,由于阿里云防火墙的存在,实际上访问哪个端口都会出现open|filtered
的状态。
iptables增加放行规则
1 | iptables -A INPUT -p tcp --dport 80 -j ACCEPT |
阿里云ECS服务器无法访问端口(防火墙在关闭状态也启作用)_阿里云ubuntu 防火墙已关闭还需要设置端口吗-CSDN博客
实测不行
启动firewalld并增加放行规则
1 | systemctl start firewalld |
linux关闭防火墙了,但端口还是访问不了_华为麒麟系统防火墙已关闭,但ip能ping通 端口不通-CSDN博客
实测不行
最终办法
我一直在纠结端口能不能访问到的问题,实际上我还同时放开了Mysql的3306和Redis的6379端口,而我在本机利用nvicat和tiny rdm都是可以正常访问远程服务器的。所以其实前面我的修改方向一直错了。
上面用nmap查看端口是否能访问到的方法有缺陷,对于80端口,正确的查看能否被访问的办法是curl
命令(这个命令最好在linux客户端下运行)
测试Linux端口的是否可访问的四种方法_linux测试接口是否可以调用-CSDN博客
1 | curl ip:port |
我测试的结果如上,可见并不是不能访问,而是没有权限。
最终解决办法是给前端资源文件夹加上权限。
1 | #修改文件类型权限 |
阿里云Nginx配置站点403Forbidden问题_阿里云配置nginx老是403-CSDN博客