TeamSpeak-Server auf einem netcup VPS einrichten – mit eigener Domain
TeamSpeak-3-Server auf einem netcup-VPS einrichten: eigener Benutzer, systemd-Dienst, SCP-Firewall mit INGRESS- und EGRESS-Regel für UDP, A-Record im CCP und Verbindung über die eigene Subdomain.
Geprüft am 30.09.2026 · für TeamSpeak 3 Server 3.13.8
WerbelinksMit * markierte Links sind Werbelinks: Bei einem Kauf erhalten wir eine Provision, der Preis bleibt gleich. Mehr dazu

Ein eigener TeamSpeak-3-Server gibt Verein, Team oder Gaming-Gruppe einen Sprachserver unter eigener Kontrolle. Er braucht wenig Ressourcen und läuft schon auf dem kleinsten netcup-VPS. Diese Anleitung führt von der Installation über den systemd-Dienst und die SCP-Firewall bis zum DNS-Eintrag, sodass sich Ihre Nutzer über ts.ihredomain.de ohne Portangabe verbinden.
Voraussetzungen
- netcup-VPS mit x86_64-CPU: 1 vCore und 1 GB RAM genügen für kleine Gruppen, ab etwa 20 gleichzeitigen Nutzern 2 vCores und 4 GB RAM; 1 GB freier Speicher
- Ubuntu 22.04 oder 24.04 LTS
- 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
Die Tabelle ordnet typische Paketgrößen dem TeamSpeak-Bedarf zu. Paketnamen und Ausstattung ändern sich; maßgeblich ist das aktuelle netcup-Angebot.
| Paket | vCPU | RAM | SSD | TS3-Nutzer (ca.) |
|---|---|---|---|---|
| VPS piko G11s | 1 vCore | 1 GB | 30 GB | bis ~5 |
| VPS 500 G12 | 2 vCores | 4 GB DDR5 | 128 GB NVMe | bis ~50 |
| VPS 1000 G12 | 4 vCores | 8 GB DDR5 | 256 GB NVMe | bis ~100+ |
TeamSpeak 3 benötigt im Leerlauf nur etwa 50–150 MB RAM. Wächst die Nutzerzahl, erweitern Sie den VPS über das CCP ohne Neuinstallation (siehe unten).
Schritt 1: System aktualisieren und teamspeak-User anlegen
Melden Sie sich per SSH als root an, aktualisieren Sie das System und legen Sie einen eigenen Benutzer ohne Passwort an. Betreiben Sie den TS3-Server aus Sicherheitsgründen nie als root.
sudo -s
apt update -y && apt upgrade -y
adduser --disabled-password --gecos "" teamspeakVerifizieren: id teamspeak gibt UID und GID des neuen Benutzers aus.
Schritt 2: TS3-Server herunterladen und einrichten
Wechseln Sie zum Benutzer teamspeak, laden Sie das Server-Paket 3.13.8 für Linux amd64 herunter, prüfen Sie die SHA256-Prüfsumme (a3c4658e09892d3dbd8ea752d0de42dc7d111bf44d09721927f0f4782496eb2d, laut teamspeak.com/versions/server.json) und entpacken Sie es. Die Lizenzdatei .ts3server_license_accepted beginnt mit einem Punkt; ohne sie 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
sha256sum 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
exitVerifizieren: sha256sum zeigt den oben genannten Wert. ls -la /home/teamspeak/ listet .ts3server_license_accepted (mit Punkt), ts3server und ts3server_startscript.sh.
Schritt 3: systemd-Service erstellen
Ein systemd-Dienst startet den Server beim Booten und nach einem Absturz neu; RestartSec=15 wartet dabei 15 Sekunden. Weil das Startskript den Server in den Hintergrund schickt und sich beendet, braucht der Dienst Type=forking. Ohne diese Zeile wertet systemd das Ende des Skripts als Dienstende und beendet den Server gleich wieder.
Legen Sie als root die Datei /etc/systemd/system/teamspeak.service mit folgendem Inhalt an:
[Unit]
Description=TeamSpeak 3 Server
After=network.target
[Service]
Type=forking
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.targetVerifizieren: systemd-analyze verify /etc/systemd/system/teamspeak.service gibt keine Fehlermeldung aus.
Schritt 4: Service aktivieren, starten und Admin-Token sichern
Laden Sie die systemd-Konfiguration neu, aktivieren und starten Sie den Dienst. Beim allerersten Start erzeugt der Server den Admin-Token (Privilege Key) für die Serverrechte im Client. Notieren Sie ihn sofort.
systemctl daemon-reload
systemctl enable teamspeak
systemctl start teamspeak
systemctl status teamspeakDer Token steht in einer Zeile der Form token=XXXXXXXX… im Journal und in der ersten Log-Datei:
journalctl -u teamspeak | grep token
# alternativ:
grep -r "token=" /home/teamspeak/logs/Verifizieren: systemctl is-active teamspeak gibt active aus. ss -ulnp | grep 9987 zeigt ts3server auf UDP-Port 9987.
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. Für 9987/UDP brauchen Sie deshalb eine INGRESS- und eine EGRESS-Regel (netcup Helpcenter, Firewall). Öffnen Sie nur, was Clients brauchen: Sprache und Dateiübertragung. ServerQuery (10011, 10022, 10080, 10443) erlaubt die Fernverwaltung des Servers und bleibt von außen geschlossen; Sie erreichen es bei Bedarf per SSH-Tunnel. TSDNS (41144) brauchen Sie mit einem A-Record auf den Standardport nicht.
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 | 22 | ACCEPT | SSH (falls die Policy nicht schon eine SSH-Regel enthält) |
Policy auf den Server anwenden: Server → „Firewall“ → „Edit Policies“ → Policy per Pfeil in das rechte Panel ziehen → „Apply“ → „Save“.
Verifizieren: Die Policy steht im SCP unter „Firewall“ als angewendet; von einem anderen Rechner meldet nc -vz IHRE-IP 30033 „succeeded“.
Schritt 6: UFW auf dem VPS einrichten (optional)
UFW filtert zusätzlich auf dem VPS selbst und greift auch dann, wenn die SCP-Policy einmal geändert wird.
ufw allow 22/tcp
ufw allow 9987/udp
ufw allow 30033/tcp
ufw enableVerifizieren: ufw status verbose zeigt genau die drei Regeln. SSH muss vor ufw enable freigegeben sein, sonst sperren Sie sich aus.
Das Zusammenspiel beider Firewalls erklärt die Anleitung netcup SCP-Firewall einrichten: Policies, Regeln und Zusammenspiel mit ufw.
Schritt 7: IPv4-Adresse des VPS ermitteln
Für den DNS-Eintrag brauchen Sie die öffentliche IPv4-Adresse des VPS. Sie steht im SCP unter Server auswählen → „Network“. Alternativ reicht auf dem Server selbst:
ip -4 addr show eth0 | grep inetVerifizieren: Beide Wege liefern dieselbe öffentliche IPv4-Adresse.
Schritt 8: A-Record im netcup CCP anlegen
Öffnen Sie im netcup CCP (customercontrolpanel.de) Domains → Lupe bei Ihrer Domain → Tab „DNS“ und fügen Sie einen Eintrag hinzu:
- Host:
ts(ergibtts.ihredomain.de) - Type: A
- Destination: IPv4-Adresse des VPS (aus Schritt 7)
Klicken Sie auf „Save DNS Records“. Bis der Eintrag überall sichtbar ist, kann es je nach TTL einige Zeit dauern; so lange verbinden Sie sich per IP-Adresse.
Verifizieren: Nach der internen Propagierung: nslookup ts.ihredomain.de gibt die IPv4-Adresse des 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
Öffnen Sie den TeamSpeak-Client, klicken Sie auf „Verbinden“ und tragen Sie ts.ihredomain.de (oder die IP-Adresse) ein. Port 9987 ist Standard. Beim ersten Verbinden fragt der Client nach dem Privilege Key; tragen Sie den Token aus Schritt 4 ein.
Verifizieren: Der Client zeigt „Verbunden“, der Kanalbaum lädt und Ihr Name trägt das Server-Admin-Symbol.
VPS upgraden, wenn die Nutzerzahl wächst
Zeigt der VPS unter Last hohe CPU-Auslastung oder Speicherknappheit, erweitern Sie ihn im CCP: 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.
Details beschreibt die Anleitung netcup VPS-Generation upgraden: Instance Upgrade im CCP ohne Datenverlust.
TeamSpeak-Server auf eine neue Version aktualisieren
Bei einer neuen Server-Version gehen Sie 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
# Programmdateien kopieren; ts3server.ini und ts3server.sqlitedb liegen nicht im Paket und bleiben erhalten
cp -r teamspeak3-server_linux_amd64/* /home/teamspeak/
rm -rf teamspeak3-server_linux_amd64*
exit
# Als root: Dienst starten
systemctl start teamspeakSichern Sie vorher ts3server.sqlitedb (Kanäle, Benutzer, Rechte). Das Paket enthält auch die SQL-Skripte und Bibliotheken der neuen Version, deshalb kopieren Sie den gesamten Inhalt.
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. Ohne EGRESS-Regel erreichen die UDP-Antworten den Client nicht. Lösung: EGRESS-Regel für UDP 9987 ergänzen und „Apply“ klicken.
Server startet nicht – „license file not found“
Die Lizenzdatei heißt .ts3server_license_accepted mit führendem Punkt. Prüfen mit ls -la /home/teamspeak/, anlegen mit sudo -u teamspeak touch /home/teamspeak/.ts3server_license_accepted.
Server startet nicht – „permission denied“ oder läuft als root
Dateien gehören root, weil sie als root entpackt oder kopiert wurden. Lösung: chown -R teamspeak:teamspeak /home/teamspeak. Die Service-Datei muss User=teamspeak enthalten (systemctl cat teamspeak | grep User).
Startet der Dienst und endet sofort wieder, fehlt Type=forking (siehe Schritt 3).
Admin-Token nicht mehr auffindbar
Er ist nachträglich abrufbar: journalctl -u teamspeak | grep token oder in der Log-Datei unter /home/teamspeak/logs/ts3server_*.log. Ist er dort nicht mehr vorhanden, erzeugen Sie per ServerQuery (lokal oder per SSH-Tunnel) mit privilegekeyadd einen neuen.
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
Bis die TTL abgelaufen ist, ist die Subdomain nicht überall auflösbar. Verbinden Sie sich so lange per IPv4-Adresse und prüfen Sie mit nslookup ts.ihredomain.de 1.1.1.1.
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 ein VPS mit 1 GB RAM für TeamSpeak?
Für kleine Gruppen ja; der Server braucht im Leerlauf etwa 50 bis 150 MB RAM. Ab etwa 20 gleichzeitigen Nutzern planen Sie 2 vCores und 4 GB RAM ein.
Muss ich den Port beim Verbinden angeben?
Nein. Port 9987 ist der Standard-TeamSpeak-Port und wird vom Client implizit verwendet. ts.ihredomain.de ohne Portnummer genügt.
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 ServerQuery (Port 10011/TCP, lokal oder per SSH-Tunnel). Ohne Lizenz ist allerdings nur ein virtueller Server mit bis zu 32 Slots erlaubt.
Was passiert beim VPS-Upgrade mit meinen TS3-Daten?
Beim Instance Upgrade im CCP bleiben Betriebssystem und Daten erhalten. Nach dem Neustart startet der Dienst dank systemctl enable teamspeak automatisch.
Fazit
Ein eigener TeamSpeak-3-Server auf einem netcup-VPS ist in unter einer Stunde eingerichtet. Entscheidend sind drei Punkte: Type=forking im systemd-Dienst, INGRESS und EGRESS für 9987/UDP in der SCP-Firewall und ein geschlossener ServerQuery-Port. Mit A-Record und automatischem Neustart läuft der Server danach wartungsarm; bei wachsender Nutzerzahl erweitern Sie den VPS im CCP. Ohne Lizenz ist der Betrieb laut TeamSpeak-Lizenzbedingungen nur für nicht kommerzielle Gruppen und Privatpersonen erlaubt und auf einen virtuellen Server mit 32 Slots begrenzt; Vereine mit mehr Bedarf beantragen eine NPL.
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


