TeamSpeak Server auf Raspberry installieren

Heute zeigen wir euch wie ihr einen TeamSpeak Server auf einem Raspberry Pi installieren könnt. In unserem Beispiel betreiben wir den Server im eigenen Heimnetzwerk und Routen die Ports über den Router direkt auf dem Raspberry.

Video zur Anleitung

Was brauchen wir dafür?

Ziel

Wir installieren Teamspeak auf einem Raspberry PI in unserem eigenen Netzwerk. Die Ports werden mit Portforwarding direkt auf dem Raspberry geleitet. Der Teamspeak ist somit aus dem Internet erreichbar. Vorteil? Wir können uns einen Teamspeak Server für wenig Geld betreiben. Bei einem Anbieter entstehen meistens Kosten von 5 bis 10 Euro pro Monat. Den Teamspeak Server müssen wir somit ca. 6-10 Monate betreiben und die Kosten des Raspberry sind wieder drin.

Raspberry Pi vorbereiten

In dieser Anleitung verwenden wir den Imager von Raspberry. Falls Ihr Ubuntu lieber von Hand installieren wollt, findet ihr eine Anleitung unter: Ubuntu Server installieren – 20.04 LTS

  1. Raspberry Pi Imager herunterladen und installieren https://www.raspberrypi.org/software/
  2. Imager ausführen
  3. Ubuntu Server auswählen
    Alternativ kann auch ein Raspberry PI OS installiert werden.
  4. SD-Karte auswählen
  5. Die SD-Karte kann nun mit „SCHREIBEN“ beschrieben werden. Das Image wird heruntergeladen und auf die SD-Karte entpackt. Vor dem Schreiben noch kontrollieren, ob auch wirklich die korrekte Karte ausgewählt wurde.
    Die SD-Karte wird bei diesem Vorgehen gelöscht und alle Daten sind verloren.
  6. SD-Karte im Anschluss in den Raspberry einlegen und mit Strom und Netzwerk versorgen.
    Es ist wichtig, dass der Raspberry Pi die Möglichkeit bekommt, eine IP über DHCP zu beziehen.

Raspberry PI im Netzwerk finden

Unser kleiner Raspberry PI hat sich bereits eine IP über das Netzwerk bezogen. Entweder gehen wir nun auf den Router und schauen was er für eine IP bekommen hat, oder wir schliessen einen Monitor an.

Da unser Computer in diesem Zeitraum auch gelaufen ist, haben wir die IP und die MAC Adresse aber bereits mitbekommen, gut nicht wir, sondern unser Computer. Diese können wir aus dem ARP-Table von unserem Windows Rechner wie folgt beziehen.

CMD öffnen und folgende Befehle eingeben:

Raspberry 1-3

arp -a | findstr b8-27-eb

Raspberry 4

arp -a | findstr dc-a6-32

Verwendet Ihr ein Linux System? Bitteschön:

arp -na | grep -i "b8:27:eb"
arp -na | grep -i "dc:a6:32"

Als Ausgabe müsstet Ihr nun die IP-Adresse von eurem Raspberry bekommen.

Mit SSH auf den Raspberry verbinden

Der Raspberry läuft nun bereits mit Ubuntu Server und wir haben ihn im Netzwerk gefunden. Nun müssten wir nur noch per SSH auf den Server zugreifen können. Hierfür verwenden wir unter Windows das Programm PuTTY und unter Linux das Terminal.

  1. Download PuTTY
  2. PuTTY ausführen und IP-Adresse in das Feld eingeben
  3. Unten auf den Button Open klicken. Die Verbindung wird nun hergestellt.
  4. Fingerprint akzeptieren
  5. Login mit dem Benutzername ubuntu und dem Passwort ubuntu
  6. Updates durchführen mit apt update && apt upgrade
  7. Raspberry neu starten mit sudo reboot

Defaultbenutzer und Passwort: ubuntu

Installation TeamSpeak Server

TeamSpeak selber hat keinen Build für einen ARM-Prozessor. So ist es uns nicht möglich den Teamspeak Server auf normalem Weg zu installieren. Der Umweg geht über einen Emulator für einen i386 Prozessor.

