# 临时性开启,服务器重启后会恢复为原来的状态
systemctl start firewalld
# 永久性开启(即开机启动),重启服务器后生效
systemctl enable firewalld
# 临时性关闭,服务器重启后会恢复为原来的状态
systemctl stop firewalld
# 永久性关闭,重启服务器后生效
systemctl disable firewalld
systemctl restart firewalld
# 使用 systemctl 命令检查 firewalld 服务状态
systemctl status firewalld
# 使用 firewall-cmd 命令查看 firewalld 的状态
firewall-cmd --state
# 重载防火墙配置,在不影响网络连接的情况下更新防火墙规则
firewall-cmd --reload


firewall-cmd --get-zones
firewall-cmd --get-active-zones
firewall-cmd --zone=public --list-all
# 注:如果指定区域为默认区域,可以省略 --zone 参数
firewall-cmd --list-all
firewall-cmd --get-default-zone
firewall-cmd --set-default-zone=public
firewall-cmd --permanent --new-zone=myzone
firewall-cmd --permanent --delete-zone=myzone
firewall-cmd --zone=public --change-interface=eth0

firewall-cmd --list-ports
# 注:未显式指定所属区域则使用默认区域 public,即上述命令相当于
firewall-cmd --zone=public --list-ports
firewall-cmd --permanent --add-port=3306/tcp
# 开放指定端口范围
firewall-cmd --permanent --add-port=9000-9008/tcp
# 注:未显式指定所属区域则使用默认区域 public,即上述命令相当于
firewall-cmd --zone=public --permanent --add-port=3306/tcp
firewall-cmd --zone=public --permanent --add-port=9000-9008/tcp
firewall-cmd --permanent --remove-port=3306/tcp
# 移除指定端口范围
firewall-cmd --permanent --remove-port=9000-9008/tcp
# 注:未显式指定所属区域则使用默认区域 public,即上述命令相当于
firewall-cmd --zone=public --permanent --remove-port=3306/tcp
firewall-cmd --zone=public --permanent --remove-port=9000-9008/tcp
# yes 表示开启,no 表示未开启
firewall-cmd --query-port=3306/tcp
# 注:未显式指定所属区域则使用默认区域 public,即上述命令相当于
firewall-cmd --zone=public --query-port=3306/tcp

firewall-cmd --list-services
# 注:未显式指定所属区域则使用默认区域 public,即上述命令相当于
firewall-cmd --zone=public --list-services
firewall-cmd --get-services
firewall-cmd --info-service=ssh
firewall-cmd --permanent --add-service=http
# 注:未显式指定所属区域则使用默认区域 public,即上述命令相当于
firewall-cmd --zone=public --permanent --add-service=http
firewall-cmd --permanent --remove-service=http
# 注:未显式指定所属区域则使用默认区域 public,即上述命令相当于
firewall-cmd --zone=public --permanent --remove-service=http

firewall-cmd --list-rich-rules
# 注:未显式指定所属区域则使用默认区域 public,即上述命令相当于
firewall-cmd --zone=public --list-rich-rules
# 添加富规则
# family="ipv4":规则的 IP 协议版本为 IPv4
# source address="192.168.198.200":规则适用于源地址为 192.168.198.200 的流量
# port protocol="tcp" port="3306":规则适用于 TCP 协议的 3306 端口
# accept:允许规则匹配的流量通过
# reject:拒绝规则匹配的流量通过
# 允许来自 192.168.198.200 地址的 IPv4 TCP 3306 端口的流量通过防火墙,即允许 192.168.198.200 访问 3306 端口
firewall-cmd --permanent --add-rich-rule="rule family="ipv4" source address="192.168.198.200" port protocol="tcp" port="3306" accept"
# 拒绝来自 192.168.198.200 地址的 IPv4 TCP 3306 端口的流量通过防火墙,即拒绝 192.168.198.200 访问 3306 端口
firewall-cmd --permanent --add-rich-rule="rule family="ipv4" source address="192.168.198.200" port protocol="tcp" port="3306" reject"
# 注:未显式指定所属区域则使用默认区域 public,即上述命令相当于
firewall-cmd --zone=public --permanent --add-rich-rule="rule family="ipv4" source address="192.168.198.200" port protocol="tcp" port="3306" accept"
firewall-cmd --zone=public --permanent --add-rich-rule="rule family="ipv4" source address="192.168.198.200" port protocol="tcp" port="3306" reject"
firewall-cmd --permanent --remove-rich-rule="rule family="ipv4" source address="192.168.198.200" port protocol="tcp" port="3306" accept"
# 注:未显式指定所属区域则使用默认区域 public,即上述命令相当于
firewall-cmd --zone=public --permanent --remove-rich-rule="rule family="ipv4" source address="192.168.198.200" port protocol="tcp" port="3306" accept"

1)上述任意更改防火墙配置的命令执行之后,均需执行firewall-cmd --reload重载使配置生效;
2)--permanent参数会将修改的防火墙配置永久性保存到防火墙配置文件中;修改防火墙配置时如果没有使用该参数则会在系统重启时丢失修改的配置。