CentOS7 Firewall常用命令汇总

firewalld基本使用

# 启动: 
systemctl start firewalld

# 查看状态: 是否运行,下面两个命令都可以
systemctl status firewalld 
firewall-cmd --state

#停止: 
systemctl disable firewalld

#禁用:关闭防火墙,如果要开放的端口太多,嫌麻烦,可以关闭防火墙,安全性自行评估
systemctl stop firewalld

防火墙开放端口

# 开放5003端口, --permanent 永久生效,没有此参数重启后失效
[root@localhost docker]# firewall-cmd --zone=public --add-port=5003/tcp --permanent
success

# 这边没更新防火墙规则,所以命令查看不到
[root@localhost docker]# firewall-cmd --list-ports

# 配置立即生效,更新防火墙规则
[root@localhost docker]# firewall-cmd --reload
success

# 查看防火墙所有开放的端口
[root@localhost docker]# firewall-cmd --zone=public --list-ports
5003/tcp

关闭5003端口

firewall-cmd --zone=public --remove-port=5003/tcp --permanent

防火墙限制IP访问

firewall-cmd --permanent --add-rich-rule="rule family="ipv4" source address="x.x.x.x" port protocol="tcp"  port="80"  reject"

firewall-cmd --reload

firewall-cmd --zone=public --list-rich-rules  |  查看已经设置的规则



移除策略:
firewall-cmd --permanent --remove-rich-rule="rule family="ipv4" source address="x.x.x.x" port protocol="tcp"  port="80"  reject"

也可尝试直接编辑规则文件,删掉原来的设置规则,重新载入一下防火墙即可
vi /etc/firewalld/zones/public.xml