Menu
 

Advanced Configuration - TeamSpeak Wiki

TeamSpeak: Advanced Configuration Guide

Deep dive into TeamSpeak server configuration files, advanced settings, and optimization techniques for better performance and customization.

Configuration File Structure

Primary Configuration Files

File Purpose Location
ts3server.ini Main server configuration Server root directory
ts3server.sqlitedb Database (users, channels, permissions) Server root directory
query_ip_whitelist.txt ServerQuery IP whitelist Server root directory
query_ip_blacklist.txt ServerQuery IP blacklist Server root directory

ts3server.ini Configuration

Complete Configuration Example

# TeamSpeak 3 Server Configuration
# Edit with caution - backup before changes

# Machine ID (auto-generated, do not modify)
machine_id=

# Voice Server Settings
default_voice_port=9987
voice_ip=0.0.0.0
create_default_virtualserver=1

# File Transfer Settings
filetransfer_port=30033
filetransfer_ip=0.0.0.0
filetransfer_bandwidth_sent=6553600
filetransfer_bandwidth_received=6553600

# ServerQuery Settings
query_port=10011
query_ip=0.0.0.0
query_protocols=raw,ssh
query_ssh_rsa_host_key=ssh_host_rsa_key
query_timeout=300
query_pool_size=2

# Logging Settings
logpath=logs/
logquerycommands=1
logappend=0
query_skipbruteforcecheck=0

# Database Settings
dbplugin=ts3db_sqlite3
dbpluginparameter=ts3server.sqlitedb
dbsqlpath=sql/
dbsqlcreatepath=create_sqlite/
dbconnections=10
dbclientkeepdays=90
dblogkeepdays=90

# License Settings
licensepath=
license_accepted=1

# Advanced Settings
serverquerydocs_path=serverquerydocs/
query_buffer_mb=20

Key Configuration Parameters

Voice Server Configuration

Parameter Default Description
default_voice_port 9987 UDP port for voice communication
voice_ip 0.0.0.0 IP to bind (0.0.0.0 = all interfaces)
create_default_virtualserver 1 Auto-create virtual server on startup

File Transfer Configuration

Parameter Default Recommended
filetransfer_bandwidth_sent 6553600 10485760 (10 MB/s)
filetransfer_bandwidth_received 6553600 10485760 (10 MB/s)
filetransfer_port 30033 30033 (standard)

Virtual Server Configuration

ServerQuery Commands for Configuration

# Connect to ServerQuery
telnet localhost 10011

# Login
login serveradmin YOUR_PASSWORD

# Select virtual server
use sid=1

# Configure server name
serveredit virtualserver_name=My\ TeamSpeak\ Server

# Set max clients
serveredit virtualserver_maxclients=512

# Set reserved slots
serveredit virtualserver_reserved_slots=5

# Configure welcome message
serveredit virtualserver_welcomemessage=Welcome\ to\ our\ server!

# Set host message
serveredit virtualserver_hostmessage=Server\ Rules:\n1.\ Be\ respectful\n2.\ No\ spam

# Configure codec encryption
serveredit virtualserver_codec_encryption_mode=2

Virtual Server Parameters

Parameter Values Purpose
virtualserver_maxclients 1-32768 Maximum connected users
virtualserver_reserved_slots 0-100 Slots for priority users
virtualserver_codec_encryption_mode 0-2 0=disabled, 1=optional, 2=forced
virtualserver_antiflood_points_needed_warning 1-1000 Anti-flood threshold

Performance Optimization

Database Optimization

# Optimize SQLite database
sqlite3 ts3server.sqlitedb "VACUUM;"
sqlite3 ts3server.sqlitedb "ANALYZE;"

# Set database parameters in ts3server.ini
dbconnections=10
dbclientkeepdays=30
dblogkeepdays=30

# Enable WAL mode for better performance
sqlite3 ts3server.sqlitedb "PRAGMA journal_mode=WAL;"

Memory and CPU Optimization

# Increase query buffer (ts3server.ini)
query_buffer_mb=50

# Optimize database connections
dbconnections=20

# Reduce log retention
dbclientkeepdays=30
dblogkeepdays=30
logappend=0

# Linux: Set CPU affinity
taskset -c 0,1 ./ts3server_startscript.sh start

Network Optimization

🌐 Bandwidth Management

Increase file transfer limits for better performance

filetransfer_bandwidth_sent=20971520
filetransfer_bandwidth_received=20971520

📡 Connection Limits

Optimize for high user counts

virtualserver_maxclients=512
virtualserver_reserved_slots=10

Advanced Features

ServerQuery SSH Configuration

# Enable SSH for ServerQuery (more secure than telnet)
# In ts3server.ini:
query_protocols=raw,ssh
query_ssh_rsa_host_key=ssh_host_rsa_key

# Generate SSH key
ssh-keygen -t rsa -f ssh_host_rsa_key -N ""

