在到达网关服务之前触发 iptables 伪装?

在到达网关服务之前触发 iptables 伪装?

我在 LAN 网关所在的同一台机器上运行 STUN 服务,我希望 STUN 服务的结果对于内部和外部机器都相同。目前,由于伪装是在后路由规则中完成的,因此当数据包离开网关时,STUN 服务器只会看到 LAN IP/端口,而不是经过网络地址转换的 IP/端口。

eth1(局域网):10.0.0.1/32
eth0(广域网):1.2.3.4/31
iptables -A POSTROUTING -t nat -o eth0 -j MASQUERADE
iptables -A 输入 -p udp -d 1.2.3.4/31 --dport 3701 -j 接受

当 IP 为 10.0.0.2 的 LAN 机器联系 1.2.3.4 的 STUN 服务时,数据包可以传输,但 STUN 服务会发现数据包是从 10.0.0.2 发送的。

如何才能使 NAT 转换在数据包到达 STUN 服务之前发生,并且 STUN 服务的响应不是来自 10.0.0.1,而是来自联系服务时使用的 1.2.3.4?

答案1

看着那(这图像。数据包在需要路由时会由 MASQUERADE 进行转换。但您的目标主机与路由器是同一台主机。因此数据包不会通过 nat-POSTROUTING 链,也不会被转换。它们将通过过滤表

相关内容