是否可以将特定 IP/端口的连接重定向到外部 IP/端口?
例子:
Server A has the external IP xxx.xxx.xxx.xxx
Server B has the external IP yyy.yyy.yyy.yyy
用户向服务器 A 的端口 25565 发送请求,我想将其重定向到服务器 B 的端口 25565,但连接到服务器 B 的人必须有他们的 IP 地址,而不是服务器 A 的 IP 地址。
这是可行的,但是所有连接的人都有服务器 A 的 IP 地址,而我需要他们有自己的 IP 地址。
iptables -t nat -A PREROUTING -p tcp --dport 25565 -j DNAT --to-destination xxx.xxx.xxx.xxx
iptables -t nat -A POSTROUTING -p tcp -d xxx.xxx.xxx.xxx --dport 25565 -j SNAT --to-source yyy.yyy.yyy.yyy
答案1
使用iptables -t nat -A PREROUTING -p tcp --dport 25565 -j MASQUERADE
第二个命令也不起作用:/
答案2
为了实现这一点,您需要DNAT
在服务器 A 上遵循以下规则:
iptables -t nat -A PREROUTING -p tcp --dport 25565 -j DNAT --to <server B IP>
iptables -t nat -A POSTROUTING -p tcp --sport 25565 -j SNAT --to <server A IP>
在哪里:
<server A IP>
客户端看到的服务器 A 上的 IP 地址是<server B IP>
是监听的主机的 IP 地址tcp/25565
第一条规则建立:客户端--->服务器A--->服务器B(请求)
第二条规则建立:服务器 B ---> 服务器 A ---> 客户端(响应)
希望这可以帮助