| 鏈 | 處理時機 | 典型用途 |
|---|---|---|
| PREROUTING | 路由決定前 | DNAT、Redirect |
| POSTROUTING | 路由決定後 | SNAT、Masquerade |
| OUTPUT | 本機產生封包 | 本機發出的 DNAT |
所有 NAT 規則必須加 -t nat 指定表。
# 新增規則到鏈尾
iptables -t nat -A POSTROUTING ...
# 插入到鏈首 (優先匹配)
iptables -t nat -I PREROUTING ...
# 指定來源/目的
-s 192.168.1.0/24 -d 202.110.123.100
# 指定介面 (PREROUTING 用 -i, POSTROUTING 用 -o)
-i eth1 -o eth0
# 指定協議與埠
-p tcp --dport 80
# 動作
-j SNAT --to-source 1.2.3.4
-j DNAT --to-destination 192.168.1.100
-j MASQUERADE
-j REDIRECT --to-port 3128
modprobe ip_tables
modprobe ip_nat_ftp
iptables -t nat -A POSTROUTING -o ppp0 -j MASQUERADE
假設:
# 綁定公網 IP 到外網介面
ifconfig eth0 add 202.110.123.100 netmask 255.255.255.0
ifconfig eth0 add 202.110.123.200 netmask 255.255.255.0
# DNAT: 公網進來 → 內網伺服器
iptables -t nat -A PREROUTING -i eth0 -d 202.110.123.100 -j DNAT --to 192.168.1.100
iptables -t nat -A PREROUTING -i eth0 -d 202.110.123.200 -j DNAT --to 192.168.1.200
# SNAT: 內網回應 → 偽裝成公網 IP
iptables -t nat -A POSTROUTING -o eth0 -s 192.168.1.100 -j SNAT --to 202.110.123.100
iptables -t nat -A POSTROUTING -o eth0 -s 192.168.1.200 -j SNAT --to 202.110.123.200
iptables -t nat -A PREROUTING -i eth1 -p tcp -s 192.168.1.0/24 --dport 80 -j REDIRECT --to-port 3128
CONFIG_IP_NF_NAT, CONFIG_IP_NF_TARGET_MASQUERADE, CONFIG_IP_NF_TARGET_REDIRECT。modprobe ip_tables; modprobe ip_nat_ftp (iptable_nat 會自動載入)。