Wie man TeamSpeak Server unter Debian 11 installiert

TeamSpeak ist eine plattformübergreifende Voice-Chat-Software, die von Spielern, Teams und Schulen genutzt wird. Sie ist leicht und schnell und bietet dir mehr Kontrolle, da du sie auf deinem Server hosten kannst. Sie bietet eine sichere und einfache Möglichkeit, sich mit Menschen auf der ganzen Welt zu verbinden. Es hat eine vollständig anpassbare Benutzeroberfläche, unterstützt Direktnachrichten, unbegrenzten Dateitransfer und ermöglicht eine anonyme Nutzung.

In diesem Lernprogramm lernst du, wie du den TeamSpeak-Server auf einem Debian 11-basierten Server installierst und dich mit einem Windows-Client mit ihm verbindest.

Voraussetzungen

  • Ein Debian 11 basierter Server.
  • Ein Nicht-Root-Benutzer mit sudo-Rechten.
  • DasSudo-Paket ist installiert.
  • Alles ist auf dem neuesten Stand.
    $ sudo apt update && sudo apt upgrade
    
  • Einige wenige Pakete, die dein System benötigt.
    $ sudo apt install nano ufw software-properties-common dirmngr apt-transport-https gnupg2 ca-certificates lsb-release debian-archive-keyring wget -y
    

    Einige dieser Pakete sind vielleicht schon auf deinem System installiert.

Schritt 1 – Firewall konfigurieren

Der erste Schritt besteht darin, die Firewall zu konfigurieren. Debian wird mit ufw (Uncomplicated Firewall) ausgeliefert.

Überprüfe, ob die Firewall läuft.

$ sudo ufw status

Du solltest die folgende Ausgabe erhalten.

Status: inactive

Erlaube den SSH-Port, damit die Firewall die aktuelle Verbindung nicht unterbricht, wenn du sie aktivierst.

$ sudo ufw allow OpenSSH

Öffne die folgenden von TeamSpeak benötigten Ports.

  • 9987/udp für Sprache.
  • 30033/tcp für die Dateiübertragung.
  • 10011/tcp für Serverabfrage (Raw).
  • 10022/tcp für Serverabfrage (SSH).
  • 10080/tcp für Webabfrage (HTTP).
$ sudo ufw allow 9987/udp
$ sudo ufw allow 30033/tcp
$ sudo ufw allow 10011/tcp
$ sudo ufw allow 10022/tcp
$ sudo ufw allow 10080/tcp

Aktiviere die Firewall

$ sudo ufw enable
Command may disrupt existing ssh connections. Proceed with operation (y|n)? y
Firewall is active and enabled on system startup

Überprüfe erneut den Status der Firewall.

$ sudo ufw status

Du solltest eine ähnliche Ausgabe sehen.

Status: active

To                         Action      From
--                         ------      ----
OpenSSH                    ALLOW       Anywhere
9987/udp                   ALLOW       Anywhere
30033/tcp                  ALLOW       Anywhere
10011/tcp                  ALLOW       Anywhere
10080/tcp                  ALLOW       Anywhere
10022/tcp                  ALLOW       Anywhere
OpenSSH (v6)               ALLOW       Anywhere (v6)
9987/udp (v6)              ALLOW       Anywhere (v6)
30033/tcp (v6)             ALLOW       Anywhere (v6)
10011/tcp (v6)             ALLOW       Anywhere (v6)
10080/tcp (v6)             ALLOW       Anywhere (v6)
10022/tcp (v6)             ALLOW       Anywhere (v6)

Schritt 2 – TeamSpeak herunterladen

Besuche die Download-Seite von TeamSpeak und achte auf die aktuelle Versionsnummer. Zum Zeitpunkt dieses Tutorials ist v3.13.6 die neueste Version des TeamSpeak-Servers.

Verwende den folgenden Befehl, um den TeamSpeak-Server herunterzuladen.

$ TVERSION=3.13.6
$ wget https://files.teamspeak-services.com/releases/server/${TVERSION}/teamspeak3-server_linux_amd64-${TVERSION}.tar.bz2

Entpacke das heruntergeladene Archiv.

