Mar*_*lin 4 domain-name-system cname-record
我有一个 TeamSpeak 服务器托管在域 ts4.gameservers.com 下的GameServers帐户上,端口号为 9102。我设置了一个 CName,将 ts.valhallashalls.com 重定向到 ts4.gameservers.com,但要连接我仍然必须使用服务器内的端口号。
由于游戏服务器主机使用 TeamSpeak 的非标准端口号,是否可以使用来自 ts.valhallashalls.com 的 SRV 记录重定向而无需端口号以连接到端口号为 9102 的 TeamSpeak 服务器?
默认情况下,TS3 服务器在端口 9987 (UDP) 上创建虚拟语音服务器。ServerQuery 正在侦听端口 10011 (TCP),文件传输将使用端口 30033 (TCP)。
所以我想要做的是在没有端口号的情况下重定向 ts.valhallashalls.com,因此当尝试连接团队发言客户端时,它会自动尝试连接到端口 9987,并透明地将其重定向到正确的端口号。
我可以用 SRV 记录做到这一点吗?
在 Mac、Linux 和 Windows 上的 TeamSpeak Client 3.0.8 及更高版本中,您现在可以使用 SRV 记录连接到您的服务器。格式如下。目前,TeamSpeak 的 iOS 和 Android 版本不支持 SRV 记录。
TS3 服务器的 SRV 记录格式为:
_ts3._udp.name TTL IN SRV priority weight port target
也可以为域的 TSDNS 服务器添加 SRV 记录,格式为:
_tsdns._tcp.name TTL IN SRV priority weight port target
解决时的优先级是:
使用我的服务器详细信息作为上面的示例,我可以执行以下操作在我的 valhallashalls.com 域上设置 SRV 记录,使用 ts 作为它的子域来连接到由 GameServers 托管的 TeamSpeak 服务器。
_ts3._udp.ts 3600 IN SRV 0 100 9102 ts4.gameservers.com
我们不再使用 GameServers 作为我们的主要帐户,因为我们有一个由 MediaTemple 托管的 VPS。为此,我设置了一系列服务器,一个在 VPS 上,我保留了 Game Servers 帐户作为备份,最后一个在我的家庭连接上。它们在我的域中分别由 ts1、ts2 和 ts3 的 CNAME 命名。这允许冗余设置。
ts1.valhallashalls.com. CNAME @.
ts2.valhallashalls.com. CNAME ts4.gameservers.com.
ts3.valhallashalls.com. CNAME <my ip address>.
SRV 记录看起来像这样
ts3_.udp.ts 3600 IN SRV 0 100 9987 ts1.valhallashalls.com
ts3_.udp.ts 3600 IN SRV 1 100 9102 ts2.valhallashalls.com
ts3_.udp.ts 3600 IN SRV 2 100 9987 ts3.valhallashalls.com
SRV 记录不会自己“做”任何事情。必须开发客户端以使用这些 SRV 记录,以便弄清楚如何查找或连接到给定的服务。
谷歌搜索,似乎teamspeak决定组成他们自己的“TSDNS”协议,该协议似乎是一个特殊的服务器,您必须在特定端口上运行,以便TS可以询问它“真正”连接到哪个端口。从 5 月开始,似乎仍在计划让客户端通过 SRV 记录找到服务器。