# Connect via SSH
ssh -p 10022 serveradmin@localhost

TSDNS Configuration

# Create tsdns_settings.ini
[TSDNS]
ts.example.com=voice.example.com:9987
gaming.example.com=voice.example.com:9988

# Start TSDNS
./tsdnsserver_linux_amd64

# Configure DNS
# A record: ts.example.com -> server IP
# SRV record: _ts3._udp.ts.example.com -> server:9987

Multiple Virtual Servers

# Create additional virtual server via ServerQuery
servercreate virtualserver_name=Second\ Server \
    virtualserver_port=9988 \
    virtualserver_maxclients=100

# List all virtual servers
serverlist

# Start/stop virtual servers
serverstart sid=2
serverstop sid=2

# Delete virtual server
serverdelete sid=2

Anti-Flood Configuration

Flood Protection Settings

Parameter Default Recommended
antiflood_points_needed_warning 250 150
antiflood_points_needed_kick 500 300
antiflood_points_needed_ban 1000 600
antiflood_points_tick_reduce 5 5

Configure via ServerQuery

# Set anti-flood parameters
serveredit virtualserver_antiflood_points_needed_warning=150
serveredit virtualserver_antiflood_points_needed_kick=300
serveredit virtualserver_antiflood_points_needed_ban=600
serveredit virtualserver_antiflood_points_tick_reduce=5

Logging Configuration

Log Levels and Rotation

# ts3server.ini logging settings
logpath=logs/
logquerycommands=1
logappend=0
dblogkeepdays=30

# Log rotation script
#!/bin/bash
LOG_DIR="/home/teamspeak/teamspeak3-server_linux_amd64/logs"
ARCHIVE_DIR="/backups/teamspeak/logs"

# Compress old logs
find "$LOG_DIR" -name "*.log" -mtime +7 -exec gzip {} \;

# Move to archive
find "$LOG_DIR" -name "*.log.gz" -mtime +30 -exec mv {} "$ARCHIVE_DIR" \;

# Delete very old archives
find "$ARCHIVE_DIR" -name "*.log.gz" -mtime +90 -delete

Query Command Logging

# Enable query command logging
logquerycommands=1

# View query logs
tail -f logs/ts3server_*_query.log

# Disable for performance (production)
logquerycommands=0

Automated Configuration Management

Configuration Backup Script

#!/bin/bash
# backup_config.sh

BACKUP_DIR="/backups/teamspeak/config"
TS_DIR="/home/teamspeak/teamspeak3-server_linux_amd64"
DATE=$(date +%Y%m%d_%H%M%S)

mkdir -p "$BACKUP_DIR"

# Backup configuration files
tar -czf "$BACKUP_DIR/config_$DATE.tar.gz" \
    "$TS_DIR/ts3server.ini" \
    "$TS_DIR/query_ip_whitelist.txt" \
    "$TS_DIR/query_ip_blacklist.txt" \
    "$TS_DIR/ssh_host_rsa_key"

echo "Configuration backed up: config_$DATE.tar.gz"

Configuration Validation Script

#!/bin/bash
# validate_config.sh

CONFIG_FILE="ts3server.ini"

# Check if file exists
if [ ! -f "$CONFIG_FILE" ]; then
    echo "ERROR: $CONFIG_FILE not found"
    exit 1
fi

# Validate required parameters
REQUIRED_PARAMS=("default_voice_port" "query_port" "filetransfer_port")

for param in "${REQUIRED_PARAMS[@]}"; do
    if ! grep -q "^$param=" "$CONFIG_FILE"; then
        echo "WARNING: Missing parameter: $param"
    fi
done

# Check port conflicts
VOICE_PORT=$(grep "^default_voice_port=" "$CONFIG_FILE" | cut -d= -f2)
QUERY_PORT=$(grep "^query_port=" "$CONFIG_FILE" | cut -d= -f2)
FT_PORT=$(grep "^filetransfer_port=" "$CONFIG_FILE" | cut -d= -f2)

if [ "$VOICE_PORT" == "$QUERY_PORT" ] || [ "$VOICE_PORT" == "$FT_PORT" ] || [ "$QUERY_PORT" == "$FT_PORT" ]; then
    echo "ERROR: Port conflict detected"
    exit 1
fi

echo "Configuration validation passed"

Common Configuration Issues

Issue Cause Solution
Server won't start Invalid configuration syntax Check ts3server.ini for typos
Query not accessible IP whitelist too restrictive Add your IP to query_ip_whitelist.txt
Poor performance Low database connections Increase dbconnections parameter
File transfer slow Bandwidth limits too low Increase filetransfer_bandwidth settings

Pro Tip: Always backup ts3server.ini before making changes. A single typo can prevent the server from starting.

Optimize your TeamSpeak server for peak performance. Host your TeamSpeak server with Supercraft for pre-optimized configurations.

Top