转发的数据包不包含其原始 IP 地址

转发的数据包不包含其原始 IP 地址

我有一台专用机器,上面运行着 2 个虚拟机。主机 A(路由器):

eth0 192.0.2.8
eth1 10.0.0.1

我有

Host B(Application Server)
eth0 10.0.0.2

我的 IPTables 配置是:

modprobe iptable_nat
echo 1 > /proc/sys/net/ipv4/ip_forward
iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE
iptables -A FORWARD -i eth1 -j ACCEPT
iptables -A FORWARD -i eth2 -j ACCEPT

我使用的防火墙转发示例是

iptables -t nat -A PREROUTING -p tcp -i eth0 -d 192.0.2.8 --dport 25565 -j DNAT --to 10.0.0.2:25565

在我的所有应用程序日志中,他们都说所有请求都来自我的外部 IP 192.0.2.8

我该怎么做才能使数据包显示原始源地址而不是 192.0.2.8?

答案1

您需要做的是删除 NAT,并改为对您服务的每个端口进行端口转发到代理服务器。

然后,代理服务器将请求发送到请求中指定的域的相应服务器。例如,对于端口 80,请按照说明将 Apache2 设置为反向代理在这篇 IBM 文章中

对于电子邮件,请设置中继主机。对于其他服务,您需要找到合适的代理。

相关内容