Zum Hauptinhalt springen
S-EDV news
← Alle Anleitungen
📘 Anleitung Linux 13.06.2026 · 10 min Lesezeit

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.

Server-Racks im Rechenzentrum als Sinnbild für eine lokale Vektordatenbank

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:

PaketvCPURAMSSDPreis/MonatTS3-Nutzer (ca.)
VPS piko G11s1 vCore1 GB30 GB1,84 EURbis ~5
VPS 500 G122 vCores4 GB DDR5128 GB NVMe5,91 EURbis ~50
VPS 1000 G124 vCores8 GB DDR5256 GB NVMe~10–12 EURbis ~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:

RichtungProtokollPortAktionZweck
INGRESSUDP9987ACCEPTTS3 Sprache eingehend
EGRESSUDP9987ACCEPTTS3 Sprache ausgehend (UDP stateless!)
INGRESSTCP30033ACCEPTDateiübertragung
INGRESSTCP10011ACCEPTServerQuery (Raw/Telnet)
INGRESSTCP10080ACCEPTServerQuery (HTTP)
INGRESSTCP10443ACCEPTServerQuery (HTTPS)
INGRESSTCP41144ACCEPTTSDNS

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 (ergibt ts.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