iptables 规则明明生效了,service iptables save 却保存不了?
在 Linux 服务器上配防火墙,常见的翻车就是:规则敲进去当场生效,机器一重启全没了;想保存,执行 service iptables save 还报错。先把结论说透:「规则生效」和「规则存活」是两回事——iptables 的规则先活在内存里,重启后系统只从磁盘上的配置文件回读。保存报错,多半是管理包没装齐,或者这台机器上跑的其实是 firewalld。
先弄清两条防火墙栈
主流发行版有两套防火墙栈:老牌的 iptables 和新一代的 firewalld。两者都在管同一张内核过滤表,同时启用会互相干扰。CentOS 7 起系统默认跑 firewalld——在这类机器上直接堆 iptables 规则,出现"存不上、重启丢"是必然结果。用哪条栈,先想清楚,别混着来。
正确的保存步骤
- 确认当前跑的是哪条栈。看防火墙服务状态:firewalld 在跑而你想用 iptables,先停用一边,二选一。
- 用 iptables 就装齐管理包。安装 iptables 的服务管理组件(iptables-services),装完
service iptables save才能把内存规则写进/etc/sysconfig/iptables。 - 手动落盘兜底。不想动服务组件的,用重定向把规则导出:
iptables-save > /etc/sysconfig/iptables,效果等价。 - 重启验证回读。重启后用
iptables -L核对规则还在,确认开机加载链路正常,这一步做完才算闭环。 - 变更流程定型。以后每次改规则遵循"改完立刻保存、变更留记录",避免再攒一机器的口头规则。
相关提示
- 规则丢过一次的机器,先核对当前生效规则和磁盘配置的差异,补齐再保存,别只存半套。
- 远程操作防火墙前,给自己留一条能进来的后路规则,防止把自己锁在门外。
- 防火墙策略和系统补丁是一套账,规则理顺后顺手核对内核版本。
- 规则台账化之后,日常交接和审计都有据可查。
防火墙规则"重启即丢"这类问题,出一次就可能是一次业务中断。贵州诚鑫致达在做服务器加固时,会把防火墙栈选型、规则落盘和变更记录一并纳入基线文档。
企业存储选型参考|贵州诚鑫致达
群晖在售企业级机型速览:SA 系列可扩充企业存储(盘位随业务增长)。从选型到部署交付,搜「诚鑫致达」找到我们。