Skip to main content
This guide covers installing and running TeamSpeak 6 Server natively on Windows systems. This method is ideal for Windows-based hosting or local development.

System Requirements

  • Operating System: Windows 10, Windows 11, Windows Server 2016 or later
  • Architecture: x86_64 (64-bit)
  • RAM: Minimum 512 MB (1 GB+ recommended)
  • Disk Space: 100 MB for server files + space for database and logs
  • Network: Open ports 9987/UDP and 30033/TCP
  • .NET Framework: Not required (server is self-contained)

Installation

1

Download the server package

Download the latest TeamSpeak 6 Server for Windows from the official website:
  1. Visit the TeamSpeak Downloads page
  2. Download the Windows Server package (ZIP file)
  3. Save it to a location of your choice, such as C:\Downloads
The Windows server package is distributed as a ZIP archive that contains all necessary files.
2

Extract the archive

Extract the downloaded ZIP file:
  1. Right-click the downloaded ZIP file
  2. Select “Extract All…”
  3. Choose a destination folder (e.g., C:\TeamSpeak6-Server)
  4. Click “Extract”
Avoid paths with spaces or special characters to prevent potential issues.
3

Review the license

Before starting the server, read the LICENSE file in the extracted folder to understand the terms of use.
4

Start the server

There are two ways to start the server:
  1. Open Command Prompt (search for “cmd” in the Start menu)
  2. Navigate to the server directory:
cd C:\TeamSpeak6-Server
  1. Start the server:
tsserver.exe --accept-license
The server will start and display log output in the console window.
Important: Look for the ServerAdmin privilege key in the console output during the first startup. This key is displayed only once - copy and save it immediately!
5

Test the connection

With the server running:
  1. Download the TeamSpeak 6 Client
  2. Install and open the client
  3. Connect to localhost:9987 (or your server’s IP address)
  4. Use the ServerAdmin privilege key to gain admin access
If you can connect successfully, your server is working correctly!

Running as a Windows Service

For production use, you should run the server as a Windows service so it starts automatically and runs in the background.
1

Open PowerShell as Administrator

  1. Search for “PowerShell” in the Start menu
  2. Right-click “Windows PowerShell”
  3. Select “Run as administrator”
  4. Click “Yes” on the UAC prompt
2

Navigate to the server directory

cd C:\TeamSpeak6-Server
3

Install the server as a Windows service

Use the built-in NSSM (Non-Sucking Service Manager) or create a service using sc:
Create the service:
sc.exe create TeamSpeak6 binPath= "C:\TeamSpeak6-Server\tsserver.exe --accept-license" start= auto
Set the service description:
sc.exe description TeamSpeak6 "TeamSpeak 6 Server - Voice Communication"
Note the space after binPath= and start= - this is required by the sc command.
4

Start the service

Start the TeamSpeak 6 service:
Start-Service TeamSpeak6
Check the service status:
Get-Service TeamSpeak6
The status should show “Running”.
5

Configure automatic startup

Ensure the service starts automatically on boot:
Set-Service TeamSpeak6 -StartupType Automatic
6

Retrieve the ServerAdmin key

If this is the first startup, retrieve the ServerAdmin privilege key from the log files:
Get-Content "C:\TeamSpeak6-Server\logs\*" | Select-String -Pattern "serveradmin|privilege" -Context 0,2
Save this key securely.

Service Management

Use these PowerShell commands to manage your TeamSpeak 6 Server service:
Start-Service TeamSpeak6
Run PowerShell as Administrator to execute these service management commands.

Firewall Configuration

You need to configure Windows Firewall to allow TeamSpeak traffic:
1

Open PowerShell as Administrator

Right-click PowerShell and select “Run as administrator”.
2

Create firewall rules

Add firewall rules for the required ports:
# Allow TeamSpeak voice port (UDP)
New-NetFirewallRule -DisplayName "TeamSpeak 6 Voice" -Direction Inbound -Protocol UDP -LocalPort 9987 -Action Allow

# Allow file transfer port (TCP)
New-NetFirewallRule -DisplayName "TeamSpeak 6 File Transfer" -Direction Inbound -Protocol TCP -LocalPort 30033 -Action Allow

# Optional: WebQuery port
# New-NetFirewallRule -DisplayName "TeamSpeak 6 WebQuery" -Direction Inbound -Protocol TCP -LocalPort 10080 -Action Allow

# Optional: SSH Query port
# New-NetFirewallRule -DisplayName "TeamSpeak 6 SSH Query" -Direction Inbound -Protocol TCP -LocalPort 10022 -Action Allow
3

Verify firewall rules

Check that the rules were created:
Get-NetFirewallRule -DisplayName "TeamSpeak 6*" | Format-Table DisplayName, Enabled, Direction, Action
If you’re running the server on a cloud provider or behind a router, you’ll also need to configure port forwarding or security groups to allow external connections.

Configuration

You can configure the server using command-line arguments or a configuration file.

Using Command-Line Arguments

