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:

  1. Connect to your-server-ip:9987 using the TeamSpeak client
  2. Go to Permissions > Use Privilege Key and enter your admin token
  3. Right-click the server name > Edit Virtual Server to set the server name and password

Create channels:

  1. Right-click server > Create Channel
  2. Set channel name, topic, description, and codec (Opus Voice for most use cases)
  3. Set Max Clients to limit channel capacity
  4. 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.