TeamSpeak is a popular open-source VoIP communication system for online gaming. It is very similar to a telephone conference call and is used for audio communication between users on a chat channel. It is cross-platform and allows multiple users to talk or listen to other TeamSpeak users. It offers a wide range of features including good voice quality, less bandwidth usage, in-game overlay, real-time communication, an intuitive user interface, and more.
In this post, we will show you how to install a TeamSpeak server on Fedora.
Step 1 – Install TeamSpeak Server
First, you will need to install some dependencies on your server. You can install all of them with the following command.
dnf update -y dnf install nano wget perl tar net-tools bzip2
Next, create a dedicated user to run the TeamSpeak server.
adduser teamspeak -d /opt/teamspeak
Next, download the latest version of TeamSpeak from its official website.
wget https://files.teamspeak-services.com/releases/server/3.13.7/teamspeak3-server_linux_amd64-3.13.7.tar.bz2
Once the download is finished, extract the downloaded file.
tar -xvjf teamspeak3-server_linux_amd64-3.13.7.tar.bz2
Next, move the extracted directory to /opt and change its ownership.
mv teamspeak3-server_linux_amd64/* /opt/teamspeak/ chown -R teamspeak: /opt/teamspeak
Next, create a license file for the TeamSpeak server.
touch /opt/teamspeak/.ts3server_license_accepted
Step 2 – Create a Systemd Service File
Next, you will need to create a systemd service file to manage the TeamSpeak service. You can create it with the following command.
nano /lib/systemd/system/teamspeak.service
Add the following configurations.
[Unit] Description=Team Speak 3 Server After=network.target [Service] WorkingDirectory=/opt/teamspeak/ User=teamspeak Group=teamspeak Type=forking ExecStart=/opt/teamspeak/ts3server_startscript.sh start inifile=ts3server.ini ExecStop=/opt/teamspeak/ts3server_startscript.sh stop PIDFile=/opt/teamspeak/ts3server.pid RestartSec=15 Restart=always [Install] WantedBy=multi-user.target
Save and close the file, then reload the systemd daemon to apply the changes.
systemctl --system daemon-reload
Then, start the TeamSpeak service and enable it to start at system reboot.
systemctl start teamspeak systemctl enable teamspeak
You can check the status of TeamSpeak using the following command.
systemctl status teamspeak
Output.
● teamspeak.service - Team Speak 3 Server Loaded: loaded (/usr/lib/systemd/system/teamspeak.service; disabled; vendor preset: disabled) Active: active (running) since Tue 2023-06-06 03:27:55 EDT; 4s ago Process: 28389 ExecStart=/opt/teamspeak/ts3server_startscript.sh start inifile=ts3server.ini (code=exited, status=0/SUCCESS) Main PID: 28396 (ts3server) Tasks: 21 (limit: 4666) Memory: 19.9M CPU: 3.887s CGroup: /system.slice/teamspeak.service └─28396 ./ts3server inifile=ts3server.ini daemon=1 pid_file=ts3server.pid
Jun 06 03:27:55 fedora ts3server_startscript.sh[28396]: apikey= "BAB8M-HTaXJwunk8MOsGOMja4eODG-f5k0EEICI" Jun 06 03:27:55 fedora ts3server_startscript.sh[28396]: ------------------------------------------------------------------ Jun 06 03:27:57 fedora ts3server_startscript.sh[28396]: ------------------------------------------------------------------ Jun 06 03:27:57 fedora ts3server_startscript.sh[28396]: I M P O R T A N T Jun 06 03:27:57 fedora ts3server_startscript.sh[28396]: ------------------------------------------------------------------ Jun 06 03:27:57 fedora ts3server_startscript.sh[28396]: ServerAdmin privilege key created, please use it to gain Jun 06 03:27:57 fedora ts3server_startscript.sh[28396]: serveradmin rights for your virtualserver. please Jun 06 03:27:57 fedora ts3server_startscript.sh[28396]: also check the doc/privilegekey_guide.txt for details. Jun 06 03:27:57 fedora ts3server_startscript.sh[28396]: token=yiVk2d4Kuh5NxREKL69lXw23w83L5rxTy7tDt7UG Jun 06 03:27:57 fedora ts3server_startscript.sh[28396]: ------------------------------------------------------------------
You can check the TeamSpeak logs for more information.
cat /opt/teamspeak/logs/*
Output.
2023-06-06 07:27:55.821060|INFO |ServerLibPriv | |TeamSpeak 3 Server 3.13.7 (2022-06-20 12:21:53) 2023-06-06 07:27:55.821228|INFO |ServerLibPriv | |SystemInformation: Linux 5.12.8-300.fc34.x86_64 #1 SMP Fri May 28 15:20:54 UTC 2021 x86_64 Binary: 64bit 2023-06-06 07:27:55.826637|INFO |DatabaseQuery | |dbPlugin name: SQLite3 plugin, Version 3, (c)TeamSpeak Systems GmbH 2023-06-06 07:27:55.826714|INFO |DatabaseQuery | |dbPlugin version: 3.11.1 2023-06-06 07:27:55.827188|INFO |DatabaseQuery | |checking database integrity (may take a while) 2023-06-06 07:27:55.842195|INFO |SQL | |db_CreateTables() tables created 2023-06-06 07:27:55.888533|WARNING |Accounting | |Unable to open licensekey.dat, falling back to limited functionality 2023-06-06 07:27:55.889007|INFO |Accounting | |Licensing Information 2023-06-06 07:27:55.889049|INFO |Accounting | |licensed to : Anonymous 2023-06-06 07:27:55.889066|INFO |Accounting | |type : No License 2023-06-06 07:27:55.889088|INFO |Accounting | |starting date : Tue Feb 1 00:00:00 2022 2023-06-06 07:27:55.889105|INFO |Accounting | |ending date : Thu Jul 1 00:00:00 2027 2023-06-06 07:27:55.889120|INFO |Accounting | |max virtualservers: 1 2023-06-06 07:27:55.889134|INFO |Accounting | |max slots : 32 2023-06-06 07:27:57.249724|INFO | | |Puzzle precompute time: 1293 2023-06-06 07:27:57.250634|INFO |FileManager | |listening on 0.0.0.0:30033, [::]:30033 2023-06-06 07:27:57.251912|INFO |VirtualSvrMgr | |executing monthly interval 2023-06-06 07:27:57.252123|INFO |VirtualSvrMgr | |reset virtualserver traffic statistics 2023-06-06 07:27:57.286585|INFO |Query | |Using a query thread pool size of 2 2023-06-06 07:27:57.313059|INFO |Query | |listening for query on 0.0.0.0:10011, [::]:10011 2023-06-06 07:27:57.313285|INFO | | |creating QUERY_SSH_RSA_HOST_KEY file: ssh_host_rsa_key 2023-06-06 07:27:58.216597|INFO | | |myTeamSpeak identifier revocation list was downloaded successfully - all related features are activated 2023-06-06 07:27:58.683529|INFO |Query | |listening for ssh query on 0.0.0.0:10022, [::]:10022 2023-06-06 07:27:58.683752|INFO |Query | |listening for http query on 0.0.0.0:10080, [::]:10080 2023-06-06 07:27:58.684059|INFO |CIDRManager | |updated query_ip_allowlist ips: 127.0.0.1/32, ::1/128, 2023-06-06 07:27:57.311762|INFO |VirtualServerBase|1 |listening on 0.0.0.0:9987, [::]:9987 2023-06-06 07:27:57.312526|WARNING |VirtualServer |1 |-------------------------------------------------------- 2023-06-06 07:27:57.312560|WARNING |VirtualServer |1 |ServerAdmin privilege key created, please use the line below 2023-06-06 07:27:57.312577|WARNING |VirtualServer |1 |token=yiVk2d4Kuh5NxREKL69lXw23w83L5rxTy7tDt7UG
Step 3 – Configure Firewall
The TeamSpeak server is now installed and listens on ports 10011, 9987, and 30033. You can check them using the following command.
ss -antpl | grep ts3server
Output.
LISTEN 0 128 0.0.0.0:10011 0.0.0.0:* users:(("ts3server",pid=28396,fd=55)) LISTEN 0 128 0.0.0.0:10080 0.0.0.0:* users:(("ts3server",pid=28396,fd=60)) LISTEN 0 128 0.0.0.0:10022 0.0.0.0:* users:(("ts3server",pid=28396,fd=58)) LISTEN 0 128 0.0.0.0:30033 0.0.0.0:* users:(("ts3server",pid=28396,fd=35)) LISTEN 0 128 [::]:10011 [::]:* users:(("ts3server",pid=28396,fd=56)) LISTEN 0 128 [::]:10080 [::]:* users:(("ts3server",pid=28396,fd=61)) LISTEN 0 128 [::]:10022 [::]:* users:(("ts3server",pid=28396,fd=59)) LISTEN 0 128 [::]:30033 [::]:* users:(("ts3server",pid=28396,fd=36))
Now, run the following commands to allow all TeamSpeak 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
Next, reload the firewall service to implement the changes.
firewall-cmd --reload
Conclusion
Congratulations! You have successfully installed and configured the TeamSpeak server on Fedora. You can now download the TeamSpeak client on your mobile or PC, join the TeamSpeak server and start communicating with other members. You can also install the TeamSpeak server on VPS hosting from Atlantic.Net!