I have a TeamSpeak server that is hosted on a GameServers account under the domain ts4.gameservers.com with a port number of 9102. I have setup a CName that redirects ts.valhallashalls.com to ts4.gameservers.com, but to connect I still have to use the port number within the server.

As the gameserver host is using a non-standard port number for TeamSpeak is it possible to redirect with an SRV record from ts.valhallashalls.com without a port number to connect to my teamspeak server with the port number 9102?

Per default, the TS3 server creates a virtual voice server on port 9987 (UDP). The ServerQuery is listening on port 10011 (TCP) and file transfers will use port 30033 (TCP).

So what I want to do is redirect ts.valhallashalls.com, without a Port Number so when trying to connect a team speak client it will automatically try to connect to port 9987, and have it transparently be redirected to the correct port number.

Can I do this with a SRV Record?


In version 3.0.8 and greater of the TeamSpeak Client on Mac, Linux and Windows, you can now use SRV records to connect to your servers. The format is as follows. Currently, there is no support for SRV records on iOS and Android versions of TeamSpeak.

Format for a SRV record for a TS3 server is:

_ts3._udp.name TTL IN SRV priority weight port target

It is also possible to add a SRV record for a TSDNS server for a domain, the format for this is:

_tsdns._tcp.name TTL IN SRV priority weight port target

The priority when resolving is:

  1. _ts3 SRV record
  2. _tsdns SRV record
  3. TSDNS
  4. DNS


Using my server detail as the example above, I can do the following to setup an SRV Record on my valhallashalls.com domain, using ts as it's subdomain to connect to the TeamSpeak server hosted by GameServers.

_ts3._udp.ts 3600 IN SRV 0 100 9102 ts4.gameservers.com

Use Case

We no longer use GameServers as our primary account, as we have a VPS hosted by MediaTemple. For that I setup a selection of servers, one on the VPS, I kept the Game Servers account as a backup, and the last is on my home connection. They are donamed within my domain by their CNAME of ts1, ts2, and ts3 respectively. This allows for a redundant setup.

  1. ts1.valhallashalls.com. CNAME @.
  2. ts2.valhallashalls.com. CNAME ts4.gameservers.com.
  3. ts3.valhallashalls.com. CNAME <my ip address>.

The SRV Records look like this

  1. ts3_.udp.ts 3600 IN SRV 0 100 9987 ts1.valhallashalls.com
  2. ts3_.udp.ts 3600 IN SRV 1 100 9102 ts2.valhallashalls.com
  3. ts3_.udp.ts 3600 IN SRV 2 100 9987 ts3.valhallashalls.com
  • 1
    ts3dns.com. Google for teamspeak TSDNS. It appears to require a special service – Zoredache Sep 8 '11 at 3:36
  • @Zoredache, so if anything it's possible, we just have to figure out the how now. – Mark Tomlin Sep 8 '11 at 3:37
  • @Zoredache For future reference, where should I ask this question? – Mark Tomlin Dec 29 '11 at 7:44
  • 1
    TeamSpeak now supports SRV records as of TeamSpeak Client version 3.0.8. – Mark Tomlin Jul 19 '12 at 4:52
  • Apparently, this is a fairly popular question. So perhaps we could move this over to Super User so that it goes into it's correct area and people can comment / add answers as they see fit on there? – Mark Tomlin Dec 20 '12 at 21:51

SRV records don't "do" anything on their own. Clients have to be developed to use those SRV records in order to figure out how to find or connect to a given service.

Googling around, it appears that teamspeak decided to make up their own "TSDNS" protocol that appears to be a special server you have to run on a specific port so that TS can ask it what port to connect to "for real". It appears that as of May, having the client find the server through a SRV record is still planned.

  • 3
    OMFG - that TSDNS stuff is so broken. They really need to use SRV records properly like real protocols do. – Alnitak Sep 8 '11 at 9:36
  • @Alnitak, could not agree more. – Mark Tomlin Sep 8 '11 at 9:41

If you are using Apache for the webserver you can do a mod rewrite rule to forward requests on ts.v...com to the ts4.game....com server and include port numbers. Is the service http based or is it a program directly cOnnecting?

  • The program is directly connecting, this is why it needs to be handled on the DNS level. (Also, I did not -1 you, I appreciated the answer, even if it did not help.) – Mark Tomlin Sep 8 '11 at 3:35
  • 1
    I don't really care if you did or didn't -1 me, it's part of the fun here. If you're actually running the ts.v...com server, you may want to look into a port tunneler, one of which is available here: steelbytes.com/?mid=18 but it's not free. This is only one option. You could run a SOCKS server for this too. – U4iK_HaZe Sep 8 '11 at 3:42
  • I own the domain name, and I own the team speak instance, but I don't own the servers they are on. As the domain is a redirect to a guild launch address that we just setup. But we are going to have hosting on Godaddy soon. I also do have server admin on the TeamSpeak server, but I don't own the server that the TeamSpeak server is own as it's rented. This would all be a lot easier if we had a dedicated server but we don't have the money for that so I'm just trying to do the best I can with what I have. – Mark Tomlin Sep 8 '11 at 3:49
  • 1
    I understand. You can't request for the port to be switched to default? Becuase then the CNAME would work properly. – U4iK_HaZe Sep 8 '11 at 3:51
  • 1
    Alrighty. Good luck to you. – U4iK_HaZe Sep 8 '11 at 4:04

Not the answer you're looking for? Browse other questions tagged or ask your own question.