firewalld需用--permanent参数写入规则并执行firewall-cmd --reload才能持久化开机加载;iptables需保存规则至配置文件并启用iptables服务;ufw启用后自动持久化。

Linux 系统启动时自动加载自定义防火墙规则,关键在于“持久化”和“开机触发”两个环节。不同防火墙工具实现方式不同,不能混用,否则规则会丢失或冲突。
firewalld:永久规则 + reload 机制
firewalld 默认就支持持久化,但必须用 --permanent 参数写入规则,并在之后执行 firewall-cmd --reload 才真正生效且能开机保留。
- 所有添加/删除操作加
--permanent,例如:firewall-cmd --permanent --add-port=8080/tcp - 修改默认区域、服务、富规则(rich rule)也需带该参数
- 执行
firewall-cmd --reload后,规则才写入/etc/firewalld/zones/下的 XML 文件(如public.xml),下次启动自动读取 - 确保 firewalld 服务已启用开机自启:
systemctl enable firewalld
iptables:保存规则到文件 + 开机加载服务
iptables 规则默认只存在内存中,重启即丢。要开机自动加载,必须把当前规则保存为文件,并配置系统在启动时读取它。
在无 root/sudo 权限的环境(云容器、VPS、隔离主机)中安装并配置 OpenClaw 浏览器工具的 headless Chrome。适用场景:...
- 保存当前规则(以 Debian/Ubuntu 为例):
iptables-save > /etc/iptables/rules.v4 - CentOS/RHEL 通常保存到:
iptables-save > /etc/sysconfig/iptables - 安装并启用 iptables 服务(非 firewalld 共存时):
systemctl enable iptables(部分系统需先安装iptables-services包) - 注意:若 firewalld 正在运行,iptables 服务会被屏蔽,二者不可同时启用
ufw:启用即持久,无需额外保存
ufw 是 iptables 的前端封装,本身设计就是开箱即用的持久化管理。
- 启用 ufw 后,所有
ufw allow、ufw deny规则自动写入配置文件(如/etc/ufw/下的user.rules) - 只需执行:
ufw enable(首次启用会提示确认) - 验证是否开机自启:
systemctl is-enabled ufw应返回enabled - 不建议手动编辑 ufw 配置文件,应始终通过
ufw命令管理
验证是否生效
配置完成后,别跳过验证步骤:
- 重启系统或模拟开机加载:
sudo systemctl daemon-reload && sudo systemctl restart firewalld(firewalld)
或sudo systemctl restart iptables(iptables) - 检查规则是否加载:
firewall-cmd --list-all、iptables -L -n或ufw status verbose - 确认服务已设为开机启动:
systemctl is-enabled firewalld/iptables/ufw










