在 CentOS 系統中,使用 iptables 命令配置的防火墻規則默認不會自動保存。當系統重啟后,這些規則會丟失。為了在重啟后保留 iptables 規則,你需要使用 service 或 systemctl 命令來管理 iptables 服務。
以下是在 CentOS 7 及更高版本中保存和恢復 iptables 規則的方法:
iptables 規則:sudo iptables-save > /etc/sysconfig/iptables
iptables-restore.service 的 systemd 服務文件:sudo vi /etc/systemd/system/iptables-restore.service
將以下內容粘貼到文件中:
[Unit]
Description=Restore IPTables Firewall Rules
Before=network.target
[Service]
Type=oneshot
ExecStart=/sbin/iptables-restore < /etc/sysconfig/iptables
[Install]
WantedBy=multi-user.target
保存并關閉文件。
sudo systemctl daemon-reload
iptables-restore.service 以便在啟動時自動恢復防火墻規則:sudo systemctl enable iptables-restore.service
現在,當你重啟系統時,iptables 規則將被自動恢復。
如果你使用的是 CentOS 6 或更低版本,可以使用以下命令來保存和恢復 iptables 規則:
iptables 規則:sudo service iptables save
或者
sudo iptables-save > /etc/sysconfig/iptables
/etc/rc.d/rc.local 文件中添加以下行,以便在啟動時恢復防火墻規則:/sbin/iptables-restore < /etc/sysconfig/iptables
確保 /etc/rc.d/rc.local 文件具有可執行權限:
sudo chmod +x /etc/rc.d/rc.local
現在,在重啟系統后,iptables 規則將被自動恢復。