防火墙和安全组

服务器有两种防火墙

  • 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都是不需要打开的,只要反向代理出来就行

防火墙和安全组

防火墙和安全组