Networking

重啟後iptables空白

  • April 1, 2013

我們已經開始在我們的 RHEL 6.3 系統上遇到 iptables 的問題,即在重新啟動後,當服務啟動時,沒有載入規則。我們得到空規則集:

[msnyder@matt-test ~]$ sudo iptables -L
Chain INPUT (policy ACCEPT)
target     prot opt source               destination         

Chain FORWARD (policy ACCEPT)
target     prot opt source               destination         

Chain OUTPUT (policy ACCEPT)
target     prot opt source               destination 

儘管我們已經定義了規則並且服務確實在執行,但這仍然存在。我知道,因為當我執行它時,service iptables start它只是回到提示符。如果我執行service iptables restart它實際上會停止然後重新啟動服務。而且,當然,如果我執行service iptables stop它表明 iptables 實際上正在停止。

知道我需要重新啟動服務,我這樣做並且規則正確載入。它們根本不會在重新啟動後載入。除非它們在重新啟動期間以不同方式載入,否則我看不出我們的規則會有什麼錯誤。如果是,它們甚至不會在服務重啟期間載入。

有沒有其他人遇到過這個?

編輯:規則已經保存在 /etc/sysconfig/iptables 中。它們不是從命令行即時添加的,因此service iptables save沒有必要。

首先 iptables 應該在啟動時啟用 chkconfig on 但我想這已經是這種情況了,因為你得到一個空表。

iptables 在引導期間未載入的原因可能是,您的配置中有使用主機名的規則,如果是這樣,請用 IP 替換它們並重試。如果您在 iptables 配置中絕對需要主機名,請務必先從您的主機啟用(並送出)DNS 查詢,但我不確定這是否適用於任何情況。

我相信您需要執行“服務 iptables save”,如上所述,以便在重新啟動後執行規則。但我也會檢查以下參數:/etc/sysconfig/iptables-config,以確保它正在保存執行配置,因此您不會失去在執行時插入的任何內容。

IPTABLES_SAVE_ON_STOP="no"
IPTABLES_SAVE_ON_RESTART="no"

引用自:https://serverfault.com/questions/458873