前言
最近遇到一个问题,在CentOS上搭建一个nginx服务器时出现本地可以访问8000端口而公网访问不了,最后发现是防火墙和阿里云上安全组配置问题,记录一下解决方法,希望能帮到遇到相同问题的人。
解决方式
1.确保nginx配置没有问题
1 | server{ |
2.在本地通过内网测试发现可以访问而在公网却访问不了
1 | $ curl 127.0.0.1:8000 |
3.修改阿里云安全组配置
(1).登录阿里云,在实例列表中找到安全组配置
(2).打开配置规则
(3).手动添加端口范围后(这里我直接设置8000-8999的端口都允许访问,你们可以根据自己需要端口范围),保存后公网进行访问,如果还是不行就进行下一步操作设置防火墙
4.安装iptables
(1).关闭selunux1
$ vi /etc/selinux/config
注释以下两行配置:1
2SELINUX=enforcing
SELINUXTYPE=targeted
新增一行后:1
SELINUX=disabled
保存退出,使配置生效,输入命令关闭selinux:1
$ setenforce 0
关闭firewalld并禁止开机启动:1
2systemctl stop firewalld
systemctl disable firewalld
安装iptables防火墙:1
yum install iptables-services
编辑防火墙配置文件,开放增加3306 80 8000-8999的端口:1
2
3
4
5vi /etc/sysconfig/iptables
-A INPUT -p tcp -m state --state NEW -m tcp --dport 3306 -j ACCEPT
-A INPUT -p tcp -m state --state NEW -m tcp --dport 80 -j ACCEPT
-A INPUT -p tcp -m state --state NEW -m tcp --dport 8000:8999 -j ACCEPT
保存退出,重新启动防火墙使配置生效,并设为开机启动项:1
2systemctl restart iptables
systemctl enable iptables
这样就可以在公网访问8000端口了