2012-02-17 127 views
37

我試圖將http流量重定向到同一臺機器上的端口8080,並使iptables規則在下面的工作。如何永久更新iptables

iptables -t nat -A PREROUTING -p tcp --dport 80 -j REDIRECT --to-ports 8080 
iptables -t nat -A OUTPUT -p tcp --dport 80 -j REDIRECT --to-ports 8080 

我想弄清楚如何使這個變化永久重新啓動系統。

我使用的是Ubuntu 11.10服務器。

+0

http://askubuntu.com/questions/66890/how-can-i -make-a-specific-set-iptables-rules-permanent – azerafati 2016-07-13 07:00:14

回答

18

一種方法是:

vim /etc/network/interfaces 

追加下面符合您的LO指令一起:

現在運行下面的命令

iptables-save > /etc/iptables-up.rules 

我希望這可以幫助。

+10

發現此問題的人應該考慮下面yomimono提供的關於'iptables-persistent'的更好的答案。 – zakx 2014-05-27 13:21:11

+1

切勿以這種方式使用它,至少會讓窗口打開一會兒,錯誤的連接可以被視爲「ESTABLISHED」。接口應該是'lo'(環回)而不是'eth0'和'pre-up'而不是'post-up'。 – poige 2014-09-06 10:56:54

+0

即使在root模式下,當我嘗試寫入'/ etc'時,我得到的權限也被拒絕 – puk 2015-07-17 08:00:37

2

將它們添加到/etc/ufw/before.rules。語法有點不同,但你會看到它的工作原理。

UFW是Ubuntu防火牆的前端iptables。您可能需要使用sudo ufw enable來啓用UFW,但是您不能在ufw中設置任何規則。要做到這一點

6

我們不能做同樣的事情,但rc.local中執行以下步驟

iptables-save > current_iptables_rules 

然後進入/etc/rc.local中,並輸入以下

iptables-restore < current_iptables_rules 

榮獲」完成同樣的事情?我可能會錯過一些東西。

+0

是的,這也應該可以。 – 2018-02-03 14:24:40

132

Ubuntu(和Debian)提供了iptables-persistent(Debian:http://packages.debian.org/wheezy/iptables-persistent,Ubuntu:http://packages.ubuntu.com/saucy/iptables-persistent),它完全符合你的需求。作爲root用戶,或者通過sudo:

apt-get install iptables-persistent 
iptables-save > /etc/iptables/rules.v4 

如果你使用ip6tables工作,你要還ip6tables-save > /etc/iptables/rules.v6

在進行任何更改後,您必須再次保存表格(iptables-save > /etc/iptables/rules.v4,ip6tables-save > /etc/iptables/rules.v6)。

在舊版本(以前的iptables-0.5,而之前的Debian喘息),就需要寫入到不同的文件:

iptables-save > /etc/iptables/rules 
+12

萬一它可以幫助其他人...我花了一段時間才找到我真的需要這樣做:iptables-save> /etc/iptables/rules.v4 – mdahlman 2013-07-01 04:58:39

+9

如果你也使用IPv6,它可以是確保規則到達正確位置是一種痛苦。您可以運行以下命令來自動執行:'invoke-rc.d iptables-persistent save' – 2013-08-25 16:44:36

+1

@mdahlman取決於Debian/Ubuntu版本。我相信Debian <7需要'>/etc/iptables/rules'和7+需要'>/etc/iptables/rules.v4' – 2013-11-25 12:35:00