因此,我和一个朋友用 Java 构建了一个自定义游戏服务器。此游戏服务器会监听给定的特定 IP/端口(本地主机或设备的外部 IP 地址,用于端口转发)的 HTTP 和 TCP 消息。然后,您可以获取该 IP/端口组合并在游戏中使用它,并且连接良好。服务器运行良好。问题是,我们想为服务器设置一个域。托管实际游戏服务器的虚拟专用服务器是 Google Cloud 虚拟机。我使用 Cloud DNS 将我的域连接到我的 VM 上的 apache 网络服务器。
我想知道是否有办法通过子域名连接到我的游戏服务器的 IP 和端口...例如gateway.gameserver.com
我尝试使用 SRV 记录并插入我的自定义端口 + IP 地址,但没有响应。
我也尝试过连接到我的域(使用与我的游戏服务器相同的 IP 地址)并在末尾添加一个端口,但没有用。
我没有主意了。
我真的很希望能够通过gateway.gameserver.com
而不是100.100.100.100:5000
或其他方式连接到我的自定义游戏服务器。
答案1
域名通过 A 记录映射到 DNS 中的 IP 地址。A 记录中没有指定端口的位置。端口通常与 DNS 完全分开,并且取决于您使用的特定应用程序。因此,如果您使用的端口不是此类应用程序的标准端口,则必须明确指定端口。
SRV 记录不是通用的,它们供特定应用程序使用,这些应用程序会特别查找此 SRV 记录。如果您的游戏客户端支持 SRV 记录,那么您可以设置一个将由它使用的 SRV 记录,否则 SRV 记录对您毫无用处。
但是,如果您有指向的 A 记录(指定 IP 地址)yourdomain.com
,并且游戏服务器也运行在同一个 IP 地址上,那么您绝对可以yourdomain.com
在游戏客户端中使用特定端口号,并且应该可以正常工作,除非游戏客户端不允许自由端口选择并使用固定端口。在这种情况下,您必须在该端口上运行游戏服务器,并且仅yourdomain.com
在游戏客户端中使用。
如果域名在您的游戏客户端中不起作用,但域名指向的相同 IP 地址可以起作用,则要么您做错了什么,要么游戏客户端根本不支持使用域名。