Iptables NAT 和 Masquerade 规则 - 它们的作用是什么?

Iptables NAT and Masquerade rules - what do they do?

我已经按照 tutorial(德语)在 Raspberry Pi 上设置 WiFi 路由器(接入点)。按照教程,我必须添加以下 iptable 规则:

iptables -A FORWARD -o eth0 -i wlan0 -m conntrack --ctstate NEW -j ACCEPT
iptables -A FORWARD -m conntrack --ctstate ESTABLISHED,RELATED -j ACCEPT
iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE

很遗憾,我对 iptables 没有任何经验,想知道规则是什么 mean/do?

我过一遍规则,一一解释:为了理解流程,参考iptables chart

iptables -A FORWARD -o eth0 -i wlan0 -m conntrack --ctstate NEW -j ACCEPT

FORWARD 链中,您附加了一条规则:如果有任何数据包新出现,从 wlan0eth0,过滤器将允许它通过,并跟踪该连接作为 NEW(这意味着:跟随它的状态变化)。

iptables -A FORWARD -m conntrack --ctstate ESTABLISHED,RELATED -j ACCEPT

对于任何到达的数据包,跟踪为 ESTABLISHEDRELATED,过滤器让它通过

iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE

对于 NAT table(包含 FORWARD 链),在 POSROUTING 链中,任何离开 eth0 的数据包都会忘记其内部 IP地址(因此,留在 NAT 后面),并获得 eth0 之一:MASQUERADE 代表屏蔽地址。