我正在和一些朋友一起启动一个 Minecraft 服务器。两个 Minecraft 实例将分别在端口 25566 和 25565 上的 Dell Web 服务器上运行(一个始终运行,另一个大部分时间处于离线状态)。此外,我们将在另一个端口上运行 Discourse 实例。
我已注册域名 mchorizons.gq,我将使用它来创建一个网站(它运行正常,托管在 GitHub 上)。我的目标是像这样安排子域名:
- www.mchorizons.ga: 网站
- play.mchorizons.ga: 24/7服务器
- private.mchorizons.ga: 临时服务器
- forums.mchorizons.ga:讨论
Cloudflare 似乎不支持强制将端口连接到子域。我的另一个想法是使用托管在某处的名称服务器,将每个传入请求路由到其各自的端口。我在另一篇文章中看到强力DNS可以用来托管名称服务器,但没有说明如何使用它。托管一个管理一个 IP 端口的名称服务器是否可行?
注:我确实检查过了这帖子说我可以使用 SRV 记录。我尝试按照说明操作,但无济于事。
答案1
他们总是可以在 URL 中指定端口号,如下所示:
play.mchorizons.ga:25565
或者
play.mchorizons.ga:25566
最终由玩家决定要连接到哪个服务器,那么如果他们必须输入不同的端口或不同的域,会有什么区别呢?
Minecraft 服务器默认使用端口 25565,Minecraft 客户端也是如此。如果他们仅指定,play.mchorizons.ga
则他们将连接到监听 25565 的服务器。我建议您将其设为公共服务器,因为它将全天候运行。
您无法在 DNS 上让两个子域指向相同的 IP 但指向不同的端口。DNS 仅通过域到 IP 的转换帮助计算机相互查找。端口号不是域名的一部分,因此不能在域 -> IP 查找中考虑它。
如果您想以这种方式设置服务器,您实际上需要两个服务器系统或单个服务器上的两个互联网连接(IP)。然后在每个路由器/接口上使用端口转发将连接从该 IP 路由到特定端口号。
答案2
编辑:我想我误解了你的问题,所以这个答案是不正确的(见评论)。
DNS 仅处理从域名到 IP 地址的解析,不处理其他任何事情。如果您的服务器有公共 IP,则无需进行任何配置(除了设置关联 IP 的 A 记录或 AAAA 记录,但无需设置端口)。
如果服务器位于 NAT 后面,标准方法是在提供 NAT 的路由器上设置转发端口。(注意:使用相同的 IP 和端口多个域名是另一回事)