TeamSpeak-Server auf einem netcup VPS einrichten – mit eigener Domain
Eigenen TeamSpeak 3-Sprachserver auf dem günstigen netcup VPS piko G11s betreiben, per systemd dauerhaft am Laufen halten und über einen A-Record im netcup CCP mit deiner eigenen Subdomain verbinden.

Wer seine Gaming-Gruppe, sein Vereinsteam oder seine Remote-Mannschaft mit einem eigenen Sprachserver versorgen möchte, muss dafür keine monatliche Gebühr an einen Hosting-Dienst zahlen. Ein TeamSpeak 3-Server läuft problemlos auf dem günstigsten netcup-Einstiegspaket – dem VPS piko G11s für 1,84 EUR/Monat. Diese Anleitung führt dich von der Servereinrichtung über den systemd-Dienst und die SCP-Firewall bis hin zum eigenen DNS-Eintrag, damit du dich künftig über ts.deinedomain.de verbindest – ohne Portnummer, ohne Umwege.
Voraussetzungen
- Netcup-Konto mit mindestens einem VPS (empfohlen: VPS piko G11s ab 1,84 EUR/Monat für bis zu ~5 gleichzeitige Nutzer, oder VPS 500 G12 ab 5,91 EUR/Monat für bis zu ~50 Nutzer)
- Ubuntu 22.04 LTS als Betriebssystem auf dem VPS (gemäß netcup-Empfehlung)
- Eine bei netcup verwaltete Domain für den Subdomain-Eintrag im CCP
- SSH-Zugang zum VPS (Root-Passwort aus dem SCP oder SSH-Key)
- TeamSpeak 3-Client auf dem eigenen Rechner zum Verbindungstest
- ca. 45 Minuten Zeit
Netcup VPS-Pakete im Vergleich
Der VPS 200, der in älteren netcup-Tutorials auftaucht, ist nicht mehr im Sortiment. Das aktuelle Einstiegspaket ist der VPS piko G11s. Hier eine Übersicht relevanter Pakete für den TeamSpeak-Betrieb:
| Paket | vCPU | RAM | SSD | Preis/Monat | TS3-Nutzer (ca.) |
|---|---|---|---|---|---|
| VPS piko G11s | 1 vCore | 1 GB | 30 GB | 1,84 EUR | bis ~5 |
| VPS 500 G12 | 2 vCores | 4 GB DDR5 | 128 GB NVMe | 5,91 EUR | bis ~50 |
| VPS 1000 G12 | 4 vCores | 8 GB DDR5 | 256 GB NVMe | ~10–12 EUR | bis ~100+ |
TeamSpeak 3 benötigt im Leerlauf nur etwa 50–150 MB RAM. Für kleine Gruppen bis fünf Personen ist der VPS piko G11s mit 1 GB RAM ausreichend. Wächst die Nutzerzahl, kannst du jederzeit über das CCP auf ein größeres Paket upgraden – ohne Neuinstallation.
Schritt 1: System aktualisieren und teamspeak-User anlegen
Melde dich per SSH als root an deinem VPS an und aktualisiere zunächst das System. Anschließend legst du einen dedizierten Benutzer ohne Login-Shell und ohne Passwort an. Den TS3-Server niemals als root zu betreiben, ist Pflicht – neuere Versionen verweigern den Start sonst komplett.
sudo -s
apt update -y && apt upgrade -y
adduser --disabled-password --gecos "" teamspeak
Verifizieren: Mit id teamspeak prüfst du, ob der User angelegt wurde. Die Ausgabe zeigt UID, GID und Gruppeninformationen.
Schritt 2: TS3-Server herunterladen und einrichten
Wechsle in den teamspeak-User, lade das aktuelle Server-Paket (Version 3.13.8 für Linux amd64) von der offiziellen Quelle herunter und entpacke es. Die SHA256-Prüfsumme lautet a3c4658e09892d3dbd8ea752d0de42dc7d111bf44d09721927f0f4782496eb2d – prüfe sie mit sha256sum, wenn du auf Nummer sicher gehen willst. Beachte unbedingt den führenden Punkt bei der Lizenzdatei: ohne .ts3server_license_accepted startet der Server nicht.
sudo su - teamspeak
cd ~
wget https://files.teamspeak-services.com/releases/server/3.13.8/teamspeak3-server_linux_amd64-3.13.8.tar.bz2
tar xvf teamspeak3-server_linux_amd64-3.13.8.tar.bz2
rm teamspeak3-server_linux_amd64-3.13.8.tar.bz2
mv teamspeak3-server_linux_amd64/* .
rmdir teamspeak3-server_linux_amd64
touch .ts3server_license_accepted
exit
Verifizieren: Als root mit ls -la /home/teamspeak/ prüfen – du siehst die Datei .ts3server_license_accepted (mit Punkt!) und ts3server_startscript.sh.
Schritt 3: systemd-Service erstellen
Damit der TS3-Server automatisch startet und nach einem Absturz oder Reboot selbsttätig wieder hochkommt, richtest du einen systemd-Dienst ein. Der Parameter Restart=always kombiniert mit RestartSec=15 sorgt dafür, dass systemd nach einem unerwarteten Beenden 15 Sekunden wartet und dann neu startet – das verhindert eine Restart-Endlosschleife bei Konfigurationsfehlern.
Lege als root die Datei /etc/systemd/system/teamspeak.service mit folgendem Inhalt an:
[Unit]
Description=TeamSpeak 3 Server
After=network.target
[Service]
WorkingDirectory=/home/teamspeak
User=teamspeak
ExecStart=/home/teamspeak/ts3server_startscript.sh start inifile=ts3server.ini
ExecStop=/home/teamspeak/ts3server_startscript.sh stop
PIDFile=/home/teamspeak/ts3server.pid
RestartSec=15
Restart=always
[Install]
WantedBy=multi-user.target
Schritt 4: Service aktivieren, starten und Admin-Token sichern
Lade die systemd-Konfiguration neu, aktiviere den Dienst für den Autostart und starte ihn. Direkt danach rufst du den Status ab – dort erscheint beim allerersten Start der Server-Admin-Token. Dieser Token wird nur einmalig angezeigt und ist dein Schlüssel zu den Serverrechten im TeamSpeak-Client. Notiere ihn sofort.
systemctl daemon-reload
systemctl enable teamspeak
systemctl start teamspeak
systemctl status teamspeak
In der Statusausgabe findest du eine Zeile der Form token=XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX. Falls du ihn in der Statusausgabe nicht mehr siehst, hilft ein Blick in die Log-Datei oder das Journal:
journalctl -u teamspeak | grep token
# alternativ:
grep -r "token=" /home/teamspeak/logs/
Verifizieren: systemctl is-active teamspeak gibt active aus. Mit ss -ulnp | grep 9987 siehst du, dass der Prozess auf UDP-Port 9987 lauscht.
Schritt 5: SCP-Firewall in netcup konfigurieren
Die netcup SCP-Firewall ist für TCP zustandsbehaftet (Antwortpakete werden automatisch durchgelassen), für UDP jedoch nicht. Das ist die häufigste Fehlerquelle: Wer für Port 9987/UDP nur eine INGRESS-Regel anlegt, kann sich zwar verbinden, aber keine Sprachpakete austauschen. Du brauchst für UDP zwingend beide Richtungen.
Navigation im SCP: Server auswählen → „Firewall Policies" → „Create Firewall Policy" (Name z. B. teamspeak-ts3), dann folgende Regeln anlegen:
| Richtung | Protokoll | Port | Aktion | Zweck |
|---|---|---|---|---|
| INGRESS | UDP | 9987 | ACCEPT | TS3 Sprache eingehend |
| EGRESS | UDP | 9987 | ACCEPT | TS3 Sprache ausgehend (UDP stateless!) |
| INGRESS | TCP | 30033 | ACCEPT | Dateiübertragung |
| INGRESS | TCP | 10011 | ACCEPT | ServerQuery (Raw/Telnet) |
| INGRESS | TCP | 10080 | ACCEPT | ServerQuery (HTTP) |
| INGRESS | TCP | 10443 | ACCEPT | ServerQuery (HTTPS) |
| INGRESS | TCP | 41144 | ACCEPT | TSDNS |
Policy auf den Server anwenden: Server → „Firewall" → „Edit Policies" → Policy per Pfeil in das rechte Panel ziehen → „Apply" → „Save".
Die SCP-Firewall ist ab Server-Generation 9 verfügbar und erlaubt bis zu 500 aktive Regeln pro Netzwerkschnittstelle. Für einen dedizierten TS3-Server ist das mehr als ausreichend.
Schritt 6: UFW auf dem VPS einrichten (optional)
Neben der vorgelagerten SCP-Firewall empfiehlt sich eine zweite Sicherheitsschicht direkt auf dem VPS. Die SCP-Firewall filtert bereits im netcup-Netz, UFW schützt zusätzlich auf Betriebssystemebene. Beide Schichten sind unabhängig voneinander – wer nur eine konfiguriert, ist nicht vollständig abgesichert.
ufw allow 22/tcp
ufw allow 9987/udp
ufw allow 30033/tcp
ufw allow 10011/tcp
ufw allow 10080/tcp
ufw allow 10443/tcp
ufw allow 41144/tcp
ufw enable
Verifizieren: ufw status verbose zeigt alle aktiven Regeln. SSH auf Port 22 muss unbedingt vor ufw enable freigegeben sein, sonst sperrst du dich aus.
Eine ausführliche Anleitung zur Kombination von SCP-Firewall und UFW findest du unter netcup SCP-Firewall einrichten: Policies, Regeln und Zusammenspiel mit ufw.
Schritt 7: IPv4-Adresse des VPS ermitteln
Für den DNS-Eintrag brauchst du die öffentliche IPv4-Adresse deines VPS. Du findest sie im SCP unter Server auswählen → „Network". Alternativ reicht auf dem Server selbst:
ip -4 addr show eth0 | grep inet
Schritt 8: A-Record im netcup CCP anlegen
Melde dich im netcup CCP (customercontrolpanel.de) an und navigiere zu Domains → Lupe-Icon bei deiner Domain → Tab „DNS". Füge einen neuen Eintrag hinzu:
- Host:
ts(ergibtts.deinedomain.de) - Type: A
- Destination: IPv4-Adresse des VPS (aus Schritt 7)
Klicke auf „Save DNS Records". Netcup propagiert den Eintrag intern innerhalb von etwa 10 Minuten. Die weltweite DNS-Propagierung kann TTL-abhängig bis zu 48 Stunden dauern. In dieser Zeit verbindest du dich testweise noch per IP-Adresse direkt.
Verifizieren: Nach der internen Propagierung: nslookup ts.deinedomain.de gibt die IPv4 deines VPS zurück.
Mehr zu DNS-Records bei netcup erklärt die Anleitung DNS-Records bei netcup im CCP verwalten: A, AAAA, CNAME, MX und TXT richtig setzen.
Schritt 9: Verbindungstest mit dem TeamSpeak-Client
Öffne deinen TeamSpeak 3-Client und klicke auf „Verbinden". Trage als Serveradresse ts.deinedomain.de ein (oder zur Not noch die IP-Adresse). Port 9987 ist der Standard und muss nicht angegeben werden. Beim allerersten Verbinden wirst du nach dem Admin-Token gefragt – trage den Token aus Schritt 4 ein, um Serverrechte zu erhalten.
Verifizieren: Der Client zeigt „Verbunden" und der Channel-Browser lädt. In der SCP-Firewall-Ansicht kannst du optional Traffic-Statistiken prüfen.
VPS upgraden, wenn die Nutzerzahl wächst
Stößt der VPS piko G11s an seine Grenzen – erkennbar an hoher CPU-Last oder Speicherknappheit unter Last –, ist das Upgrade über das CCP unkompliziert: CCP → „Server" → gewünschten VPS auswählen → „Upgrade" → neues Paket auswählen → bestätigen. Der Server wird dabei kurz neugestartet, alle Daten und Konfigurationen bleiben erhalten. Eine Neuinstallation ist nicht nötig.
Den Upgrade-Prozess und weitere CCP-Funktionen beschreibt die Schwester-Anleitung netcup VPS-Generation upgraden: Instance Upgrade im CCP ohne Datenverlust.
TeamSpeak-Server auf eine neue Version aktualisieren
Erscheint eine neue TS3-Server-Version, gehst du so vor:
# Als root: Dienst stoppen
systemctl stop teamspeak
# Als teamspeak-User: neue Version herunterladen
sudo su - teamspeak
cd ~
wget https://files.teamspeak-services.com/releases/server/NEUE_VERSION/teamspeak3-server_linux_amd64-NEUE_VERSION.tar.bz2
tar xvf teamspeak3-server_linux_amd64-NEUE_VERSION.tar.bz2
# Dateien ins Heimverzeichnis kopieren (ts3server.ini und Datenbank NICHT überschreiben!)
cp teamspeak3-server_linux_amd64/ts3server_linux_amd64 /home/teamspeak/
cp teamspeak3-server_linux_amd64/ts3server_startscript.sh /home/teamspeak/
rm -rf teamspeak3-server_linux_amd64*
exit
# Als root: Dienst starten
systemctl start teamspeak
Wichtig: Die bestehende ts3server.ini und die SQLite-Datenbank ts3server.sqlitedb niemals beim Update überschreiben – dort liegen alle Kanäle, Benutzer und Einstellungen.
Troubleshooting / Typische Fehler
Clients können sich nicht verbinden, obwohl der Server läuft
Ursache Nummer eins: Port 9987/UDP ist in der SCP-Firewall nur als INGRESS, nicht aber als EGRESS freigegeben. Die netcup SCP-Firewall behandelt UDP stateless – ohne EGRESS-Regel kommen Antwortpakete nicht beim Client an. Lösung: EGRESS-Regel für UDP 9987 nachträglich in der Policy anlegen und „Apply" klicken.
Server startet nicht – „license file not found"
Die Lizenzdatei heißt .ts3server_license_accepted mit führendem Punkt. Ein häufiger Fehler ist, die Datei ohne Punkt anzulegen. Prüfen mit ls -la /home/teamspeak/ – der Punkt muss sichtbar sein. Anlegen: sudo -u teamspeak touch /home/teamspeak/.ts3server_license_accepted.
Server startet nicht – „permission denied" oder läuft als root
TeamSpeak 3 verweigert den Start, wenn er als root gestartet wird. Die systemd-Service-Datei muss zwingend User=teamspeak enthalten. Prüfen: systemctl cat teamspeak | grep User.
Admin-Token nicht mehr auffindbar
Der Token erscheint zwar beim ersten Start prominent, aber er ist auch nachträglich abrufbar: journalctl -u teamspeak | grep token oder in der Log-Datei unter /home/teamspeak/logs/ts3server_*.log. Ist er dort auch nicht mehr vorhanden, müssen die Serverdaten zurückgesetzt werden (Datenverlust!).
systemd ignoriert Änderungen an der Service-Datei
Nach jeder Änderung an /etc/systemd/system/teamspeak.service muss systemctl daemon-reload ausgeführt werden, bevor systemctl restart teamspeak die neue Konfiguration lädt.
DNS-Name funktioniert noch nicht
Während der Propagierungsphase (intern ~10 Min., global bis 48 Std.) ist die Subdomain noch nicht überall auflösbar. Verbinde dich in dieser Zeit direkt per IPv4-Adresse des VPS. Den aktuellen Status der Propagierung kannst du mit Online-Tools wie dnschecker.org prüfen.
Häufige Fragen
Welche IP-Adresse trage ich im A-Record ein?
Die öffentliche IPv4-Adresse des VPS – ablesbar im netcup SCP unter Server auswählen → „Network". Dort steht sie unter „IPv4 Address".
Reicht der VPS piko G11s (1 GB RAM) für TeamSpeak?
Ja, für kleine Gruppen bis etwa fünf gleichzeitige Nutzer reicht 1 GB RAM problemlos. TeamSpeak 3 benötigt im Leerlauf ca. 50–150 MB RAM. Bei größeren Gruppen (20+ Nutzer) empfiehlt sich der VPS 500 G12 mit 4 GB RAM.
Muss ich den Port beim Verbinden angeben?
Nein. Port 9987 ist der Standard-TeamSpeak-Port und wird vom Client implizit verwendet. Die Eingabe von ts.deinedomain.de ohne Portnummer reicht aus.
Kann ich mehrere virtuelle TeamSpeak-Server auf einem VPS betreiben?
Ja, der TeamSpeak 3-Server unterstützt mehrere virtuelle Server auf einer Instanz. Die Verwaltung erfolgt über das ServerQuery-Interface (Port 10011/TCP). Für kleine bis mittlere Setups reicht eine einzelne Instanz vollständig.
Was passiert beim VPS-Upgrade mit meinen TS3-Daten?
Das Upgrade über das CCP ist ein „Instance Upgrade" – das Betriebssystem und alle Daten bleiben erhalten, nur die Hardware-Ressourcen werden erhöht. Der Server wird dabei kurz neugestartet, der systemd-Dienst startet danach automatisch wieder dank systemctl enable teamspeak.
Fazit
Ein eigener TeamSpeak 3-Server auf netcup ist in unter einer Stunde einsatzbereit und kostet ab 1,84 EUR/Monat – ohne Nutzerlimits, ohne monatliche Hostinggebühren pro Slot. Der kritische Punkt ist die SCP-Firewall: UDP-Port 9987 braucht zwingend INGRESS und EGRESS, während für TCP-Ports eine reine INGRESS-Regel genügt. Wer das einmal verstanden hat, hat mit der netcup-Firewall keine Probleme mehr. Mit dem A-Record im CCP und dem systemd-Dienst mit Autorestart läuft der Server danach stabil und wartungsarm – und wächst mit, wenn die Community größer wird.
Weiterführende Anleitungen und Quellen
- netcup SCP-Firewall einrichten: Policies, Regeln und Zusammenspiel mit ufw
- DNS-Records bei netcup im CCP verwalten: A, AAAA, CNAME, MX und TXT richtig setzen
- netcup VPS-Generation upgraden: Instance Upgrade im CCP ohne Datenverlust
- systemd-Service selbst erstellen und verwalten
- VPS absichern und härten: Anleitung mit UFW, SSH-Keys und Fail2Ban
- Erster eigener Cloud-Server: VPS bei Hetzner oder Netcup aufsetzen und absichern
- netcup Community Tutorial: TeamSpeak-Server installieren (englisch)
- netcup Helpcenter: SCP-Firewall-Dokumentation
- TeamSpeak: Offizielle Server-Downloads