我决定进行一些春季大扫除,并刷新一些底层基础设施。
我正在大修的一个关键组件是网络网关服务器。我更新了测试环境(与生产环境完全相同,但功耗更低),一切运行良好,但当我将其应用到生产系统时,防火墙命令规则在重新启动后不会保留。
我必须在启动时运行以下命令:
# firewall-cmd --remove-interface=eth0 --zone=public
# firewall-cmd --remove-interface=eth1 --zone=public
# firewall-cmd --remove-interface=eth0 --zone=public --permanent
# firewall-cmd --remove-interface=eth1 --zone=public --permanent
# firewall-cmd --add-interface=eth0 --zone=external
# firewall-cmd --add-interface=eth1 --zone=internal
# firewall-cmd --add-interface=eth0 --zone=external --permanent
# firewall-cmd --add-interface=eth1 --zone=internal --permanent
# firewall-cmd --complete-reload
此时恢复正常服务。当我# firewall-cmd --list-all-zones
重启后运行时,两个接口都已离开internal
和external
区域,并已返回到public
区域。
有人可以解释一下为什么这些设置没有持久吗?
答案1
仅当您(也)使用 ...将所做的更改持久化时,所做的更改firewall-cmd
才会持久化--permanent
。
- 永恒的
永久选项--permanent
可用于永久设置选项。这些更改不会立即生效,只有在服务重启/重新加载或系统重启后才会生效。如果没有该--permanent
选项,则更改仅是运行时配置的一部分... 如果您想更改运行时和永久配置,请
使用
有和没有相同的调用选项--permanent
。