防火墙和安全组
服务器有两种防火墙
- iptables
- firewalld
这两个防火墙只能开一个,也可以两个都不开,不开就是全部支持访问的意思,我使用的是iptables
iptables
先关闭firewall防火墙
由于CenterOS7.0以上版本并没有预装Iptables,我们需要自行装
# 先查看有没有安装
systemctl status iptables.service
# 安装iptables:
yum install iptables
# 安装iptables-services:
yum install iptables-services
# 开启防火墙:
systemctl start iptables.service
# 关闭防火墙:
systemctl stop iptables.service
# 查看防火墙状态:
systemctl status iptables.service
# 设置开机启动:
systemctl enable iptables.service
# 禁用开机启动:
systemctl disable iptables.service
# 查看filter表的几条链规则(INPUT链可以看出开放了哪些端口):
iptables -L -n
# 清除防火墙所有规则:
iptables -F
iptables -X
iptables -Z
# 给INPUT链添加规则(开放8080端口):
iptables -I INPUT -p tcp --dport 8080 -j ACCEPT
# 查找规则所在行号:
iptables -L INPUT --line-numbers -n
# 根据行号删除过滤规则(关闭8080端口):
iptables -D INPUT 1
firewall
先关闭iptables防火墙
# 查看防火墙状态:
systemctl status firewalld
# 开启防火墙:
systemctl start firewalld
# 关闭防火墙:
systemctl stop firewalld
# 设置开机启动:
systemctl enable firewalld
# 禁用开机启动:
systemctl disable firewalld
# 重启防火墙(每次修改都要重启):
firewall-cmd --reload
# 开放端口(修改后需要重启防火墙方可生效):
firewall-cmd --add-port=80/tcp –permanent
# 关闭端口:
firewall-cmd --remove-port=8080/tcp --permanent
# 查看开放的端口:
firewall-cmd --list-ports
为了测试防火墙,我开启了node服务器3000端口,随便返回了一个123456,然后防火墙开启了3000端口后,在本地访问服务器ip地址:3000端口是没返回123456的,我又把两个放回墙都关了,还是不行,百度了之后才知道阿里有个安全组
安全组
可以看到自带有80,3389,22这都是必须开启的通信端口,因为没有3000端口所以才访问不到,加一下就访问得到了,但是3000端口是没意义的,因为访问域名是80端口,除了80端口,其他需要被访问的外部端口只有数据库
贴一下我的开放端口和安全组
打脸了,下图的3000端口和8080都是不需要打开的,只要反向代理出来就行