Damit wir dich nun nicht mit einer riesigen Anleitung über den Emulator erschlagen, bedienen wir uns einem Docker-Image von Github – https://github.com/ertagh/teamspeak3-server-arm

  1. Docker installieren mit sudo curl -fsSL https://get.docker.com | sh
    1. Hinweis: Der Vorgang dauert einige Minuten.
  2. Docker Image mit unten stehenden Code installieren

OHNE automatischen Neustart

sudo docker run -d --name TeamSpeak -e TS_UPDATE=1 -e TS_UPDATE_BACKUP=1 -e TIME_ZONE=Europe/Berlin -p 9987:9987/udp -p 10011:10011/tcp -p 30033:30033/tcp -v /opt/teamspeak/:/teamspeak/save/ ertagh/teamspeak3-server:latest

MIT automatischem Neustart



sudo docker run -d --name TeamSpeak --restart unless-stopped -e TS_UPDATE=1 -e TS_UPDATE_BACKUP=1 -e TIME_ZONE=Europe/Berlin -p 9987:9987/udp -p 10011:10011/tcp -p 30033:30033/tcp -v /opt/teamspeak/:/teamspeak/save/ ertagh/teamspeak3-server:latest

Nachdem wir nun einige Minuten gewartet haben und der Teamspeak Server installiert wurde, lassen wir uns alle Logs anzeigen. Hier versteckt sich nämlich das Super Admin Passwort. Sucht aus der Ausgabe unten stehenden Abschnitt. Dieses Passwort braucht Ihr beim ersten Verbinden auf den Server.