$ tar -xf ./teamspeak3-server_linux_amd64-${TVERSION}.tar.bz2

Schritt 3 – TeamSpeak-Benutzer und -Verzeichnis erstellen

Der erste Schritt bei der Installation von TeamSpeak besteht darin, einen Benutzer für den Server anzulegen. Der Benutzer hat sein Home-Verzeichnis unter /opt/teamspeak und hat kein Passwort.

$ sudo adduser ts3 --home /opt/teamspeak --shell /bin/bash --disabled-password

Jetzt können wir das extrahierte Verzeichnis in das Verzeichnis /opt/teamspeak verschieben.

$ sudo mv teamspeak3-server_linux_amd64/* /opt/teamspeak/

Erteile dem Verzeichnis die richtigen Berechtigungen.

$ sudo chown -R ts3:ts3 /opt/teamspeak

Schritt 4 – TeamSpeak-Server starten

Der nächste Schritt besteht darin, den TeamSpeak-Server zu starten, um zum ersten Mal einen Privilegeschlüssel zu erstellen. Mit diesem Schlüssel kannst du als Administrator auf den Server zugreifen.

Bevor du den Server startest, musst du dich als TeamSpeak-Benutzer anmelden. Führe den folgenden Befehl aus, um dich als TeamSpeak-Benutzer in deiner Shell anzumelden.

$ sudo -u -i ts3

Dazu erstellen wir eine Datei namens .ts3server_license_accepted im Arbeitsverzeichnis von TeamSpeak.

$ touch .ts3server_license_accepted

Führe den folgenden Befehl aus, um den Server zu starten.

$ ./ts3server_startscript.sh start
------------------------------------------------------------------
                      I M P O R T A N T
------------------------------------------------------------------
               Server Query Admin Account created
         loginname= "serveradmin", password= "BtXdJaCb"
         apikey= "BAD8rYVPM61p_-TdrsBqEL_8ZxKzEHIKOkUk6_e"
------------------------------------------------------------------


------------------------------------------------------------------
                      I M P O R T A N T
------------------------------------------------------------------
      ServerAdmin privilege key created, please use it to gain
      serveradmin rights for your virtualserver. please
      also check the doc/privilegekey_guide.txt for details.

       token=WIRagRYXkCnWqM5g7gBoSgcHHpfgLG9w17pcLORy
------------------------------------------------------------------

Wenn du den Server zum ersten Mal startest, wird ein Server Query Administrator-Konto erstellt. Notiere dir den Benutzernamen und das Passwort. Notiere dir auch den API-Schlüssel und das erzeugte Privileg-Token. Du wirst sie in den nächsten Schritten benötigen.

Um den Server anzuhalten, drücke Strg + C auf deiner Tastatur.

Melde dich als TeamSpeak-Benutzer ab.

$ exit

Schritt 5 – TeamSpeak Service Daemon erstellen

Erstelle die Datei /lib/systemd/system/ts3server.service und öffne sie zum Bearbeiten.

$ sudo nano /lib/systemd/system/ts3server.service

Füge den folgenden Code in die Datei ein.

[Unit]
Description=TeamSpeak3 Server
Wants=network-online.target
After=syslog.target network.target local-fs.target

[Service]
WorkingDirectory=/opt/teamspeak
User=ts3
Group=ts3
Type=forking
ExecStart=/opt/teamspeak/ts3server_startscript.sh start license_accepted=1
ExecStop=/opt/teamspeak/ts3server_startscript.sh stop
ExecReload=/opt/teamspeak/ts3server_startscript.sh restart
Restart=always
RestartSec=15

[Install]
WantedBy=multi-user.target

Schließe die Datei, indem du Strg + X drückst und Y eingibst, wenn du dazu aufgefordert wirst.

Lade den Service-Daemon neu.

$ sudo systemctl daemon-reload

Aktiviere und starte den TeamSpeak-Dienst.

$ sudo systemctl enable ts3server --now

Überprüfe den Status des Dienstes.

$ sudo systemctl enable ts3server
? ts3server.service - TeamSpeak3 Server
     Loaded: loaded (/lib/systemd/system/ts3server.service; enabled; vendor preset: enabled)
     Active: active (running) since Tue 2022-03-29 08:18:17 UTC; 2s ago
    Process: 23120 ExecStart=/opt/teamspeak/ts3server_startscript.sh start license_accepted=1 (code=exited, status=0/SUCCESS)
   Main PID: 23127 (ts3server)
      Tasks: 21 (limit: 2341)
     Memory: 17.3M
        CPU: 1.953s
     CGroup: /system.slice/ts3server.service
             ??23127 ./ts3server license_accepted=1  daemon=1 pid_file=ts3server.pid

Mar 29 08:18:17 teamspeak systemd[1]: Starting TeamSpeak3 Server...
Mar 29 08:18:17 teamspeak ts3server_startscript.sh[23120]: Starting the TeamSpeak 3 server
Mar 29 08:18:17 teamspeak ts3server_startscript.sh[23120]: TeamSpeak 3 server started, for details please view the log file
Mar 29 08:18:17 teamspeak systemd[1]: Started TeamSpeak3 Server.

Schritt 6 – Verbinden mit dem TeamSpeak-Client

Lade den Windows TeamSpeak 3 Client von der offiziellen Website herunter und installiere ihn. Du kannst auch die neueste Beta-Version (v5) des Clients herunterladen, aber für unser Tutorial werden wir die ältere und stabile v3 verwenden.

Starte den Client auf deinem Desktop. Nachdem du die Lizenzabfrage durchlaufen hast, siehst du den folgenden Bildschirm.

TeamSpeak 3 Client

Klicke auf Verbindungen und wähle die Option Verbinden, um loszulegen. Gib die IP-Adresse deines Servers, das in Schritt 4 erstellte Passwort und einen Spitznamen für dich ein.

TeamSpeak Client Server verbinden

Klicke auf die Schaltfläche Verbinden, um fortzufahren. In der nächsten Aufforderung wirst du aufgefordert, den Privilegeschlüssel einzugeben. Gib den Privilegeschlüssel aus Schritt 4 ein und klicke auf Ok, um fortzufahren.

TeamSpeak 3 Client Privilege Token Aufforderung

Du bist jetzt mit deinem TeamSpeak-Server verbunden und kannst den Client für die Kommunikation nutzen.

TeamSpeak 3 Client Verbindung erfolgreich

Schritt 7 – Ändern des Zugangspassworts

Du kannst das Passwort des Server-Administrators in ein stärkeres Passwort deiner Wahl ändern. Dazu musst du den TeamSpeak-Dienst beenden.

$ sudo systemctl stop ts3server

Wechsle zum TeamSpeak-Benutzer.

$ sudo -i -u ts3

Starte den TeamSpeak-Server und füge den Parameter serveradmin_password in deinem Befehl hinzu.

$ ./ts3server_startscript.sh start serveradmin_password=password
Starting the TeamSpeak 3 server
TeamSpeak 3 server started, for details please view the log file

Ersetze password durch ein starkes Passwort deiner Wahl.

Beende den Server wieder.

$ ./ts3server_startscript.sh stop
Stopping the TeamSpeak 3 server .
done

Wechsle wieder zu deinem Benutzerkonto.

$ exit

Starte den TeamSpeak-Dienst erneut.

$ sudo systemctl start ts3server

Schritt 8 – Installieren und Konfigurieren von MySQL

TeamSpeak verwendet standardmäßig die SQLite-Datenbank, um alle Kommunikations- und Benutzerdaten zu speichern. Das ist für eine kleine Community in Ordnung, kann aber zu einem Problem werden, wenn du TeamSpeak für mehr Nutzer/innen einsetzt. Zum Glück kann TeamSpeak so konfiguriert werden, dass es entweder eine MySQL- oder eine PostgreSQL-Datenbank verwendet.

Wir werden es für die Verwendung mit dem MySQL-Server konfigurieren.

Installiere den MariaDB-Server, der ein direkter Ersatz für MySQL ist, da Debian standardmäßig nicht mit MySQL 8 ausgeliefert wird.

$ sudo apt install mariadb-server -y

Das Installationsprogramm wird den Mariadb-Dienst für dich starten und aktivieren. Du kannst den Status des Dienstes überprüfen.

$ sudo systemctl status mariadb

Führe das Sicherheitsskript für MariaDB aus. Verwende die unten angegebenen Optionen.

$ sudo mysql_secure_installation
Enter current password for root (enter for none): (Press Enter)
Switch to unix_socket authentication [Y/n] Y
Change the root password? [Y/n] n
Remove anonymous users? [Y/n] Y
Disallow root login remotely? [Y/n] Y
Remove test database and access to it? [Y/n] Y
Reload privilege tables now? [Y/n] Y

Melde dich in der MySQL-Shell an.

$ sudo mysql

Erstelle den Benutzer ts3user. Ersetze your_password durch ein sicheres Passwort deiner Wahl.

mysql> CREATE USER 'ts3user'@'localhost' IDENTIFIED BY 'your_password';

Erstelle die Datenbank teamspeak3.

mysql> CREATE DATABASE teamspeak3;

Erteile dem Benutzer die Rechte für die Datenbank teamspeak3.

mysql> GRANT ALL PRIVILEGES ON teamspeak3.* TO 'ts3user'@'localhost';

Beende die Shell.

mysql> exit

Wechsle zum TeamSpeak-Benutzer.

$ sudo -i -u ts3

Der erste Schritt, um MariaDB für die Zusammenarbeit mit TeamSpeak zu konfigurieren, besteht darin, die MariaDB-Bibliothek hinzuzufügen. Du findest sie im Ordner /opt/teamspeak/redist.

Erstelle einen Symlink für die Bibliothek aus dem Ordner redist in dein Hauptarbeitsverzeichnis.

$ ln -s /opt/teamspeak-server/redist/libmariadb.so.2 /opt/teamspeak-server/libmariadb.so.2

Führe den folgenden Befehl aus, um die von TeamSpeak benötigten gemeinsamen Bibliotheken zu drucken.

$ ldd /opt/teamspeak3-server/libts3db_mariadb.so

Erstelle die Konfigurationsdatei zum Speichern der Datenbankparameter und öffne sie zum Bearbeiten.

$ nano ts3db_mariadb.ini

Füge den folgenden Code in die Datei ein.

[config]
host=127.0.0.1
port=3306
username=ts3user
password=your_password
database=teamspeak3
socket=

Verwende die oben erstellten Datenbankanmeldedaten. Schließe die Datei, indem du Strg + X drückst und Y eingibst, wenn du dazu aufgefordert wirst.

Erstelle eine Konfigurationsdatei für TeamSpeak und öffne sie zum Bearbeiten.

$ nano ts3server.ini

Füge den folgenden Code in die Datei ein.

machine_id=
default_voice_port=9987
voice_ip=0.0.0.0
licensepath=
filetransfer_port=30033
filetransfer_ip=0.0.0.0
query_port=10011
query_ip=0.0.0.0
query_ip_whitelist=query_ip_whitelist.txt
query_ip_blacklist=query_ip_blacklist.txt
dbsqlpath=sql/
dbplugin=ts3db_mariadb
dbsqlcreatepath=create_mariadb/
dbpluginparameter=ts3db_mariadb.ini
dbconnections=10
logpath=logs
logquerycommands=0
dbclientkeepdays=30
logappend=0
query_skipbruteforcecheck=0

Schließe die Datei, indem du Strg + X drückst und Y eingibst, wenn du dazu aufgefordert wirst. Um mehr über diese Konfigurationseinstellungen zu erfahren, kannst du die Datei server_quickstart.md im Ordner doc einsehen. Mit der obigen Datei wird TeamSpeak so konfiguriert, dass es MariaDB statt der SQLite-Datenbank verwendet.

Beende die TeamSpeak-Shell.

$ exit

Wir müssen dem TeamSpeak-Server mitteilen, dass er die neu erstellte Konfigurationsdatei verwenden soll. Stoppe und deaktiviere den TeamSpeak-Dienst.

$ sudo systemctl stop ts3server && sudo systemctl disable ts3server

Öffne die Servicedatei.

$ sudo nano /lib/systemd/system/ts3server.service

Suche die Zeile ExecStart=/opt/teamspeak/ts3server_startscript.sh start license_accepted=1 und ändere sie, indem du die Details der Konfigurationsdatei hinzufügst, wie unten gezeigt.

....
Type=forking
ExecStart=/opt/teamspeak/ts3server_startscript.sh start license_accepted=1 inifile=ts3server.ini
....

Schließe die Datei, indem du Strg + X drückst und Y eingibst, wenn du dazu aufgefordert wirst.

Starte den Dienst-Daemon neu, um die Änderungen zu übernehmen.

$ sudo systemctl daemon-reload

Aktiviere und starte den TeamSpeak-Dienst.

$ sudo systemctl enable ts3server --now

Überprüfe den Status des Servers.

$ sudo systemctl status ts3server
? ts3server.service - TeamSpeak3 Server
     Loaded: loaded (/lib/systemd/system/ts3server.service; enabled; vendor preset: enabled)
     Active: active (running) since Tue 2022-03-29 12:21:22 UTC; 6s ago
    Process: 26511 ExecStart=/opt/teamspeak/ts3server_startscript.sh start license_accepted=1 inifile=ts3server.ini (code=exited, status=0/SUCCESS)
   Main PID: 26518 (ts3server)
      Tasks: 21 (limit: 2341)
     Memory: 16.0M
        CPU: 1.818s
     CGroup: /system.slice/ts3server.service
             ??26518 ./ts3server license_accepted=1 inifile=ts3server.ini  daemon=1 pid_file=ts3server.pid

Mar 29 12:21:23 teamspeak ts3server_startscript.sh[26518]:          apikey= "BAA_lDBRBQxy2nPJXwPQvTRk9_sX3o403Ktlbjz"
Mar 29 12:21:23 teamspeak ts3server_startscript.sh[26518]: ------------------------------------------------------------------
Mar 29 12:21:24 teamspeak ts3server_startscript.sh[26518]: ------------------------------------------------------------------
Mar 29 12:21:24 teamspeak ts3server_startscript.sh[26518]:                       I M P O R T A N T
Mar 29 12:21:24 teamspeak ts3server_startscript.sh[26518]: ------------------------------------------------------------------
Mar 29 12:21:24 teamspeak ts3server_startscript.sh[26518]:       ServerAdmin privilege key created, please use it to gain
Mar 29 12:21:24 teamspeak ts3server_startscript.sh[26518]:       serveradmin rights for your virtualserver. please
Mar 29 12:21:24 teamspeak ts3server_startscript.sh[26518]:       also check the doc/privilegekey_guide.txt for details.
Mar 29 12:21:24 teamspeak ts3server_startscript.sh[26518]:        token=kuFsCpz8G7204KiYgQJR8X8orHR+C8OrSv21MZRw
Mar 29 12:21:24 teamspeak ts3server_startscript.sh[26518]: ------------------------------------------------------------------

Dadurch wird der Berechtigungsschlüssel neu erstellt. Wenn du dich das nächste Mal bei deinem Server anmeldest, wirst du nach dem Schlüssel gefragt. Dein Passwort für die Serveradministration bleibt jedoch dasselbe.

Schritt 9 – TeamSpeak upgraden

Der erste Schritt zum Upgrade des TeamSpeak-Servers besteht darin, den Server zu stoppen.

$ sudo systemctl stop ts3server

Lade die neueste Version von der offiziellen Website herunter und entpacke das Archiv in das Verzeichnis /opt/teamspeak. Überschreibe dabei die Originaldateien, indem du die Schritte 2 und 3 des Tutorials befolgst. Stelle sicher, dass du die Berechtigung des entpackten Ordners änderst.

Sobald du fertig bist, starte den Server erneut.

$ sudo systemctl start ts3server

Fazit

Damit ist unsere Anleitung zur Installation und Nutzung von TeamSpeak Server auf einem Debian 11 basierten Server abgeschlossen. Wenn du noch Fragen hast, schreibe sie in die Kommentare unten.

Das könnte dich auch interessieren …