Iptables

為什麼 Iptables 持久服務不保存我的更改?

  • July 15, 2021

我按照教程在 ubuntu 12.04 上設置 IP 規則。設置時一切正常——但現在我對防火牆進行了更改,這些更改在重新啟動後不會持續存在。我不明白為什麼會這樣。這是我如何使用 iptables-persistent 的展示。我究竟做錯了什麼?

$ sudo service iptables-persistent start
* Loading iptables rules...                                                                                             *  IPv4...                                                                                                              *  IPv6...   

$ sudo iptables -L   //shows a certain rule
$ iptables -D INPUT ... //command successfully drops the rule
$ sudo iptables -L   //shows rule has been deleted

$ sudo service iptables-persistent restart
* Loading iptables rules...                                                                                             *  IPv4...                                                                                                              *  IPv6...                                                                                                      [ OK ] 
$ sudo iptables -L  //rule is back

iptables-persistent不能那樣工作。重新啟動iptables-persistent“服務”不會擷取 iptables 的目前狀態並保存它;它所做的只是恢復上次配置軟體包時保存的 iptables 規則。

要配置iptables-persistent,您需要告訴它您目前的 iptables 規則集。

一種實現方法如下:

iptables-save >/etc/iptables/rules.v4
ip6tables-save >/etc/iptables/rules.v6

或者,等效地,該iptables-persistent軟體包還提供以下內容:

dpkg-reconfigure iptables-persistent

(您需要對是否保存規則的問題回答“是”。)

之後,下次iptables-persistent啟動/重新啟動時,您期望的 iptables 規則集將被載入。

引用自:https://unix.stackexchange.com/questions/125833