Minecraft 服务器 - 1 个外部 IP,2 个服务器,2 个端口 - 避免在游戏中指定端口 - SRV 记录

Minecraft 服务器 - 1 个外部 IP,2 个服务器,2 个端口 - 避免在游戏中指定端口 - SRV 记录

我有两个 minecraft 服务器,位于子域上。www.server1.example.com 和 www.server2.example.com。server1 是端口 25565,server2 是端口 25566。

当用户想要连接到 minecraft 中的非默认端口时,他们必须指定 www.server2.example.com:25566 才能连接到服务器。在默认端口上,不需要这样做,他们只需通过 www.server1.example.com 进行连接即可。

我怎样才能在事物的背面传递他们所连接的端口,以便连接到非标准端口的用户只需输入子域?

我想我可能需要像 SRV 这样的东西http://en.wikipedia.org/wiki/SRV_record) 有人有这方面的经验吗?

与通过 SRV 实现此功能的人讨论的主题:http://www.minecraftforum.net/topic/1434125-srv-dns-records-server/- 这位名叫 surviveminecraft 的人和我处于同样的境地,并且已经成功了。

-更新/解决方案-

这就是我的工作方式,希望它能够帮助处于我这个位置的其他人。

我为在非标准端口上运行的辅助服务器创建了一个子域 sub.example.com。(25566)

在我提供的 DNS 管理器中,在我的 SRV 设置下,我在提供的框中应用了它:

_minecraft._tcp.sub priority:0 weight:5 port:25566 target:<ip address here>

“_minecraft” 只是一个符号名称,“sub” 是您的子域名,例如,如果您的子域名是 dev.example.com,则它可能是“_tcp.dev”。一旦子域名和 SRV 链接起来,它应该就可以工作,只要您输入并转发了正确的端口。

更多信息请见我的博客这里

答案1

看起来 Minecraft 客户端SRV在连接时会获取一条记录并使用其中的信息?有趣。

基本上,您需要A在 DNS 中设置一条指向您服务器的记录。您可能已经有两个这样的记录了。

然后是两个CNAME记录,分别命名您的第一个和第二个实例。 需要CNAME指向上述A记录中的名称。 我相信您的 CNAME 需要以与相应服务器相同的域结尾。

然后是两条SRV记录,按照这种格式:

_minecraft._tcp.cname.domain.tdl. outside_port IN SRV 10 5 internal_port a_record.domain.tdl.

您可以cname用您选择的 CNAME 替换上述内容,并相应地替换上述文本中的端口。

所有这些都需要在提供商的 DNS 服务器上完成,或者通过他们可能提供的配置实用程序完成。我之前从未SRV在可公开访问的 DNS 上配置过记录,但在阅读您提供的论坛帖子后,我明白了这一点。

答案2

端口独立于 DNS。DNS 无法实现这一点,您需要获取第二个 IP 地址,以避免在 Minecraft 中指定端口

答案3

如果你正在寻找一种不使用 SRV 记录的方法,你可以使用第三方软件“Minecraft 重定向代理”https://github.com/RenegadeEagle/minecraft-redirect-proxy

发送到 Minecraft 服务器的第一个数据包包含请求的主机名。此应用程序将检查该数据包,并根据请求的主机名将所有流量重定向到用户配置的 Minecraft 服务器。

(请参阅此答案以供参考和示例:https://superuser.com/a/1695521/1652996

相关内容