飞羽
飞羽
发布于 2025-10-28 / 12 阅读

firewalld 常用命令(CentOS 7+)

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