iptables 路由端口

iptables 路由端口

是否可以将特定 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 ---> 客户端(响应)

希望这可以帮助

相关内容