我一直在寻找这个问题的答案并创建了一些 IPtable 规则,但还没有找到我所追求的确切内容。
我托管了一项客户端连接到的服务,但由于一个客户的复杂情况,我需要他们从同一个公共 IP 地址连接两次,这给我们带来了问题。所以我需要它们来自不同的公共 IP 地址。通常,它看起来像这样(细节已更改);
50.10.10.1 的客户端通过 TCP 1234 连接到我们的服务器 60.60.10.1
为了允许客户端连接两次,我想我可以启动一个它们连接的 EC2 实例,这会将源 IP 地址替换为实例的 IP 地址;所以看起来他们来自其他地方。它看起来像这样;
位于 50.10.10.1 的客户端通过 TCP 1234 连接到位于 30.20.10.1 的实例。然后,该实例将源 IP 地址替换为 30.20.10.1,然后将数据包转发到 60.60.10.1 TCP 1234
我可以找到使用内部代理服务器(例如鱿鱼或防火墙规则)来执行此操作的方法,但我不知道如何使用 IPTables 位于互联网上的 EC2 实例来执行此操作。有人有什么建议吗?我找到了这条规则的建议,但它不起作用;
iptables -t nat -A PREROUTING -i eth0 -p tcp -d 30.20.10.1 --dport 1234 -s 50.10.10.1 -j DNAT --to-destination 60.60.10.1:1234