cat /opt/teamspeak/logs/*
2021-03-30 17:34:44.558657|WARNING |VirtualServer |1  |ServerAdmin privilege key                                              created, please use the line below
2021-03-30 17:34:44.559953|WARNING |VirtualServer |1  |token=r0VVNY2XHANSxJRaF                                             atO71c7IHrqCYbu7NniY7
2021-03-30 17:34:44.561126|WARNING |VirtualServer |1  |-------------------------  

Ihr könnte euch nun mit der IP-Adresse auf euren lokalen TeamSpeak Server verbinden.
Bei der ersten Verbindung werden ihr nach einem Server Admin Passwort gefragt. Gebt dieses aus den Logs ein. Mit der Eingabe des Passworts habt Ihr vollen Zugriff auf den Server.

TeamSpeak Server aus dem Internet erreichbar machen

Damit wir nicht alleine auf unserem Server bleiben müsse. Konfigurieren wir unseren Router nun so das er alle Anfragen an den TeamSpeak Server weiterleitet. Hierzu richten wir das Port Forwarding auf unserem Router ein.

  1. Auf dem Router anmelden. Die IP steht meistens auf der Rückseite vom Gerät.
  2. Sucht die Option für das Port Forwarding. Dieses sollte sich unter NAT befinden oder unter einem eigenen Punkt.
  3. Erstellt die folgenden Regeln aus dem Screenshot.
<WAN> Port 9987 auf <Raspberry PI interne IP> Protokoll UDP
<WAN> Port 10011 auf <Raspberry PI interne IP> Protokoll TCP
<WAN> Port 30033 auf <Raspberry PI interne IP> Protokoll TCP

Euer TeamSpeak Server ist per sofort über eure Öffentliche IP erreichbar!

Nun habt Ihr es geschafft, der Teamspeak Server wurde auf eurem Raspberry installiert und ist vom Internet erreichbar.

TeamSpeak nach einem Neustart automatisch starten

Damit Docker euren Container nach einem Neustart automatisch startet, müsst Ihr Docker das entsprechend so mitgegeben. Dies geschieht mit folgendem Befehl.

sudo  docker update --restart unless-stopped TeamSpeak

Mit Update wird die Startroutine eines laufenden Containers abgepasst.

Falls Ihr alle Container immer wieder starten wollt, könnt Ihr dies so am einfachsten konfigurieren.

 sudo docker update --restart unless-stopped $(docker ps -q)

Keine feste IP?

Ihr wollte das euer TeamSpeak Server aus dem Internet erreichbar ist aber wollt kein Geld für eine IP ausgeben? So habt ihr die Möglichkeit einen DynDNS Dienst zu nutzen. Diese sind oft kostenlos oder günstiger als eine IP-Adresse.

Schaut auf eurem Router nach, ob Ihr eine Option DynDNS oder Dynamic DNS findet.
Schaltet diese Option ein und registriert euch bei einem der vorgeschlagenen Anbieter. Benutzername und Passwort gebt Ihr in eurem Router ein.

Euer Router sendet nun immer die aktuelle dynamische IP an den DynDNS Anbieter. Ihr müsste euch nur noch die Adresse merken.

Hast du zum Tutorial „TeamSpeak Server auf Raspberry installieren“ noch Fragen? Kontaktiere uns gerne über die Kommentarfunktion.

29 thoughts on “TeamSpeak Server auf Raspberry installieren

  1. Hat super funktioniert. Habe auch alle Einstellungen von meinem alten Server übertragen. Dann habe ich den Raspberry neugestartet, weil ich ein Autostartscript von einer anderen Seite testen wollte. Nun habe ich das Problem. Ich bekomme den TS3 server nicht mehr gestartet. Ich finde leider auch den Pfad nicht. Kannst du mir auch sagen, wie ich den Server wieder starten kann?

  2. ich muss schon sagen ich konnte das nicht in einem Anlauf schaffen und jedes mal wenn ich das Setup abbauen musste, bekam ich nur noch rotes bild und es ging nichts mehr. bin immer noch nicht fertig, weil ich immer alles komplett neu installieren muss damit es wieder funktioniert.

      1. Schau dir doch mal https://www.portainer.io/ an.
        Mit diesem Container erhälst du eine Webseite mit allen deinen Docker Containern und Images und kannst diese auch sogleich neustarten.

        Wenn du willst das dein Container auch nach dem Neustart wieder hoch kommt. Kannst du dies mit diesem Befehl bewerkstelligen:

        docker update –restart unless-stopped TeamSpeak

        (TeamSpeak steht für den Namen von deinem Server bzw Cointainer)

  3. Für alle die das selbe Problem mit dem starten bzw neustarten haben ist folgender Befehl:

    sudo docker start Teamspeak (zum starten)
    sudo docker stop TeamSpeak (zum stoppen)
    sudo docker restart TeamSpeak (zum neustarten)

    wenn ihr als su angemeldet seid, könnt ihr das sudo weg lassen

    1. Der Container unterzieht sich selber einen Update, sobald der Container vom Entwickler ein Update bekommt.
      Dies wurde mit dem Tag „TS_UPDATE=1“ im Startkommando so eingestellt.

      Mehr Infos findest du in der Readme
      https://github.com/ertagh/teamspeak3-server-arm/blob/master-qemu/Readme.md

      TS_UPDATE
      If you set the updater to 0, but you still want to update to a newer version, just put a empty file called „update“ inside the „save“-folder and restart the container.

  4. Danke hat geklappt aber wie nutze ich meine Dynamische von NOIP? hatte den client installiert aber hat irgendwie nicht geklappt (noob) danke im vorraus!

    1. Meistens musst du deine Logindaten auf dem Router eingeben oder es sind spezielle Benutzer und Passwörter. Die Angaben erhälst du aber vom DynDNS anbieter
      Sollte dein Router den Dienst von NoIP nicht unterstützen, gibt es auch eine Custom Option oder du nutzt einen anderen Dienst der dir von deinem Router vorgeschlagenen wird.
      Suche hiefür nach Dyn DNS oder Dynamischem DNS auf deinem Router.
      Mit den Anmeldedaten wird deine aktuelle IP immer an den Dienst des DynDNS Anbieters gesendet und erneuert.

      Wir haben leider keine Anleitung. Gerne kannst du uns aber einen Screenshot an info@beyond.lol senden. Wir vesuchen dir dann zu helfen.

    1. Wenn dein Raspberry noch genügen Ressourcen hat, kannst du natürlich auch noch einen Minecraft Server laufen lassen.
      Der Teamspeak braucht bei einem Raspberry Pi 4B ca 3% CPU

      https://beyond.lol/minecraft-server-auf-ubuntu-20-04-lts-installieren/
      Eine Anleitung findest du hier, ist aber schon ein bisschen in die Jahre gekommen. Der Downloadlink müsste mit „https://launcher.mojang.com/v1/objects/c8f83c5655308435b3dcf03c06d9fe8740a77469/server.jar“ ersetzt werden.
      Hab es in der Anleitung nun gerade aber auch angepasst. Hoffe die Anleitung stimmt so noch.

  5. Vielen Dank für diese tolle Anleitung!

    Eine Frage habe ich jedoch noch. So wie ich es sehe läuft die TS Lizenz aus diesem Image im Oktober aus.

    Ich kenne das mit den Lizenzen schon so von Teamspeak, da zieht man sich eine neue Image von Teamspeak und dann läuft es wieder ein Jahr. Wie ist dies mit diesem Image gehandhabt?
    Muss ich da auf eine Aktualisierung von „ertagh“ warten oder kann ich die Teamspeak Image manuell aktualisieren?

    Vielen Dank,

  6. Hallo, Super anleitung hat auch alles Super geklappt.
    Gibt es einen serveradmin passwort ??
    Da ich auch das programm YaTQA nutze.

    Danke im voraus

    1. Mit dem Token aus dem Log kannst du dir ja SuperAdmin geben und dann selber im Client neue Schlüssel erstellen.
      Meinst du dieses Passwort oder eine anderes?

      Edit: Du meinst das Query Passwort
      In einem anderen Kommentar habe ich erklärt, wie man Portainer installiert. Schau dir das doch mal an.
      Somit kommst du einfach in die Konsole von deinem Container.

      Bin mir nicht mehr 100% Sicher aber ich glaube eine Query PW wurde beim Start generiert und im Log angezeigt.
      Muss aber am Wochenende auch nochmal genauer anschauen.

    2. Das QueryAdmin Passwort wird beim Erstellen generiert und angezeigt. Genau gleich wie das ServerAdmin Passwort.
      Nach dem ersten Starten gibt es einen Eintrag im Log.

      Falls das Log noch vorhanden ist, kann wie folgt darauf zugegriffen werden.

      1. Mit dem Docker-Container verbinden
      docker exec -it {NameOfContainer} /bin/bash
      2. in das Log Verzeichnis wechseln
      cd logs
      3. Das erste Log anzeigen
      cat *_1.log

      Solltest du es verpasste haben, gibt es folgende Möglichkeit.

      Container stoppen
      Datenbank löschen
      Container starten
      Logs anschauen mit docker logs CONTAINERNAME

      Durch das Löschen der Datenbank werden alle Passwörter neu generiert.
      Die Daten, bzw. Channel und User, werden aber auch gelöscht.

  7. Hallo,
    Ich bin neu in der Docker-Welt und die Anleitung hat super funktioniert!
    Danke für die tolle und einfache Anleitung. Server läuft ohne Probleme.
    Jedoch habe ich eine Frage:
    Wie bekomme ich das Query Passwort? der normale weg das Passwort zu ändern funktioniert hier leider nicht da ich nicht raus bekommen habe wie der TS3 Server selbst in dem Container gestartet wird. Kann mir hier vielleicht jemand helfen?
    Gruß Robert

    1. Wenn du direkt in den Container willst, empfehle ich dir Portainer
      Eine Weboberfläche wo du alle deine Container verwalten kannst und auch gleich die Konsole dazu öffnen.

      cd ~/
      docker volume create portainer_data
      docker run -d -p 8000:8000 -p 9000:9000 –name=portainer –restart=always -v /var/run/docker.sock:/var/run/docker.sock -v portainer_data:/data portainer/portainer

      http://DEINEIP:9000

      https://docs.fuga.cloud/how-to-install-portainer-docker-ui-manager-on-ubuntu-20.04-18.04-16.04

      Gruss Patrick

    2. Das QueryAdmin Passwort wird beim Erstellen generiert und angezeigt. Genau gleich wie das ServerAdmin Passwort.
      Nach dem ersten Starten gibt es einen Eintrag im Log.

      Falls das Log noch vorhanden ist, kann wie folgt darauf zugegriffen werden.

      1. Mit dem Docker-Container verbinden
      docker exec -it {NameOfContainer} /bin/bash
      2. in das Log Verzeichnis wechseln
      cd logs
      3. Das erste Log anzeigen
      cat *_1.log

      Solltest du es verpasste haben, gibt es folgende Möglichkeit.

      Container stoppen
      Datenbank löschen
      Container starten
      Logs anschauen mit docker logs CONTAINERNAME

      Durch das Löschen der Datenbank werden alle Passwörter neu generiert.
      Die Daten, bzw. Channel und User, werden aber auch gelöscht.

  8. Hallo 🙂
    Ich habe alles entsprechend der Anleitung installiert, aber es will nicht wirklich starten.
    Ich habe hier mal die entsprechenden Ausgaben:

    pi@SambaPi:~ $ sudo docker run -d –name TeamSpeak –restart unless-stopped -e TS_UPDATE=1 -e TS_UPDATE_BACKUP=1 -e TIME_ZONE=Europe/Berlin -p 9987:9987/udp -p 10011:10011/tcp -p 30033:30033/tcp -v /opt/teamspeak/:/teamspeak/save/ ertagh/teamspeak3-server:latest
    Unable to find image ‚ertagh/teamspeak3-server:latest‘ locally
    latest: Pulling from ertagh/teamspeak3-server
    c0b5ba470cac: Pull complete
    294086d08b73: Pull complete
    0d691d09dbb9: Pull complete
    4f4fb700ef54: Pull complete
    03bf5e783098: Pull complete
    a5a349f4d5ec: Pull complete
    Digest: sha256:1979f5d0b4d53319655cdbabef9cf6a59c3daa7544881bd8d2f19b0885d55e86
    Status: Downloaded newer image for ertagh/teamspeak3-server:latest
    d6d6145eb8bf244996b408378722117608eb82516765004c485fe992796b6453
    docker: Error response from daemon: failed to create endpoint TeamSpeak on network bridge: failed to add the host (vethd74a451) sandbox (vethdd7b330) pair interfaces: operation not supported.
    pi@SambaPi:~ $ cat /opt/teamspeak/logs/*
    cat: ‚/opt/teamspeak/logs/*‘: Datei oder Verzeichnis nicht gefunden

    Ich hoffe, Du kannst etwas damit anfangen.
    Mein System ist eine Pi4 wo lediglich eine mariaDB und ein Apache aktiv ist. Es war mal RTL433 zum sammeln von Funkdaten mit eintrag in die DB installiert, jedoch wurden diese Jobs ausgeschaltet, und werden auch nicht gestartet.

  9. Vielen Dank für diese super Anleitung. Gibt sonst wenig kluges zu Teamspeak auf dem RPi. Wäre spannend wenn du die Befehle noch genauer erklären würdest.
    Lg Samuel

  10. Hallöchen

    nachdem ich meinen alten Debian Server in Rente schicken will habe ich mir nach Deiner Anleitung auf Pi und Docker umgestellt.
    Leider erhalte ich eine andere IP für den Docker als für mein normales Netzwerk.
    Mein lokales Netz hat 192.x.x.x
    Docker bekommt aber eine 172.x.x.x IP Adresse.
    Deshalb kann ich den Server leider nicht über Portforwarding nicht erreichen.
    Bei kvm+qemu weiss ich dass ich eine bridge einrichten muss. Ist das für Docker ebenfalls der Fall?

    Gruss Ralph

    1. Hallöchen Ralph

      Grundsätzlich bekommt dein Raspberry eine IP aus deinem Netz und Docker macht ein eigenes Netz. Beim Installieren vom Container gibst du schon die jeweiligen Ports an, die vom Raspberry auf das Docker Image geroutet werden.
      Also eigentlich machst du ein Forwarding auf dem Router auf den Raspberry und auf dem Raspberry besteht auch schon eines.
      Im Befehl der Installation ist es dieser Teil: -p 9987:9987/udp -p 10011:10011/tcp -p 30033:30033/tcp
      Port 9987 vom Raspberry geht auf den Port 9987 vom Docker Image und so weiter.

      Kann dir hier nur den Software Portainer ans Herz legen.
      Hier kannst du mit einer grafischen Oberfläche deine ganze Docker Umgebung betrachten und auch konfigurieren. Die Version Portainer CE ist kostenlos.

      https://docs.portainer.io/start/install/server/docker/linux

      docker volume create portainer_data
      docker run -d -p 8000:8000 -p 9443:9443 –name portainer –restart=always -v /var/run/docker.sock:/var/run/docker.sock -v portainer_data:/data portainer/portainer-ce:latest
      https://localhost:9443

      Hoffe, das hilft dir ein wenig weiter!

      Gruss Patrick

      1. Hallo Patrick,

        hab alles nochmal durchgeklickt. Und jetzt geht es. Scheinbar bei Copy Paste irgend ein Zeichen nicht mitgenommen.

        Danke für die Hilfe.

        Gruss Ralph

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht.

Die mobile Version verlassen