如何配置 iptables 将所有流量转发到另一台主机,但让该另一台主机看到客户端的真实 IP?

如何配置 iptables 将所有流量转发到另一台主机,但让该另一台主机看到客户端的真实 IP?

我有一台具有公共 IP 的服务器(服务器 a),还有另一台位于 NAT 后面的服务器(服务器 b)。我希望服务器 a 将所有流量(TCP、UDP、ICMP 等)传递到服务器 b,以便连接到服务器 a 的客户端将透明地转发到服务器 b。我为此使用 iptables,因为这是我最熟悉的方式。到目前为止,我已经使用 DNAT 规则和 MASQUERADE 规则完成了此设置,但明显的问题是服务器 b 上的每个日志都将服务器 a 的 IP 显示为每个客户端的 IP。有什么办法可以解决这个问题吗?我的想法是,如果 NAT 路由器可以在您转发端口时做到这一点,那么在 Linux 上也一定可以做到这一点。

另外,我已经尝试过 DMZing 服务器 b,但由于超出该问题范围的原因,该设置不再起作用,我只需要一个真正的专用公共 IP。

相关内容