TLDR:如何使用带有端口转发的 Oracle 云服务器来避免需要在家庭互联网上进行端口转发?
我想在我家网络上的设备上设置游戏服务器(Minecraft、Project Zomboid 等),但由于它是学校 WiFi,所以无法进行端口转发。
有没有办法使用 Oracle 云服务器作为中间点,并转发其端口,以允许正确建立连接?
我的想法是在设备上使用类似 Radmin VPN/Hamachi 的东西,并使用 Oracle 服务让它们正确通信和发送流量。如果我应该寻找一个术语,我就可以找到它,我只是需要一个如何做到这一点的起点。
如果这意味着即使设备移动到不同的网络,所有服务器都会有一个静态端口,那就太酷了。
在两个系统之间设置任何类型的 IP 隧道或 VPN。最好不要使用“桌面”VPN,而要使用旨在作为长期服务运行的东西,例如典型的选择是 Wireguard 或 OpenVPN 或可能是 ZeroTier。
不存在“端口转发”到云 VM 之类的事情,因为服务器本身已经有一个专用的公共地址。(是的,Oracle Cloud 服务器在技术上落后于 NAT,但它是 1:1 NAT,因此仍然没有手动“端口转发”步骤。)
您确实需要通过 VPN 设置从云 VM 到您的游戏服务器的“端口转发”——这通常通过 iptables 或 nftables“DNAT”规则完成。
您还需要确保您的游戏服务器通过 VPN 而不是直接回复客户端(IP 路由并非自动对称 - 连接通过接口 A 进入,并不意味着回复数据包将以相同的方式发送出去)。根据游戏服务器运行的操作系统,选项包括:
ip rule
(设置起来更复杂,但可以让游戏服务器看到原始客户端 IP 地址),或者,(针对其中任何一个已经有大量线程,例如搜索“ip 规则”,您可能会找到 10 多个。)
或者:Oracle 提供了功能较弱的 x64 服务器,但提供了功能相当强大的 ARM64 服务器,因此如果您获得基于 Ampere 的 VM,则至少可以在云 VM 本身上运行 Minecraft 服务器。(可能还有 Zomboid 服务器?它看起来是基于 Java 的,因此它应该自动与 AArch64 兼容。)