具有动态 WAN IP 的 Hairpin NAT

具有动态 WAN IP 的 Hairpin NAT

我有一个动态 WAN IP,因此如果它改变,我的 iptables 将不再适用。

这是我的工作发夹 nat,其中 xxxx 是我的 WAN IP

br0 - LAN

eth1 - WAN

-A PREROUTING -d x.x.x.x -p tcp --dport 80 -j DNAT --to-destination 192.168.0.9
-A POSTROUTING -s 192.168.0.0/27 -d 192.168.0.0/27 -o br0 -j MASQUERADE
-A POSTROUTING -s 192.168.0.0/27 -o eth1 -j MASQUERADE

-d x.x.x.x有没有其他方法,以防我的 WAN IP 发生变化,我不需要专门使用?

答案1

将第一条规则重写为:

iptables -t nat -A PREROUTING -m addrtype --dst-type LOCAL -p tcp --dport 80 -j DNAT --to-destination 192.168.0.9

请注意,这也会将连接重定向到 LAN IP 上的端口 80。

如果您想避免这种情况,请使用 LAN IPa.b.c.d将规则更改为:

iptables -t nat -A PREROUTING \! -d a.b.c.d -m addrtype --dst-type LOCAL -p tcp --dport 80 -j DNAT --to-destination 192.168.0.9

答案2

在 DNAT 规则中,不要-d x.x.x.x使用 ,而要使用-i eth1 -m addrtype --dst-type LOCAL

答案3

-A PREROUTING -d $(ifconfig eth1 | grep 'inet addr:' | cut -d: -f2 | awk '{ print $1}') -p tcp --dport 80 -j DNAT --to-destination 192.168.0.9

或类似的东西...

相关内容