Howto install TeamSpeak 3 server on Ubuntu 10.04 (Lucid)

May 15, 2010

It has been a long time since my last post – I’m sorry for that but I didn’t have the time. Anyway I just installed TeamSpeak 3 on a Ubuntu 10.04 for a friend and want to share that info. Getting TeamSpeak running is mostly not the problem but you don’t want to start it after every boot by hand or run it as root. This Howto shows what I did. I assume that all user actions shown in this howto are performed as root or after executing sudo bash.

First you need to create a user under which the TeamSpeak server should run by executing following command:

adduser --disabled-login teamspeak

Now we need to get the software (64bit in my case)

wget (Take also a look if a new version is out when you install your server)

and extract it

tar xzf teamspeak3-server_linux-amd64-3.0.0-beta22.tar.gz

We move it to a nice place with

mv teamspeak3-server_linux-amd64 /opt/ts3

and give it to the user teamspeak

chown -R teamspeak /opt/ts3

If you take a look into the /opt/ts3 directory you’ll see that there is a already a start/stop script (, we will utilize it. Create a init.d file with pasting the content after executing cat > /etc/init.d/teamspeak :

#! /bin/sh
# Provides:          teamspeak
# Required-Start:    networking
# Required-Stop:
# Default-Start:     2 3 4 5
# Default-Stop:      S 0 1 6
# Short-Description: TeamSpeak Server Daemon
# Description:       Starts/Stops/Restarts the TeamSpeak Server Daemon

set -e

DESC="TeamSpeak Server"

# Gracefully exit if the package has been removed.
test -x $DAEMON || exit 0

cd $DIR
sudo -u teamspeak ./ $1

Now press ENTER and CTRL-D and you’ve inserted the content into the file. Set the permission correctly with

chmod 755 /etc/init.d/teamspeak

and now you can try it out by calling

/etc/init.d/teamspeak start

Take note of the login and token as you will need them later. You can also look for them in the log files in /opt/ts3/logs/. The last thing you need to do now is to make sure the init script is executed at boot time by using following command:

update-rc.d teamspeak defaults

At last if you’ve a firewall running on your system you need to make sure that you open all your ports. To find out which ports are used by teamspeak use following command:

# netstat -lnp | grep ts3
tcp        0      0 *               LISTEN      30232/ts3server_lin
tcp        0      0 *               LISTEN      30232/ts3server_lin
udp        0      0  *                           30232/ts3server_lin

I hope this howto helped someone and write a comment if you found an error or a better way to do something. Now you just need to point your TeamSpeak client to the server and go to the menu entry “permissions | use token” and copy and past the token from above into the edit box. (only insert the chars behind “token=”)


RSS feed for comments on this post. TrackBack URI

  1. I was able to get the server up following your tutorial, but I did run into a few problems.

    First, how do I find out the public ip for the server? I can connect to it locally, but do not have a solution for others to connect to it. (It’s running on a netbook via wireless if it matters)

    Second, I never got the login / token, in the log file it tells me account it limited and or no licences.

    Comment by Ryan — May 31, 2010 #

  2. Here is the log:

    2010-05-31 04:04:05.040210|INFO |ServerLibPriv | | Server Version: 3.0.0-beta22 [Build: 10724], Linux
    2010-05-31 04:04:05.040983|INFO |DatabaseQuery | | dbPlugin name: SQLite3 plugin, (c)TeamSpeak Systems GmbH
    2010-05-31 04:04:05.042166|INFO |DatabaseQuery | | dbPlugin version: 3.6.21
    2010-05-31 04:04:05.042983|INFO |DatabaseQuery | | checking database integrity (may take a while)
    2010-05-31 04:04:05.138629|INFO |SQL | | pruning old database log entries where timestamp is older than 90 days
    2010-05-31 04:04:05.188815|DEVELOP | | | TS3ANetwork::ResolveHostName failed error: -2 (Name or service not known) 2
    2010-05-31 04:04:05.189147|DEVELOP | | | TS3ANetwork::ResolveHostName failed error: -2 (Name or service not known) 2
    2010-05-31 04:04:05.246357|WARNING |Accounting | | Unable to find valid license key, falling back to limited functionality
    2010-05-31 04:04:05.438924|INFO |FileManager | | listening on
    2010-05-31 04:04:05.469425|DEVELOP | | | TS3ANetwork::ResolveHostName failed error: -2 (Name or service not known) 2
    2010-05-31 04:04:05.469605|ERROR | | | resolving ” to binary ip failed, using instead
    2010-05-31 04:04:05.582918|INFO |VirtualServer | 1| listening on
    2010-05-31 04:04:05.585049|INFO |CIDRManager | | updated query_ip_whitelist ips:,
    2010-05-31 04:04:05.587488|INFO |Query | | listening on

    You have any clues, please help out, thanks!

    Comment by Ryan — May 31, 2010 #

  3. 1. Open a browser on the netbook and go to following url: But if you’ve a NAT router between it and the Internet you need to forward the ports.

    netstat -lnp | grep ts3 tells you whichs ports you need to forward on your NAT router.

    2. Look at the oldest file in /opt/ts3/logs/ it should be in there.

    3. About the license take a look at :

    Comment by robert — May 31, 2010 #

  4. hi, i followed your how-to precisely.
    but the server won’t startup automaticly on startup.

    executing /etc/init.d/teamspeak start
    works fine and start/stop links are created in rc0.d – rc6.d

    can’t find any error-message in dmesg

    got any idea where i make a misstake?

    Comment by Sascha — June 7, 2010 #

  5. Why should there be any entry in dmesg? Dmesg is only for kernel messages. /var/log/syslog is normally used for programs but teamspeak uses its own logging files in /opt/ts3/logs/

    Comment by robert — June 8, 2010 #

  6. hello again,

    i deleted old logs, rebooted and ‘less /opt/ts3/log/…’ looks like everything is fine. trying to connect to the server works at last. i have no idea what deleting old logs has to do with starting up the service, but i don’t care any longer :)

    tnx for your advice and ,of cause, for this tutorial!

    Comment by Sascha — June 9, 2010 #

  7. I never really leave comments, but I had to leave a thank you, in this case. Tremendously helpful.

    Comment by Adam — July 17, 2010 #

  8. Thank you for this clear and fresh tutorial. My TS3 test server was up quickly.

    Comment by mumbly — August 30, 2010 #

  9. HI,

    I’ve tried everything you’ve said, and i’ve got :

    tcp 0 0* LISTEN 14780/ts3server_lin
    tcp 0 0* LISTEN 14780/ts3server_lin
    udp 0 0* 14780/ts3server_lin

    But i can’t connect at all. Any idea ?

    Comment by Gael — October 28, 2010 #

  10. That looks good, do you’ve a firewall running?

    You can check if there is any traffic going to a port by using this command

    tcpdump -n -i eth0 port 30033 (or the other ports) .. if you don’t see anything when the clients tries to connect there is someone filtering between clients and server. eth0 is the interface you’re using, can also be something like venet0 or bond0 depending on your server setup. check with ifconfig.

    Comment by robert — October 29, 2010 #

  11. Hello… I have the same problem as Gael, I did try the tcpdump as root on port 30033… and i can see people trying to access it… but does not connect.

    Any suggestions?

    Comment by Edwin — November 24, 2010 #

  12. hmm, your server has a global IP address and you’re not trying it behind a NAT router?

    ps: Any entries in the TeamSpeak log files?

    Comment by robert — November 28, 2010 #

  13. Hey, I’m having the same problem as Ryan (first comment above). The server runs fine when I execute /etc/init.d/teamspeak start. However, during startup, the server will shut itself down in exactly 5 minutes. I’ve opened all the necessary ports. Here is an example of the log:

    2010-10-30 20:48:00.533704|INFO |ServerLibPriv | | Server Version: 3.0.0-beta29 [Build: 12473], Linux
    2010-10-30 20:48:00.534200|INFO |DatabaseQuery | | dbPlugin name: SQLite3 plugin, Version 2, (c)TeamSpeak Systems GmbH
    2010-10-30 20:48:00.534292|INFO |DatabaseQuery | | dbPlugin version: 3.6.21
    2010-10-30 20:48:00.534741|INFO |DatabaseQuery | | checking database integrity (may take a while)
    2010-10-30 20:48:00.641763|INFO |SQL | | pruning old database log entries where timestamp is older than 90 days
    2010-10-30 20:48:00.725401|DEVELOP | | | TS3ANetwork::ResolveHostName failed error: -2 (Name or service not known) 2
    2010-10-30 20:48:00.725598|DEVELOP | | | TS3ANetwork::ResolveHostName failed error: -2 (Name or service not known) 2
    2010-10-30 20:48:00.762681|WARNING |Accounting | | Unable to find valid license key, falling back to limited functionality
    2010-10-30 20:48:01.184514|INFO |FileManager | | listening on
    2010-10-30 20:48:01.191223|DEVELOP | | | TS3ANetwork::ResolveHostName failed error: -2 (Name or service not known) 2
    2010-10-30 20:48:01.191398|DEVELOP | | | TS3ANetwork::Connect failed error: 22
    2010-10-30 20:48:01.191481|ERROR | | | Could not open default UDP connection for weblist
    2010-10-30 20:48:01.450299|DEVELOP | | | TS3ANetwork::ResolveHostName failed error: -2 (Name or service not known) 2
    2010-10-30 20:48:01.450440|ERROR | | | resolving ” to binary ip failed, using instead
    2010-10-30 20:48:01.557468|INFO |VirtualServer | 1| listening on
    2010-10-30 20:48:01.592523|INFO |CIDRManager | | updated query_ip_whitelist ips:,
    2010-10-30 20:48:01.593352|INFO |Query | | listening on
    2010-10-30 20:53:01.319712|CRITICAL|NET | | AddToSet epoll_ctl fail with 1

    Might it have something to do with the order of starting up? Maybe this daemon starts up before a necessary networking daemon? Help please! Thanks.

    Comment by Ray — January 4, 2011 #

  14. hmmm .. the log entry TS3ANetwork::ResolveHostName failed error: -2 (Name or service not known) seems to tell us that the system is not able to resolve the name of some host. If that resolution is possible if you login in and start it by hand you seem to be right with your guess.

    I wrote that Howto for the latest LTS Version (10.04) .. are you trying it with 10.10?

    Is your server connected via Ethernet to the Internet or do you need to open a ppp connection or something like this? If you have something like this you need to make sure the server is started after the ppp connection is established.

    In the standard ethernet case, I would first try to set it back in the runlevel stuff:

    update-rc.d -f teamspeak remove
    update-rc.d teamspeak defaults 99

    If that doesn’t work. I would try following hack

    update-rc.d -f teamspeak remove


    add to /etc/rc.local

    sudo -u teamspeak ./ restart (or maybe start, did not check if restart works also when no prior process is running)

    Comment by robert — January 4, 2011 #

  15. Hi Robert, thanks for the very prompt response.


    update-rc.d -f teamspeak remove
    update-rc.d teamspeak defaults 99

    fixed the problem right away!

    I’ve had this problem for a while and I’ve been searching everywhere for the solution. Thanks for the tutorial and for the help! Appreciate it.

    Comment by Ray — January 4, 2011 #

  16. dont be ridiculous with the difficult installation anymore, it is enough just to write “sudo apt-get install teamspeak-server” since 10.10 release…

    Comment by kutus — January 27, 2011 #

  17. Ah, sorry, it is valid just for ts2 version only… ts3 version has not been added to repositary files yet

    Comment by kutus — January 27, 2011 #

  18. Hej

    I followed uour guide and everything works fine while im on my LAN. Connecting externally is not working so good. Tried a tcpdump -n -i wlan0 port 9987 and the traffic goes through when i try to connect but the client still said “failed to connect to server” Im running it on Ubuntu 10.10.
    Any Ideas?

    Thanks for a good guide!


    Comment by martin — February 8, 2011 #

  19. Newer tried teamspeak over a NAT/PAT. I don’t know if the protocol supports that – ask the teamspeak guys. Make your linux system the DSL/Cable router and try it again if it does not work with a NAT/PAT.

    Comment by robert — February 9, 2011 #

  20. hi, I vant try to do this under NAT, how I can do?

    Comment by mario — February 19, 2011 #

  21. sorry, I’ve no idea. My server has a worldwide ip address.

    Comment by robert — February 20, 2011 #

  22. Hi Robert,

    Thank you for this tutorial. My TS3 server was up quickly and worked fine. Now I am using a wifi connection and I have the same problem than Ray. It works only 5 mn with same log file.
    I am using this file for lunching the wifi when starting the computer :
    auto lo
    iface lo inet loopback

    mapping hotplug
    script grep
    map wlan0

    iface wlan0 inet dhcp
    wireless-essid mystique
    wireless-key akeythatislongenoughtonotrememberit
    auto wlan0

    I tried without sucess your two ideas:
    update-rc.d -f teamspeak remove
    update-rc.d teamspeak defaults 99

    update-rc.d -f teamspeak remove
    add to /etc/rc.local
    sudo -u teamspeak ./ restart (and start).

    Any other ideas?

    Comment by burnout — February 21, 2011 #

  23. Ray had the problem that it did not start automatically. Your problem is that it only runs for 5min? Can you describe the error a little bit closer. thx.

    ps: wireless-key is only WEP? If so that is brocken within 2min … use only WPA2 forget everthing else.

    Comment by robert — February 27, 2011 #

  24. Sorry to be not clear robert,

    here is the log file when I start TS3 in manually using /etc/init.d/teamspeak start:
    2011-02-28 18:41:32.142292|INFO |ServerLibPriv | | Server Version: 3.0.0-beta29 [Build: 12473], Linux
    2011-02-28 18:41:32.142720|INFO |DatabaseQuery | | dbPlugin name: SQLite3 plugin, Version 2, (c)TeamSpeak Systems GmbH
    2011-02-28 18:41:32.142810|INFO |DatabaseQuery | | dbPlugin version: 3.6.21
    2011-02-28 18:41:32.143255|INFO |DatabaseQuery | | checking database integrity (may take a while)
    2011-02-28 18:41:32.165714|INFO |SQL | | pruning old database log entries where timestamp is older than 90 days
    2011-02-28 18:41:32.184522|WARNING |Accounting | | Unable to find valid license key, falling back to limited functionality
    2011-02-28 18:41:32.221998|INFO |FileManager | | listening on
    2011-02-28 18:41:32.321580|INFO |VirtualServer | 1| listening on
    2011-02-28 18:41:32.322744|INFO |CIDRManager | | updated query_ip_whitelist ips:,
    2011-02-28 18:41:32.323529|INFO |Query | | listening on

    And this is the log file after the computer start:
    2011-02-28 18:38:34.369725|INFO |ServerLibPriv | | Server Version: 3.0.0-beta29 [Build: 12473], Linux
    2011-02-28 18:38:34.370182|INFO |DatabaseQuery | | dbPlugin name: SQLite3 plugin, Version 2, (c)TeamSpeak Systems GmbH
    2011-02-28 18:38:34.370272|INFO |DatabaseQuery | | dbPlugin version: 3.6.21
    2011-02-28 18:38:34.370735|INFO |DatabaseQuery | | checking database integrity (may take a while)
    2011-02-28 18:38:34.466915|INFO |SQL | | pruning old database log entries where timestamp is older than 90 days
    2011-02-28 18:38:34.504808|DEVELOP | | | TS3ANetwork::ResolveHostName failed error: -2 (Name or service not known) 2
    2011-02-28 18:38:34.509111|DEVELOP | | | TS3ANetwork::ResolveHostName failed error: -2 (Name or service not known) 2
    2011-02-28 18:38:34.539514|WARNING |Accounting | | Unable to find valid license key, falling back to limited functionality
    2011-02-28 18:38:34.957613|INFO |FileManager | | listening on
    2011-02-28 18:38:34.957971|DEVELOP | | | TS3ANetwork::ResolveHostName failed error: -2 (Name or service not known) 2
    2011-02-28 18:38:34.958169|DEVELOP | | | TS3ANetwork::Connect failed error: 22
    2011-02-28 18:38:34.958267|ERROR | | | Could not open default UDP connection for weblist
    2011-02-28 18:38:35.455458|DEVELOP | | | TS3ANetwork::ResolveHostName failed error: -2 (Name or service not known) 2
    2011-02-28 18:38:35.455579|ERROR | | | resolving ” to binary ip failed, using instead
    2011-02-28 18:38:35.811417|INFO |VirtualServer | 1| listening on
    2011-02-28 18:38:35.828919|INFO |CIDRManager | | updated query_ip_whitelist ips:,
    2011-02-28 18:38:35.829728|INFO |Query | | listening on
    2011-02-28 18:41:24.140815|INFO |ServerMain | | Received signal SIGTERM, shutting down.
    2011-02-28 18:41:24.297854|INFO |VirtualServer | 1| stopped

    What I understand is that my wifi connect take few seconds at computer startup and TS3 should have started before any network connection.

    I am using unbuntu 10.10. But it work with a manual start.

    thanks to take care of my problem.

    Comment by burnout — February 28, 2011 #

  25. ps: wireless-key is not only WEP. I am using WAP2. I have checked on some website before choosing and all recommand as you do WAP2.

    Comment by burnout — February 28, 2011 #

  26. If TeamSpeak starts before your wifi, thats the problem. You need to start TeamSpeak after you’ve gotten your wifi IP address.

    you could do following hack. make a small shell script which checks if teampeak is running and if not it starts it. put that into cron and let it check every 5 min.

    an other possibility is to but the script into /etc/network/if-up.d/ and filter there on the wifi device.

    Comment by robert — March 13, 2011 #

  27. Hello! Thank you Robert, for this awesome tutorial.. But I was wondering.. Can you make a un-install tutorial too? Or an update procedure (if un-install is not needed to update)..?! I think I’m using Ubuntu 10.10, but I’m not sure.. But it works great anyhow..

    Comment by Ivan S. — March 22, 2011 #

  28. D A N K E !

    Comment by es_age — March 27, 2011 #

  29. GREAT guide! when I followed it to the letter, it worked wonderfully. and by the way, yes, it has that 5 minute shutdown problem, but that code you mentioned later DOES solve the problem:

    update-rc.d -f teamspeak remove
    update-rc.d teamspeak defaults 99

    There is but one problem I am having. The server booted up just fine, and I was able to connect. The server gave me a server admin token to use, so i pasted it on the “use privelege key” option. now I’m a server admin. In theory, I should have ultimate power, right?

    Well that’s not exactly the case. When I go into permissions >> server groups, and attempt to change Guest’s permissions (let’s try something simple like allowing them to send text messages to the channel). I get an error that says “Not all permissions could be applied”, and the server console says “insufficient permission modify power”. nothing shows up in the log file about it. I’ve been having problems like this since 10.04, and up until now I’ve just been giving up on it. any forum I’ve googled about it so far mentions having to edit a database file with some other program for permissions… That seems asinine to me, which means I’ve done something wrong somewhere and didn’t know it lol. have any of you had this problem? is it something easy to fix?

    Comment by hylianux — May 20, 2011 #

  30. you have served as my “let me ask an expert so that suddenly fate will deliver the answer to me making me look stupid before they can answer!”

    I just found the answer on teamspeak’s forum >>

    short story long, that login/password thing you get in the beginning needs to be run with the serverquery.

    for anyone else having the issue, when the server first boots up, it’ll give you this username: serveradmin password:

    after making yourself an admin using the token earlier, you press ctrl+shift+v and type in

    login serveradmin ‘password without quotes’
    use sid=1
    servergroupaddclient sgid=2 cldbid=2

    magic… hope this helps others too, and thanks again for this guide. :)

    Comment by hylianux — May 20, 2011 #

  31. ah, it doesn’t like those arrows.

    this sentence should read:

    for anyone else having the issue, when the server first boots up, it’ll give you this username: serveradmin password:’some random alphanumeric generation’

    sorry for the triple post ><

    Comment by hylianux — May 20, 2011 #

  32. Thanks for the great guide.
    It worked straight away for me (about a year ago).

    My clients are now getting an error msg about the server being outdated.
    Can you please tell me how to upgrade without loosing all my chanels and icons?

    Thanks in advance.

    Comment by Sparky — May 23, 2011 #

  33. I still need a way to update my server.. How do I kill the TS3 server program so I can extract the new archive (new TS3 version is out)..? It’s in /opt/ts3, right?

    Comment by Ivan S. — May 30, 2011 #

  34. type “ps aux | grep ts3″ and take the second number and type “kill -9 secondnumber” and yes /opt/ts3

    Comment by robert — June 4, 2011 #

  35. When I enter update-rc.d teamspeak defaults as per your instructions I get this: update-rc.d: warning: teamspeak stop runlevel arguments (0 1 6) do not match LSB Default-Stop values (S 0 1 6) It seems to work, but what does this warning mean?

    Comment by Antonio — June 15, 2011 #

  36. I just updated the server to a new version. its really easy:

    #get the file


    # make a backup

    cp -a /opt/ts3 /opt/ts3_old_28

    # stop the server with

    /etc/init.d/teamspeak stop

    # copy the files from the tar file into the /opt/ts3 directory

    # start the server

    /etc/init.d/teamspeak start

    # take a look at the newest log file in


    Comment by robert — June 15, 2011 #

  37. @Antonio: LSB is the Linux Standard Base which writes some guidelines down to make all distribution similar. And the warning just shows that the defaults of Ubuntu are not the default for LSB. Just ignore it ;-)

    Comment by robert — June 15, 2011 #

  38. Thanks for additional explanation/clarification and a very helpful tutorial in the first place! It works perfectly on Ubuntu 10.10 headless server connected to the internet with Cisco cable modem and a Linksys WRT54GL router with DD-WRT firmware!

    Comment by Antonio — June 16, 2011 #

  39. very good manual, ran it on 11.04 and got it working.

    dit have the same problem as many here with a router, but the onw thing i did think of later was i also have a firewall running (UFW)
    added :
    ufw enable
    ufw default deny
    ufw allow 9987/udp
    ufw allow 10011/tcp
    ufw allow 30033/tcp
    (remember add you home network also)

    now it works like a charm.

    Comment by tonny — June 27, 2011 #

  40. So I followed it exactly, everything looks like it’s working, But, I can join to it Locally but people cant’ join it. Firewalls set up, nothings bouncing off, is there a way i can tell it somewhere to read from an INI file??? maybe in /etc/init.d/teamspeak??? cause i’ve heard that when the ip reads as sometimes people have problems connecting

    Comment by Aaron — July 6, 2011 #

  41. Please can you indicate up to where should the info go into the teamspeak file that goes into the init.d folder

    Comment by Barry — September 1, 2011 #

  42. I don’t understand what you would like to know.

    Comment by robert — September 2, 2011 #

  43. This post is brilliant mate

    Thumbs up

    Comment by raholl — September 8, 2011 #

  44. Robert,

    Great post. I am using the init script you wrote and it is working well. One issue I had though, was that the server would not start on boot up. I traced it back to the sudo command not having the ability to run without a tty terminal. I needed to add a line to my sudoers file “Defaults:root !requiretty”. Once that was added the script would start up. I knew this was required as the console was giving an error that sudo needed a tty terminal to run.

    My question though, is the service does not seem to shut down properly on reboot. I do not see any errors on the terminal, but when the system boots up I am told the pid already existed, meaning the service was terminated and not shut down properly. Do you have any ideas?

    Comment by Nick — October 13, 2011 #

  45. Really helpfull, thanks!

    Comment by Ximo — November 11, 2011 #

  46. It was very helpfull, for beginner ubuntu user! Big Up for this!

    Comment by Adams — December 8, 2011 #

  47. Thanks for this!

    Worked perfectly on Ubuntu 11.04 (32 bit).

    Comment by d4m1r — March 4, 2012 #

  48. I have such problem:
    2012-03-21 14:07:36.970579|INFO |ServerLibPriv | | TeamSpeak 3 Server 3.0.3 (2012-03-17 06:12:11)
    2012-03-21 14:07:37.274727|INFO |DatabaseQuery | | dbPlugin name: MySQL plugin, (c)TeamSpeak Systems GmbH
    2012-03-21 14:07:37.274937|INFO |DatabaseQuery | | dbPlugin version: 1
    2012-03-21 14:07:37.330652|ERROR |DatabaseQuery | | mysql_real_connect() failed with error: Can’t connect to local MySQL server through socket ‘/var/run/mysqld/mysqld.sock’ (2)

    Comment by FreeSoul — March 21, 2012 #

  49. But i can start it with the same script manualy

    Comment by FreeSoul — March 21, 2012 #

  50. Make sure that the Mysql is started before Teamspeak is. e.g. by defining an dependency.

    Comment by robert — March 28, 2012 #

  51. Still works great on Ubuntu 12. If you are brand new to Linux as I was, here are a couple things that would have saved me a little frustration and a lot of time:
    Connect to your server using SSH! Install OpenSSH when you install Ubuntu, or add it if you didn’t. The ability to copy and paste into the Ubuntu console from a Windows machine is super-useful. Please find and follow a guide to setting up SSH securely if you decide to use it.

    Also, as another commenter mentioned, the grammar surrounding the init.d script instructions can be confusing for Linux newbies, especially those not familiar with the ‘cat’ (concatenate) command. Cat is primarily intended to merge the content of multiple files into one, but it is used here as a relatively simple way to create a new file and add startup code to it. Once I understood what ‘cat’ does and how it is being used here, the whole thing made perfect sense. For those who may still be having trouble, try reading that possibly-confusing sentence this way:

    “Create an init.d file by pasting the following content, after executing this command: cat > /etc/init.d/teamspeak”

    Now, if you’re a super-newbie like I was, here’s the Super Duper Micromanager’s Hand-Holding Edition with new improved formula and 25% extra explaining! This assumes you’ve followed the guide up through changing permissions for the teamspeak user and are now stuck setting up the init.d script:
    1: Type cat > /etc/init.d/teamspeak into the console and hit ENTER. The console will advance one row and display a blank line with cursor. Basically, we have just told cat to create a blank file called ‘teamspeak’ in the init.d directory. If the file already existed, cat would use the existing file.
    2: Now copy the OP’s init.d code from above, starting with #! /bin/sh. Paste it into the linux console. The pasted text appears on screen. Once you are sure all the code is there and correct, hit ENTER. We have just pasted the code into to the teamspeak file that was created.
    3. Now hit Ctrl-D. This will close cat and return us to the prompt. The startup script is created and saved. Move to the next step.

    Note: I don’t mean to insult the OP on his very own blog by rewriting instructions and fixing grammar!. I only hope to save someone the same frustration I experienced by providing this “for dummies” version of the init.d step, which I initially found to be confusing. Best of luck!

    Comment by Bearfight — August 7, 2012 #

  52. Grammar fixing is no problem, as English is not my native language. ;-)

    Comment by robert — August 7, 2012 #

  53. Extremely new to linux so bear with me please. I followed the guide here and I can call on the server using the /etc/init.d/teamspeak start command but when I restart it doesn’t seem to auto start the server. Any help would for thew newbie would be greatly appreciated. Thanks

    Comment by Quoward — August 20, 2012 #

  54. Take a look at comment 14 … it maybe helps you. The other possibility is that Teamspeak is trying to start and it doesn’t work, for this look into the teamspeak logs.

    Comment by robert — August 21, 2012 #

  55. Thank you very much for this guide. Worked perfectly for me!

    Comment by Brian — September 19, 2012 #

  56. Hi, I followed this guide and everything works perfectly. You might want to address the issue that if you have a TS license, you also have to allow port 2008 (TCP) in your firewall. If you don’t, TeamSpeak will not start – the log will simply log that it cannot connect to the accounting server and the process will terminate. You only have to allow port 2008 for

    Comment by Jeroen — September 26, 2012 #

  57. Awesome write-up! I had this working on my server in under 5 minutes.

    This line is a little confusing though:

    “If you take a look into the /opt/ts3 directory you’ll see that there is a already a start/stop script (, we will utilize it. Create a init.d file with pasting the content after executing cat > /etc/init.d/teamspeak ”

    The first time I read that I assumed I was to paste in the text from :D

    Comment by isoprene — October 7, 2012 #

  58. I’ve followed exactly up to this part.

    cat > /etc/init.d/teamspeak

    but I get this error:

    -bash: /etc/init.d/teamspeak: Permission denied


    Comment by helwoe — October 22, 2012 #

  59. you need to do this as superuser … sudo cat > /etc/init.d/teamspeak

    or sudo bash before to set the whole shell in superuser mode

    Comment by robert — October 22, 2012 #

  60. Thanks Robert!
    This worked for me.

    sudo bash

    sudo cat > /etc/init.d/teamspeak

    (copy & paste code)


    Comment by helwoe — October 23, 2012 #

  61. Thank you so much for this easy to follow guide. It worked flawlessly for my setup on Ubuntu 12.04!

    Comment by Mat Collins — November 19, 2012 #

  62. Hello,
    the way you chown’d the teamspeak folder prevent my sudo user from reading the log files. What turn around solution shoud I follow in order to do so? My teamspeak user does not have any password and I cannot su with it.
    It’s obvious that I am not at all familiar with linux as a whole. Thanks for your help :)

    Comment by KRG-23 — November 22, 2012 #

  63. With “su -m user” or “su -p user” as root you can login as a user that can not login normally.

    Comment by robert — November 22, 2012 #

  64. [...] Credit: Robert Penz Blog [...]

    Pingback by Installing Teamspeak 3 Server in Ubuntu Server 10.04LTS Environment | — January 13, 2013 #

  65. This was a fantastic tutorial. After following the instructions the server started and was added to the startup scripts perfectly! Thank you so very much.

    Comment by Mike — February 6, 2013 #

  66. [...] [...]

    Pingback by Teamspeak 3 en Ubuntu Server | iKindred's Notes — July 27, 2013 #

  67. […] if you are looking for a guide to get started with installing Teamspeak, this guide worked for […]

    Pingback by Updating Teamspeak Server on Ubuntu 12.04 Linux | Mark Broadhead — September 10, 2013 #

  68. perfect guide and spot on, bloody brilliant my friend, Thank you for this piece of GOLD!

    Comment by Tom — September 14, 2013 #

  69. I was wondering if you would post an update solution? We are now at version 3.10 for the server, and was wondering if there was anything feature for the server that can do an automatic upgrade?


    Comment by Philippe — October 2, 2013 #

Leave a comment

To prove that you're not a bot, enter this code
Anti-Spam Image

XHTML: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>

Powered by WordPress
Entries and comments feeds. Valid XHTML and CSS. 24 queries. 0.182 seconds.