同一服务器内的 SNAT 源 IP

同一服务器内的 SNAT 源 IP

我想要做的是,在使用我的虚拟 IP 作为透明代理连接到 UDP 服务时屏蔽客户端 IP,如下所示:

[客户端] -> [透明代理IP] [DNAT] ->[SNAT]-> [UDP服务]

iptables -t nat -I POSTROUTING -d [透明代理IP] -m udp -p udp --sport [UDP服务端口] -j SNAT --to [UDP服务IP]

如果透明代理和 UDP 服务位于 2 台独立的服务器上,此设置将有效。但是,当我将服务器合并为 1 台服务器时,透明代理和 UDP 服务的 IP 作为虚拟接口连接,SNAT 失败,UDP 服务会看到客户端 IP。

我如何才能模仿相同的效果?我是否查看了错误的流程,而应该在环回链上进行配置(这对我来说似乎不对,因为流量仍然从外部流出)?

答案1

解决方案是使用 NAT 表的 INPUT 链:

iptables -t nat -I INPUT -p udp -m udp -d [UDP service IP] --dport [UDP service port] -j SNAT --to-source [transparent proxy IP]

相关内容