TeamSpeak

PlatformSupportNotes
Linux✅ NativeRecommended
Windows✅ Native
02

Requirements

  • VPS with at least 512 MB RAM and 1 GB disk
  • Operating system: Ubuntu/Debian/CentOS 64-bit
03

1. Create dedicated user

bash
sudo useradd -m -s /bin/bash teamspeak
sudo su - teamspeak
04

2. Download TeamSpeak 3 Server

bash
# Check latest version at https://teamspeak.com/en/downloads/#server
VERSION="3.13.7"
wget "https://files.teamspeak-services.com/releases/server/${VERSION}/teamspeak3-server_linux_amd64-${VERSION}.tar.bz2"
tar -xf teamspeak3-server_linux_amd64-${VERSION}.tar.bz2
mv teamspeak3-server_linux_amd64 ~/ts3server
cd ~/ts3server
05

3. Accept the license

bash
touch ~/ts3server/.ts3server_license_accepted
06

4. First run

bash
~/ts3server/ts3server_minimal_runscript.sh start

On first run you'll see:

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=XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

Copy and save the token, it won't be shown again.

  • Server Admin Token → save it, needed for admin permissions
  • Virtual Server Token: for the first channel
07

5. systemd service (automatic startup)

bash
exit  # return to root
sudo nano /etc/systemd/system/teamspeak.service
ini
[Unit]
Description=TeamSpeak 3 Server
After=network.target

[Service]
User=teamspeak
WorkingDirectory=/home/teamspeak/ts3server
ExecStart=/home/teamspeak/ts3server/ts3server_linux_amd64 inifile=ts3server.ini
ExecStop=/home/teamspeak/ts3server/ts3server_linux_amd64 stop
PIDFile=/home/teamspeak/ts3server/ts3server.pid
Restart=on-failure
RestartSec=10

[Install]
WantedBy=multi-user.target
bash
sudo systemctl enable teamspeak
sudo systemctl start teamspeak
sudo systemctl status teamspeak
08

6. Open ports

bash
sudo ufw allow 9987/udp    # Voice port (UDP)
sudo ufw allow 10011/tcp   # ServerQuery (telnet/raw)
sudo ufw allow 30033/tcp   # File transfer
09

7. Configuration (ts3server.ini)

bash
nano ~/ts3server/ts3server.ini
ini
machine_id=
default_voice_port=9987
voice_ip=0.0.0.0
licensepath=
filetransfer_port=30033
filetransfer_ip=0.0.0.0
query_port=10011
query_ip=127.0.0.1    # limit query to localhost for security
query_ip_whitelist=query_ip_whitelist.txt
logpath=logs/
logquerycommands=0
dbsqlpath=sql/
dbsqlcreatepath=create_tables/
licensepath=
createinifile=0
inifile=ts3server.ini
query_skipbruteforcecheck=0
10

8. Connect to the server

  • Open TeamSpeak 3 on your PC
  • Connections → Connect
  • Address: IP_VPS:9987
  • Nickname: your name
  • On first access: insert the admin token in Permissions → Use Privilege Key
11

9. Backup

bash
# Complete TS3 server backup
tar -czf ~/ts3-backup-$(date +%Y%m%d).tar.gz ~/ts3server/

# Important files:
# ~/ts3server/ts3server.sqlitedb : database (users, channels, permissions)
# ~/ts3server/ts3server.ini      : configuration
# ~/ts3server/files/             : files uploaded by clients
12

10. Update TeamSpeak

bash
sudo systemctl stop teamspeak

# Backup database
cp ~/ts3server/ts3server.sqlitedb ~/ts3server.sqlitedb.bak

# Download new version
VERSION="3.13.7"  # update with latest version
cd ~
wget "https://files.teamspeak-services.com/releases/server/${VERSION}/teamspeak3-server_linux_amd64-${VERSION}.tar.bz2"
tar -xf teamspeak3-server_linux_amd64-${VERSION}.tar.bz2