When running manually, add arguments to the command:
tsserver.exe --accept-license --default-voice-port 9987 --filetransfer-port 30033
For services, modify the service configuration:
sc.exe config TeamSpeak6 binPath= "C:\TeamSpeak6-Server\tsserver.exe --accept-license --default-voice-port 9987"

Using a Configuration File

Generate a default configuration file:
cd C:\TeamSpeak6-Server
tsserver.exe --write-config-file
This creates a tsserver.yaml file. Edit it with Notepad or your preferred text editor:
tsserver.yaml
server:
  accept-license: accept
  default-voice-port: 9987
  voice-ip:
    - 0.0.0.0
    - "::"
  filetransfer-port: 30033
  filetransfer-ip:
    - 0.0.0.0
    - "::"
  log-path: logs
  license-path: .
  
  database:
    plugin: sqlite3
    sql-path: sql/
    sql-create-path: sql/create_sqlite/
    client-keep-days: 30

  query:
    http:
      enable: false
      port: 10080
    ssh:
      enable: false
      port: 10022
After editing the configuration file, restart the service:
Restart-Service TeamSpeak6
For a complete list of configuration options, see the Configuration documentation.

Verification Steps

1

Check if the server process is running

Open Task Manager (Ctrl+Shift+Esc) and look for tsserver.exe in the Processes or Details tab.Or use PowerShell:
Get-Process tsserver
2

Check listening ports

Verify the server is listening on the correct ports:
netstat -ano | findstr "9987"
netstat -ano | findstr "30033"
You should see the ports in the LISTENING state.
3

Check service status

If running as a service:
Get-Service TeamSpeak6 | Format-List
The status should be “Running”.
4

Review log files

Check the log files in C:\TeamSpeak6-Server\logs for any errors or warnings:
Get-Content "C:\TeamSpeak6-Server\logs\ts3server_*.log" -Tail 50
5

Test client connection

  1. Download the TeamSpeak 6 Client
  2. Connect to your server’s IP address and port 9987
  3. Verify you can join and communicate

Updating the Server

1

Stop the server

If running as a service:
Stop-Service TeamSpeak6
If running manually, close the console window or press Ctrl+C.
2

Backup your data

Create a backup of your server directory:
Copy-Item -Path "C:\TeamSpeak6-Server" -Destination "C:\TeamSpeak6-Server-Backup-$(Get-Date -Format 'yyyyMMdd')" -Recurse
Always backup your server data before updating!
3

Download the new version

Download the latest TeamSpeak 6 Server package for Windows and extract it to a temporary location.
4

Replace the server files

  1. Copy tsserver.exe from the new version to C:\TeamSpeak6-Server
  2. Replace the sql directory with the new version
  3. Keep your existing tsserver.yaml, database files, and logs
# Example - adjust paths as needed
Copy-Item -Path "C:\Temp\teamspeak6-server-windows\tsserver.exe" -Destination "C:\TeamSpeak6-Server" -Force
Copy-Item -Path "C:\Temp\teamspeak6-server-windows\sql" -Destination "C:\TeamSpeak6-Server" -Recurse -Force
Do not replace configuration files, database files, or logs - only the binary and SQL files.
5

Start the server

Start-Service TeamSpeak6
Check the status:
Get-Service TeamSpeak6
Review the logs to ensure the update was successful:
Get-Content "C:\TeamSpeak6-Server\logs\ts3server_*.log" -Tail 50

Troubleshooting

Common causes and solutions:
  1. License not accepted: Ensure --accept-license is included in the command
  2. Port already in use: Check if another application is using ports 9987 or 30033:
netstat -ano | findstr "9987"
netstat -ano | findstr "30033"
  1. Permission issues: Run as Administrator or check file permissions
  2. Missing files: Verify all server files were extracted correctly
Check the Windows Event Viewer for detailed error messages:
  1. Open Event Viewer (search for “Event Viewer” in Start menu)
  2. Navigate to Windows Logs > Application
  3. Look for errors related to TeamSpeak6 service
Also check the service configuration:
sc.exe qc TeamSpeak6
  1. Verify the server is running:
Get-Process tsserver
  1. Check Windows Firewall rules:
Get-NetFirewallRule -DisplayName "TeamSpeak 6*"
  1. Test port connectivity:
Test-NetConnection -ComputerName localhost -Port 30033
  1. Ensure your router/firewall allows the required ports if connecting from outside your network
If you lost your ServerAdmin key:
  1. Stop the server
  2. Set a custom admin password by adding to your tsserver.yaml:
server:
  query:
    admin-password: your_secure_password
  1. Start the server and use ServerQuery to generate a new privilege key
Alternatively, check old log files:
Get-ChildItem "C:\TeamSpeak6-Server\logs\*.log" | ForEach-Object { Get-Content $_.FullName | Select-String "serveradmin|privilege" }
  1. Check the number of connected clients and channels
  2. Review log files for errors or warnings
  3. Consider adjusting thread settings in tsserver.yaml:
server:
  threads-voice-udp: 5  # Adjust based on CPU cores
  1. Monitor performance using Task Manager or Performance Monitor

Next Steps

Configuration

Learn how to customize your server settings

Server Management

Manage your server and virtual instances

Build docs developers (and LLMs) love