如何區分iptables的PREROUTING和POSTROUTING鏈

*mangle
#-A PREROUTING -i wlan0 -j TTL --ttl-inc 1
#-A POSTROUTING -o wlan0  -j TTL --ttl-dec 1
COMMIT

上面的兩條命令來自iptables配置文件/etc/sysconfig/iptables的mangle表部分,被我注釋掉了,這兩條命令都是正確的,但是不可以同時開啟,同一時間只能使用一個。

prerouting 後面必須是 -i (進站),如果用ttl的話必須是 increase

postrouting 後面必須是 -o (出站),如果是ttl的話必須是decrease

此外,prerouting 和postrouting 也經常用於NAT配置網關機進行網絡地址轉換使用,這時候有一下規律:

PREROUTING是目的地址轉換(DNAT),要把別人的公網IP換成你們內部的IP,才讓訪問到你們內部受防火牆保護的伺服器。

POSTROUTING是源地址轉換(SNAT),要把你內部網絡上受防火牆保護的ip地址轉換成你本地的公網地址才能讓它們上網。
下面的命令還是來自iptables啟動文件/etc/sysconfig/iptables的nat表部分:

*nat

:PREROUTING ACCEPT [0:0]

:OUTPUT ACCEPT [0:0]

:POSTROUTING ACCEPT [0:0]

#-A PREROUTING -i eth0 -j MASQUERADE

#-A POSTROUTING -o wlan0 -j MASQUERADE

本文內容整理自網絡, 文中所有觀點看法不代表淘大白的立場