我们目前使用 Rackspace Auto Scale 在多台服务器上托管我们的 Web 应用程序。这会导致我们的出站 IP 地址定期更改。同时,我们需要连接到外部 SQL 服务器,该服务器通过防火墙限制一组固定的入站 IP。
我目前有 1 台固定服务器可以访问 SQL 服务器,但 Web 服务器无权访问。
我想通过具有 IP 访问权限的服务器代理来自 Web 层的请求 -(在使用 HAProxy/squid 之前我已经解决了这个问题,但这对 SQL 服务器不起作用,因为它是 TDS)
我在网上看到了几种通过 iptables 执行此操作的不同方法,但没有得到可行的解决方案。
到目前为止我已经尝试过:
echo 1 > /proc/sys/net/ipv4/ip_forward
#try 1
sudo iptables -t nat -A PREROUTING -p tcp --dport 1433 -j DNAT --to-destination <destip>:1433
sudo iptables -t nat -A POSTROUTING -p tcp -d <destip> --dport 1433 -j SNAT --to-source <myip>
sudo iptables -I FORWARD -p tcp -d <myip> --dport 1433 -j ACCEPT
sudo iptables -t nat -A POSTROUTING -o eth2 -j MASQUERADE
#try 2
sudo iptables -t nat -I PREROUTING -p tcp -i eth2 --dport 1433 -j DNAT --to <destip>:1433
sudo iptables -t nat -A POSTROUTING -o eth2 -j MASQUERADE
#try 3
sudo iptables -t nat -A PREROUTING -p tcp -i eth0 -d <myip> --dport 1433 -j DNAT --to <destip>:1433
sudo iptables -A FORWARD -p tcp -i eth0 -d <myip> --dport 1433 -j ACCEPT
理想情况下,我希望将内部 NIC(eth2)端口 1433 上的所有流量发送到外部 IP(必须通过 eth0)到目标 IP,即端口 1433。