在 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
規則將被自動恢復。