好吧,有点复杂,但这就是我需要的:
我在 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