TeamSpeak Server Installation on Linux
TeamSpeak is a high-performance voice chat platform used widely in gaming communities and professional teams. This guide walks through installing a TeamSpeak 3 server on Linux, covering license setup, virtual server configuration, channel management, and the ServerQuery administration interface.
Prerequisites
- Ubuntu 20.04/22.04 or CentOS/Rocky Linux 8+
- A non-root sudo user
- Minimum 512 MB RAM (1 GB recommended for 50+ concurrent users)
- Ports 9987/UDP, 10011/TCP, 30033/TCP available
Download and Install TeamSpeak Server
# Download the latest TeamSpeak 3 server (check https://teamspeak.com/downloads/ for the latest version)
wget https://files.teamspeak-services.com/releases/server/3.13.7/teamspeak3-server_linux_amd64-3.13.7.tar.bz2
# Verify the download (checksum from TeamSpeak website)
sha256sum teamspeak3-server_linux_amd64-3.13.7.tar.bz2
# Extract the archive
tar xvf teamspeak3-server_linux_amd64-3.13.7.tar.bz2
Create a Dedicated User
Running TeamSpeak as root is a security risk. Create a dedicated user:
# Create a system user for TeamSpeak
sudo useradd -m -d /opt/teamspeak -s /bin/bash teamspeak
# Move the server files to the user's home directory
sudo mv teamspeak3-server_linux_amd64/* /opt/teamspeak/
# Set correct ownership
sudo chown -R teamspeak:teamspeak /opt/teamspeak/
Accept the License and Start the Server
TeamSpeak requires you to accept the license agreement before the server will start:
# Switch to the teamspeak user
sudo -u teamspeak bash
# Create the license acceptance file
touch /opt/teamspeak/.ts3server_license_accepted
# Start the server for the first time to generate credentials
cd /opt/teamspeak
./ts3server_minimal_runscript.sh
On first run, the server outputs a Server Admin Token and the default ServerQuery admin password. Save these immediately — they are only shown once:
------------------------------------------------------------------
I M P O R T A N T
------------------------------------------------------------------
Server Query Admin Account created
loginname= "serveradmin", password= "XXXXXXXXXX"
------------------------------------------------------------------
ServerAdmin privilege key created, please use it to gain
serveradmin rights for your virtualserver. please
also check the doc/privilegekey_guide.txt for details.
token=XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
Stop the server after collecting these credentials (Ctrl+C), then configure it as a service.
Configure Systemd Service
# Create the systemd service file
sudo tee /etc/systemd/system/teamspeak.service > /dev/null <<EOF
[Unit]
Description=TeamSpeak 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
Restart=on-failure
RestartSec=10
[Install]
WantedBy=multi-user.target
EOF
# Reload systemd and enable the service
sudo systemctl daemon-reload
sudo systemctl enable teamspeak
sudo systemctl start teamspeak
# Check service status
sudo systemctl status teamspeak
Firewall Configuration
# UFW (Ubuntu/Debian)
sudo ufw allow 9987/udp comment "TeamSpeak voice"
sudo ufw allow 10011/tcp comment "TeamSpeak ServerQuery"
sudo ufw allow 30033/tcp comment "TeamSpeak file transfer"
# firewalld (CentOS/Rocky Linux)
sudo firewall-cmd --permanent --add-port=9987/udp
sudo firewall-cmd --permanent --add-port=10011/tcp
sudo firewall-cmd --permanent --add-port=30033/tcp
sudo firewall-cmd --reload
Channel and Permission Management
Connect to your server using the TeamSpeak client and the admin privilege token collected earlier.
Initial server setup via client:
- Connect to
your-server-ip:9987using the TeamSpeak client - Go to Permissions > Use Privilege Key and enter your admin token
- Right-click the server name > Edit Virtual Server to set the server name and password
Create channels:
- Right-click server > Create Channel
- Set channel name, topic, description, and codec (Opus Voice for most use cases)
- Set Max Clients to limit channel capacity
- Under the Permissions tab, adjust who can join, talk, or move clients
Permission groups:
- Server Admin - Full server control
- Channel Admin - Manage a specific channel
- Normal - Regular connected users
- Guest - Users without a registered identity
ServerQuery Administration
ServerQuery allows scripting and automation via telnet or SSH:
# Connect via telnet (raw TCP)
telnet your-server-ip 10011
# Login with ServerQuery credentials
login serveradmin YOUR_PASSWORD
# Select virtual server ID 1
use sid=1
# List clients
clientlist
# Create a new channel
channelcreate channel_name=General channel_codec=4 channel_codec_quality=6
# Move a client to another channel (replace IDs accordingly)
clientmove clid=3 cid=5
# Ban a client by IP
banadd ip=192.168.1.100 time=3600 banreason=Spamming
# Quit the session
quit
ServerQuery via SSH (TeamSpeak 5):
# TeamSpeak 5 supports SSH-based ServerQuery
ssh serveradmin@your-server-ip -p 10022
Troubleshooting
Server won't start — license not accepted:
ls -la /opt/teamspeak/.ts3server_license_accepted
# If missing:
sudo -u teamspeak touch /opt/teamspeak/.ts3server_license_accepted
Cannot connect on port 9987:
# Verify the process is listening
ss -ulnp | grep 9987
# Check server logs
tail -f /opt/teamspeak/logs/ts3server_*.log
"Server is full" errors: Check the number of allowed slots in your license. The free license supports up to 32 simultaneous users:
grep -i "slots\|maxclients" /opt/teamspeak/ts3server.ini
Voice quality issues: In the TeamSpeak client, set the channel codec to Opus Voice (codec ID 4) and quality to 6–10. Lower values reduce bandwidth but sacrifice quality.
Permission denied on startup:
sudo chown -R teamspeak:teamspeak /opt/teamspeak/
sudo chmod +x /opt/teamspeak/ts3server_minimal_runscript.sh
Conclusion
You now have a fully functional TeamSpeak 3 server on Linux with automatic startup, firewall rules, and a configured admin account. Use the ServerQuery interface for scripting and automation, and manage channels and permissions via the TeamSpeak client. For larger deployments, consider deploying a license from TeamSpeak's website to support more than 32 concurrent users.


