我有一台专用机器,上面运行着 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 文章中。
对于电子邮件,请设置中继主机。对于其他服务,您需要找到合适的代理。