關於PREROUTING鏈和POSTROUTING鏈

PREROUTING 和 POSTROUTING 的簡單關係

源地址發送數據--> {PREROUTING-->路由規則-->POSTROUTING} -->目的地址接收到數據
當你使用:iptables -t nat -A PREROUTING -i eth1 -d 1.2.3.4 -j DNAT --to 192.168.1.40
時,你訪問1.2.3.4,linux路由器會在“路由規則”之前將目的地址改爲192.168.1.40,並且Linux路由器(iptables)會同時記錄下這個連接,並在數據從192.168.1.40返回時,經過linux路由器將數據發送到那臺發出請求的機器。所以你的"POSTROUTING"規則沒有起作用。
而"POSTROUTING"是“路由規則”之後的動作。


PREROUTING的應用,
一般情況下,PREROUTING應用在普通的NAT中(也就是SNAT),如:你用ADSL上網,這樣你的網絡中只有一個公網IP地址(如:61.129.66.5),但你的局域網中的用戶還要上網(局域網IP地址爲:192.168.1.0/24),這時你可以使用PREROUTING(SNAT)來將局域網中用戶的IP地址轉換成61.129.66.5,使他們也可以上網:
iptables -t nat -A PREROUTING -s 192.168.1.0/24 -j SNAT 61.129.66.5



POSTROUTING的應用,
POSTROUTING用於將你的服務器放在防火牆之後,作爲保護服務器使用,例如:
A.你的服務器IP地址爲:192.168.1.2;
B.你的防火牆(Linux & iptables)地址爲192.168.1.1和202.96.129.5

Internet上的用戶可以正常的訪問202.96.129.5,但他們無法訪問192.168.1.2,這時在Linux防火牆裏可以做這樣的設置:
iptables -t nat -A POSTROUTING -d 202.96.129.5 -j DNAT 192.168.1.2

結:最要緊的是我們要記住PREROUTING是“路由規則”之前的動作,POSTROUTING是“路由規則”之後的動作!

發佈了42 篇原創文章 · 獲贊 9 · 訪問量 16萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章