How to install TeamSpeak Server on CentOS 7

Try it in our public cloud & Get $5 Credit

How to install TeamSpeak Server on CentOS 7

TeamSpeak® is a VoIP (voice-over-Internet Protocol) solution first released in 2001 and most popular with those who play team-based online games. The software has two parts, a server and a client, both of which can be installed on Windows, Mac and Linux. This guide will focus on installing the TeamSpeak server on a CentOS 7 system.

TeamSpeak is free for use with up to 32 users, and there exists a non-commercial, non-profit license suitable for use with up to 512 users.

Getting started

Confirm that you have the following before you follow this guide:
• 1 Node (Cloud Server or Dedicated Server) running CentOS 7.
• Root access to the node or one sudo non-root user
• A TeamSpeak client on your platform of choice in order to test things out.
• nano, wget, tar, perl, net-tools, and bzip2

Step-by-step guide

The first step is to run the following commands on your Cent OS 7 server, to make sure you got the latest updates:

yum update -y
yum install nano wget perl tar net-tools bzip2 -y

Next, you’ll need to go through TeamSpeak user creation.

adduser teamspeak

You will be prompted to enter a password for TeamSpeak. Make it strong, but don’t worry about remembering it, as you will not be asked for it in the future.

passwd teamspeak

Next, you’ll need to install TeamSpeak server, using the following command:

wget http://dl.4players.de/ts/releases/
tar xvf teamspeak3-server_linux_amd64-
cd teamspeak3-server_linux_amd64
cp * -R /home/teamspeak
cd ..
rm -rf teamspeak3-server_linux_amd64*
chown -R teamspeak:teamspeak /home/teamspeak

If your server reboots, you will need a way to have TeamSpeak start up automatically. This is where startup scripts can come in handy. Create the following file and open it in your text editor.

nano /lib/systemd/system/teamspeak.service

Add this content to the file.

Description=Team Speak 3 Server
ExecStart=/home/teamspeak/ts3server_startscript.sh start inifile=ts3server.ini
ExecStop=/home/teamspeak/ts3server_startscript.sh stop

Save and exit the text editor.

Now you can start and enable the TeamSpeak Server onboot feature.

systemctl --system daemon-reload
systemctl start teamspeak.service
systemctl enable teamspeak.service

Make sure that TeamSpeak is actually running with this command:

systemctl status teamspeak.service

Firewall rules addition

TeamSpeak utilizes certain ports that must remain open for its services to work properly.
• 9987 UDP: TeamSpeak Voice service
• 10011 TCP: TeamSpeak ServerQuery
• 30033 TCP: TeamSpeak FileTransfer

If you are using CentOS7’s firewall service (firewalld), here is how to open those ports:

firewall-cmd --zone=public --add-port=9987/udp --permanent
firewall-cmd --zone=public --add-port=10011/tcp --permanent
firewall-cmd --zone=public --add-port=30033/tcp --permanent
firewall-cmd --reload

Administrate your TeamSpeak server

The first time that you connect TeamSpeak-client to the newly installed TeamSpeak-server, you will be prompted to enter an administrator key.

This key has been generated at first startup. You will need to retrieve the key in order to elevate your account as an administrator.

cat /home/teamspeak/logs/ts3server_*

If successful, you should see the following output.

20**-**-** **:**:**.464359|INFO |ServerLibPriv | |TeamSpeak 3 Server (2016-04-25 15:16:45)
20**-**-** **:**:**.464674|INFO |ServerLibPriv | |SystemInformation: Linux 3.10.0-229.14.1.el7.x86_64 #1 SMP Tue Sep 15 15:05:51 UTC 2015 x86_64 Binary: 64bit
20**-**-** **:**:**.464714|INFO |ServerLibPriv | |Using hardware aes
20**-**-** **:**:**.465528|INFO |DatabaseQuery | |dbPlugin name: SQLite3 plugin, Version 2, (c)TeamSpeak Systems GmbH
20**-**-** **:**:**.465569|INFO |DatabaseQuery | |dbPlugin version: 3.8.6
20**-**-** **:**:**.467044|INFO |DatabaseQuery | |checking database integrity (may take a while)
20**-**-** **:**:**.486336|INFO |SQL | |db_CreateTables() tables created
20**-**-** **:**:**.700041|WARNING |Accounting | |Unable to find valid license key, falling back to limited functionality
20**-**-** **:**:**.967102|INFO | | |Puzzle precompute time: 1235
20**-**-** **:**:**.969291|INFO |FileManager | |listening on
20**-**-** **:**:**.970825|INFO |VirtualSvrMgr | |executing monthly interval
20**-**-** **:**:**.971008|INFO |VirtualSvrMgr | |reset virtualserver traffic statistics
20**-**-** **:**:**.040977|INFO |CIDRManager | |updated query_ip_whitelist ips:,
20**-**-** **:**:**.042502|INFO |Query | |listening on
20**-**-** **:**:**.036685|INFO |VirtualServer |1 |listening on
20**-**-** **:**:**.037580|INFO |VirtualServer |1 |client 'server'(id:0) added privilege key for servergroup 'Server Admin'(id:6)
20**-**-** **:**:**.037614|WARNING |VirtualServer |1 |--------------------------------------------------------
20**-**-** **:**:**.037634|WARNING |VirtualServer |1 |ServerAdmin privilege key created, please use the line below
20**-**-** **:**:**.037651|WARNING |VirtualServer |1 |token=*************************************************
20**-**-** **:**:**.037668|WARNING |VirtualServer |1 |--------------------------------------------------------

Copy and paste the token into your TeamSpeak-client.

Once you have entered the ServerAdmin key in TeamSpeak-client, you will get this message:

Privilege Key successfully used.

This user will then be assigned administrator rights on your server.


With successful installation of TeamSpeak Server on CentOS 7, you can now host chats for up to 32 users at once, including yourself as an administrator.

If you found this article helpful, feel free to share it with your friends and let us know in the comments below!