Installing Teamspeak on CentOS 7

Updated on November 21, 2023
Installing Teamspeak on CentOS 7 header image

Teamspeak is a VOIP server that can be used for teams/multiple people to communicate. It is relatively lightweight, and secure, as updates are released regularly.

In this tutorial, we'll be installing Teamspeak on your CentOS 7 instance.

Prerequisites

Before we begin, you'll need:

  • CentOS 7 system (64 bit only).
  • 512 MB of RAM or higher.
  • wget (utility used for downloading files).
  • nano or vim (any text editor is fine).

Installation

Prerequisites

Update the system packages. This may take some time.

yum update -y

Install tools needed for this tutorial.

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

Installation

Add an unprivileged user to run Teamspeak. When prompted, enter your desired password.

useradd ts
passwd ts

Retrieve the Teamspeak server software.

cd ~
wget http://dl.4players.de/ts/releases/3.0.13.8/teamspeak3-server_linux_amd64-3.0.13.8.tar.bz2

Extract the Teamspeak tarball and copy all of the files to our unprivileged user's home directory.

tar -xvf teamspeak3-server_linux_amd64-3.0.13.8.tar.bz2
cd teamspeak3-server_linux_amd64
cp * -R /home/ts

Remove temporary files.

cd ~
rm -rf teamspeak3-server_linux_amd64
rm -rf teamspeak3-server_linux_amd64-3.0.13.8.tar.bz2

Grant the appropriate permissions to our ts user.

chown -R ts:ts /home/ts

Create a Systemd service for Teamspeak.

nano /lib/systemd/system/teamspeak.service

Paste the following:

[Unit]
Description=Team Speak 3 Server
After=network.target
[Service]
WorkingDirectory=/home/teamspeak/
User=ts
Group=ts
Type=forking
ExecStart=/home/teamspeak/ts3server_startscript.sh start inifile=ts3server.ini
ExecStop=/home/teamspeak/ts3server_startscript.sh stop
PIDFile=/home/teamspeak/ts3server.pid
RestartSec=15
Restart=always
[Install]
WantedBy=multi-user.target

Save and exit (press CTRL and O simultaneously, followed by the Enter key).

Reload Systemd units.

systemctl --system daemon-reload

Make Teamspeak run on startup.

systemctl enable teamspeak.service

Starting, stopping and restarting Teamspeak

Controlling Teamspeak is simple. You can control Teamspeak with the following command:

systemctl (option) teamspeak.service

Replace (option) with start, stop, or restart.

Configuring the firewall

CentOS 7 no longer uses iptables. As an alternative, CentOS 7 comes with firewalld by default.

Find the default zone. On Vultr instances running CentOS 7, the default zone is public.

firewall-cmd --get-default-zone

Open the default ports for Teamspeak. If each rule is added successfully, the output will read "success".

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

Reload firewalld.

firewall-cmd --reload

Conclusion

Congratulations! You've successfully created a Teamspeak server. You can connect to it with the Teamspeak Client.

Have fun!