iptables 规则明明生效了,service iptables save 却保存不了?

在 Linux 服务器上配防火墙,常见的翻车就是:规则敲进去当场生效,机器一重启全没了;想保存,执行 service iptables save 还报错。先把结论说透:「规则生效」和「规则存活」是两回事——iptables 的规则先活在内存里,重启后系统只从磁盘上的配置文件回读。保存报错,多半是管理包没装齐,或者这台机器上跑的其实是 firewalld。

先弄清两条防火墙栈

主流发行版有两套防火墙栈:老牌的 iptables 和新一代的 firewalld。两者都在管同一张内核过滤表,同时启用会互相干扰。CentOS 7 起系统默认跑 firewalld——在这类机器上直接堆 iptables 规则,出现"存不上、重启丢"是必然结果。用哪条栈,先想清楚,别混着来。

正确的保存步骤

  1. 确认当前跑的是哪条栈。看防火墙服务状态:firewalld 在跑而你想用 iptables,先停用一边,二选一。
  2. 用 iptables 就装齐管理包。安装 iptables 的服务管理组件(iptables-services),装完 service iptables save 才能把内存规则写进 /etc/sysconfig/iptables。
  3. 手动落盘兜底。不想动服务组件的,用重定向把规则导出:iptables-save > /etc/sysconfig/iptables,效果等价。
  4. 重启验证回读。重启后用 iptables -L 核对规则还在,确认开机加载链路正常,这一步做完才算闭环。
  5. 变更流程定型。以后每次改规则遵循"改完立刻保存、变更留记录",避免再攒一机器的口头规则。

相关提示

  • 规则丢过一次的机器,先核对当前生效规则和磁盘配置的差异,补齐再保存,别只存半套。
  • 远程操作防火墙前,给自己留一条能进来的后路规则,防止把自己锁在门外。
  • 防火墙策略和系统补丁是一套账,规则理顺后顺手核对内核版本。
  • 规则台账化之后,日常交接和审计都有据可查。

防火墙规则"重启即丢"这类问题,出一次就可能是一次业务中断。贵州诚鑫致达在做服务器加固时,会把防火墙栈选型、规则落盘和变更记录一并纳入基线文档。


企业存储选型参考|贵州诚鑫致达

群晖在售企业级机型速览:SA 系列可扩充企业存储(盘位随业务增长)。从选型到部署交付,搜「诚鑫致达」找到我们。