将数据包重定向到其他接口上的服务器

将数据包重定向到其他接口上的服务器

好吧,有点复杂,但这就是我需要的:

我在 ZeroTier 网络中拥有一台 Minecraft 服务器,IP 为 172.24.229.62,接受端口 25565 上的连接。事实上,它是 ZeroTier 并不特别重要,只需假装它是一个普通 LAN。

在同一网络上,我有一个通用 Azure 服务器,其 LAN (ZeroTier) 端的 IP 为 172.24.229.65。该 LAN 没有连接到互联网,也没有其他设备。通用服务器运行 Ubuntu Server 20.10,并在另一个接口上暴露于互联网,接受端口 25565 上的连接。

我需要这个通用服务器将互联网端端口 25565 上的传入数据包重定向到 LAN 端 Minecraft 服务器的端口 25565,并将数据包发回。

我在SE上找到了这个脚本,并尝试了一下,但没有用。我究竟做错了什么?

#!/bin/sh

echo 1 > /proc/sys/net/ipv4/ip_forward

iptables -F
iptables -t nat -F
iptables -X

iptables -t nat -A PREROUTING -p tcp --dport 25565 -j DNAT --to-destination 172.24.229.62:25565
iptables -t nat -A POSTROUTING -p tcp -d 172.24.229.62 --dport 25565 -j SNAT --to-source 172.24.229.65

答案1

你就快到了,我的朋友。唯一缺少的部分是在 Minecraft 服务器上配置默认网关。在这种情况下,Ubuntu 通用服务器将充当网关。从 Minecraft 服务器执行以下命令:

$ sudo ip route add default via 172.24.229.65

相关内容