1. 服务状态管理
# 启动防火墙
systemctl start firewalld
# 停止防火墙
systemctl stop firewalld
# 重启防火墙
systemctl restart firewalld
# 查看防火墙状态(running 为运行中)
systemctl status firewalld
# 或直接查看是否活跃
firewall-cmd --state
# 设置开机自启
systemctl enable firewalld
# 关闭开机自启
systemctl disable firewalld
2. 规则配置(端口 / 服务)
# 查看当前开放的端口(临时+永久)
firewall-cmd --list-ports
# 查看当前开放的服务(如 ssh、http 等)
firewall-cmd --list-services
# 查看所有规则详情(包括区域)
firewall-cmd --list-all
# 开放指定端口(临时生效,重启后失效)
# 格式:--add-port=端口号/协议(tcp/udp)
firewall-cmd --zone=public --add-port=80/tcp
# 开放指定端口(永久生效,需重新加载)
firewall-cmd --zone=public --add-port=80/tcp --permanent
# 关闭指定端口(临时)
firewall-cmd --zone=public --remove-port=80/tcp
# 关闭指定端口(永久)
firewall-cmd --zone=public --remove-port=80/tcp --permanent
# 开放指定服务(如 http、ssh,永久生效)
firewall-cmd --zone=public --add-service=http --permanent
# 关闭指定服务(永久)
firewall-cmd --zone=public --remove-service=http --permanent
3. 配置生效(永久规则需重载)
firewall-cmd --reload
4. 其他常用操作
# 查看所有支持的服务(可开放的服务列表)
firewall-cmd --get-services
# 查看默认区域
firewall-cmd --get-default-zone
# 设置默认区域(如 public)
firewall-cmd --set-default-zone=public
# 端口转发(如将 80 端口转发到 8080,需允许伪装)
# 1. 允许伪装(永久)
firewall-cmd --zone=public --add-masquerade --permanent
# 2. 添加转发规则(永久:80/tcp → 8080/tcp)
firewall-cmd --zone=public --add-forward-port=port=80:proto=tcp:toport=8080 --permanent
# 3. 重载生效
firewall-cmd --reload