# Copy new files keeping database
cp teamspeak3-server_linux_amd64/* ~/ts3server/ --no-clobber
cp ts3server.sqlitedb.bak ~/ts3server/ts3server.sqlitedb

sudo systemctl start teamspeak
13

Tips & Tweaks

Bandwidth Limiting

Prevent excessive bandwidth in ts3server.ini:

ini
[virtualserver1]
# Voice bandwidth per client (bytes/sec)
# Adjust based on codec
virtualserver_max_voice_clients=100
virtualserver_bandwidth_limit=262144000  # 250 Mbps total

# File transfer
filetransfer_bandwidth_limit=1048576     # 1 Mbps

Codec Optimization

Popular codec settings for minimal bandwidth:

CodecQualityBandwidthUse Case
Speex (8 kHz)Low3 Kb/sLegacy, minimal bandwidth
CELT MonoMedium22 Kb/sDefault, balanced
OpusHigh20-30 Kb/sModern, best quality

Force codec in channel settings (via client or ServerQuery):

bash
# Via ServerQuery
channeledit cid=2 codec=4 codec_quality=10

ServerQuery Admin Commands

Connect via ServerQuery (telnet):

bash
telnet localhost 10011

# Login
login serveradmin password

# List virtual servers
serverlist

# List online clients on server 1
clientlist sid=1

# Send message to client
sendtextmessage targetmode=1 target=4 msg=Hello

# Kick client
kickclient clid=4 reasonid=5 reasonmsg=bye

# Ban IP (48 hours)
banadd ip=192.168.1.1 time=172800 banreason="Spam"

# Delete ban
bandel banid=5

# Get server info
serverinfo sid=1

# Logout
logout
quit

Database Backup Strategy

bash
# Manual backup
tar -czf ~/ts3-backup-$(date +%Y%m%d_%H%M).tar.gz ~/ts3server/ts3server.sqlitedb

# Automated daily backup at 2 AM
# Add to root crontab: crontab -e
0 2 * * * su - teamspeak -c "tar -czf ~/backups/ts3-db-\$(date +\%Y\%m\%d).tar.gz ~/ts3server/ts3server.sqlitedb" 2>/dev/null

# Restore from backup
systemctl stop teamspeak
cp ~/ts3server.sqlitedb.backup ~/ts3server/ts3server.sqlitedb
systemctl start teamspeak

Permission Management

Common permission groups and their use:

GroupPurpose
adminFull server control
moderatorKick/ban clients, manage channels
channelcommanderTemporary channel admin
guestStandard client

Create custom groups via ServerQuery:

bash
servergroupadd name="Trusted" type=1
servergroupaddperm sgid=7 permid=4 permvalue=1

Monitoring Commands

bash
# Server status
systemctl status teamspeak

# Live logs
journalctl -u teamspeak -f

# Check active connections
ss -tulnp | grep 9987

# Database size
du -h ~/ts3server/ts3server.sqlitedb

# List all bans
cat ~/ts3server/ts3server.sqlitedb | sqlite3 "SELECT * FROM bans;"

Performance Tuning

For high-player servers:

ini
[virtualserver1]
# Reduce query overhead
virtualserver_log_query=0

# Connection optimization
virtualserver_ask_for_privilegekey=0
virtualserver_max_channels=999

# Resource limits
virtualserver_complain_autoban_count=4
virtualserver_complain_autoban_time=1200

Port & Firewall Optimization

If behind restrictive firewall, use single port mode:

bash
# server.cfg
query_port=9988         # Different from voice port
filetransfer_port=9988  # Reuse query port

Then open firewall:

bash
ufw allow 9987/udp      # Voice
ufw allow 9988/tcp      # Query + file transfer

DeluxHost, gegründet 2023, bietet hochwertige Hosting-Lösungen für verschiedene digitale Anforderungen. Wir bieten Shared Hosting, VPS und dedizierte Server mit erweiterter Sicherheit und globalen Rechenzentren.

© DeluxHost, Alle Rechte vorbehalten. | USt-IdNr.: IT17734661006
Alle Systeme betriebsbereit