启动防火墙 systemctl start firewalld
重启防火墙 systemctl restart firewalld
设置开机启动 systemctl enable firewalld
重载防火墙配置(不会中断当前连接) firewall-cmd --reload
完全重载防火墙(会中断当前已建立的连接状态) firewall-cmd --complete-reload
将所有临时添加的规则(不带 --permanent 参数)永久保存 firewall-cmd --runtime-to-permanent
将当前添加的规则永久保存(除了特定命令,没加这个参数的规则都是临时生效,一重启防火墙临时规则都会消失) --permanent
拒绝所有包 firewall-cmd --panic-on
取消拒绝状态 firewall-cmd --panic-off
查看是否拒绝 firewall-cmd --query-panic
查看防火墙状态 firewall-cmd --state
查看防火墙服务状态 systemctl status firewalld
查看防火墙服务状态详情 systemctl status firewalld -l
把 eth0
网络接口加入到防火墙 firewall-cmd --add-interface=eth0 --permanent
改变 eth0
网络接口到指定区域 firewall-cmd --zone=<zone> --change-interface=<interface> --permanent
设置 public 为默认区域 firewall-cmd --set-default-zone=public
查看所有区域 firewall-cmd --get-zones
查看默认区域 firewall-cmd --get-default-zone
默认区域是没有指定区域时,所有接口默认应用的区域,当省略 --zone=
查看已激活区域 firewall-cmd --get-active-zones
显示当前所有活动区域及其对应的网络接口
这2个不用迷糊,在简单配置的场景中,已激活区域一般等同于默认区域,因为都是同一个 zones
显示防火墙内的所有区域 firewall-cmd --get-zones
查看默认区域的端口规则 firewall-cmd --list-port
查看指定区域的端口规则 firewall-cmd --zone=public --list-port
查看所有区域防火墙配置规则 firewall-cmd --list-all-zones
查看防火墙预定义的所有服务 firewall-cmd --get-services
查看某个预定义的服务详情 firewall-cmd --info-service=<service-name>
放行 public
区域的单个tcp协议上指定的端口,移除把add改为 remove
即可
firewall-cmd --permanent --zone=public --add-port=3306/tcp
批量放行 tcp
协议上的端口范围:
firewall-cmd --permanent --zone=public --add-port=1-65535/tcp
备注:不支持单次直接放行多个不连续端口,80,443,22,25
这种写法是不允许的,得多次操作
常用操作
禁止被 ping
firewall-cmd --add-icmp-block=echo-request --permanent