Teamspeak 3 Server unter Linux Debian - Tutorial
In diesem Tutorial zum Thema "Unter Linux (Debian, Ubuntu, ...) einen Teamspeak 3 Server aufsetzen" zeige ich euch Schritt für Schritt, wie ihr euren eigenen Teamspeak-Server erstellen könnt.
Dieses Tutorial ist für Linux - Debian 7 (Wheezy) gedacht, lässt sich aber auf andere Linux Betriebssysteme wie z.B. Ubuntu übertragen.
Grundlagen/Vorbereitung
Zuerst müssen wir die richtige Teamspeak3 Server Version herunterladen.
Um dies zu können, müssen wir zunächst wissen, ob es sich um eine 32-bit oder 64-bit Distribution handelt.
Dies erfahren wir mit folgendem Befehl:
linux:~# getconf LONG_BIT
64
Erhält man als Ausgabe 64, besitzt man ein 64-bit System. Erhält man 32 ein 32-bit System.
Nun besuchen wir die Teamspeak 3 Website und laden die dementsprechende Variante (32/64 bit) herunter:
» TS3-Downloadseite
Dort wählen eines der beiden Varianten:
- Server amd64 3.0.11.1 (<= 64bit)
- Server x86 3.0.11.1 (<= 32bit)
Nachdem die richtige Version ausgewählt ist navigieren wir weiter,
bis der eigentliche Download startet. Dort kopieren wir den Download Link und laden das Server Paket auf unseren Server:
linux:~# wget [Download Link]
(In meinem Fall: wget http://dl.4players.de/ts/releases/3.0.11.1/teamspeak3-server_linux-amd64-3.0.11.1.tar.gz
)
Heruntergeladenes Paket entpacken & TS3 installieren
Die heruntergeladenen Server Dateien befinden sich nun als tar.gz gepackt in unserem Ordner. Diese Dateien entpacken wir mit:
linux:~# tar -xvzf teamspeak*
Nun wurden unsere Server Dateien entpackt. Um zu sehen, wohin sie entpackt wurden geben wir folgendes ein:
linux:~# ls
teamspeak3-server_linux-amd64
Danach bennen wir den Ordner um und öffnen diesen:
linux:~# mv teamspeak3-server_linux-amd64 ts3
linux:~# cd ts3
Anschließend starten wir den Server mit der vorhandenen Startdatei:
linux:~# ./ts3server_minimal_runscript.sh
oderlinux:~# sh ts3server_minimal_runscript.sh
Nun werden alle benötigten Dateien erstellt (Config Dateien, ...) und der Zugriffsschlüssel generiert.
Der Zugriffsschlüssel wird direkt in der Konsole ausgegeben und muss am Besten seperat gespeichert werden.
Mit dem Token erhält man Administratoren Rechte auf dem Teamspeak-Server. Diese Daten sind also wichtig!
Beispiel Konsolenausgabe:
------------------------------------------------------------------ I M P O R T A N T ------------------------------------------------------------------ Server Query Admin Account created loginname= "serveradmin", password= "NABCKeQl" ------------------------------------------------------------------ [...] ------------------------------------------------------------------ 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=2h4Wge38Haklo9TedF57T8s9... ------------------------------------------------------------------
Ports freigeben und connecten
In der Konsole sieht man außerdem noch die Log-/Debugeinträge des Teamspeak Servers.
Ist auf dem vorhandenen Root/VServer eine Firewall vorhanden sollten folgende Ports freigegeben werden:
- Default port (UDP eingehend): 9987
*
- Default filetransfer port (TCP eingehend): 30033
*
- Default serverquery port (TCP eingehend): 10011
*
- Default weblist port (UDP ausgehend): 2010
- Default tsdns port (TCP eingehend): 41144
- Default accounting port (TCP ausgehend): 2008
* Die wichtigsten Ports - sollten freigegeben werden (die anderen je nach Bedarf)
Nachdem alle Ports etc. freigegeben wurden können wir auf unseren Server über den Teamspeak3 Clienten connecten.
Dafür gibt man die IP-Adresse des Root-Servers ein und drückt im Clienten auf connecten.
Verbindet man sich zum ersten Mal mit dem Server, wird man aufgefordert den Schlüssel einzugeben:
Dort fügt man den zuvor gespeicherten Token ein und erhält Administratoren Rechte.
Wenn das getan ist beenden wir den Server wieder mit der Tastenkombination
STRG + C
Ab jetzt müssen wir die Datei ts3server_startscript.sh zum Starten und Stoppen unseres Servers verwenden.
Dies funktioniert wie folgt:
linux:~# ./ts3server_startscript.sh start
- Server startenlinux:~# ./ts3server_startscript.sh stop
- Server stoppenlinux:~# ./ts3server_startscript.sh restart
- Server neustartenlinux:~# ./ts3server_startscript.sh status
- Server Status - Informationen erhalten
Hinweise, Absicherung
Momentan führen wir alles mit dem root Benutzer aus,
dass heißt der Teamspeak Prozess hat Vollzugriff auf unser System.
Um unser System abzusichern legen wir einen gesonderten Benutzer/User an,
der solche Arten von Prozessen startet:
linux:~# adduser ts3
(hier kann auch ein Benutzer namens programme erstellt werden, mit dem man auch ähnliche Prozesse wie Teamspeak 3 startet)
Nun geben wir dem User ein Passwort und lassen die optionalen Felder leer.
Das System erstellt nun einen Ordner mit dem gleichen Namen wie der Benutzer unter /home.
Dort schieben wir den Teamspeak Ordner hinein und starten in Zukunft nur noch mit diesem Benutzer den Server.
Damit wir vom root Benutzer auf diesen Benutzer wechseln können, müssen wir foglendes eingeben:
cd ../
mv ts3 /home/ts3
chown /home/ts3 ts3:root
(Besitzrechte dem Benutzer ts3 für diesen Ordner vergeben)
su ts3
(Bentzer wechseln)
Danach starten wir den Server mit dem Benutzer ts3 mit den oben genannten Start-/Stopbefehlen und der Server ist soweit fertig.
Config Dateien konfigurieren
Standardmäßig werden keine Config Dateien vom Server erstellt, so dass wir dies zuerst manuell durchführen müssen.
Um die INI-Datei zu generieren benutzen wir folgenden Befehl in unserer Kommandozeile:
./ts3server_linux_amd64 createinifile=1 und erhalten in etwa diese Meldung:
./ts3server_linux_amd64 createinifile=1
2014-11-14 16:28:57.456897|INFO |ServerLibPriv | | TeamSpeak 3 Server 3.0.11.1 (2014-10-15 07:06:31) 2014-11-14 16:28:57.457427|INFO |ServerLibPriv | | SystemInformation: Linux 3.2.41-042stab092.3 #1 SMP Sun Jul 20 13:27:24 MSK 2014 x86_64 Binary: 64bit 2014-11-14 16:28:57.458849|INFO |DatabaseQuery | | Please make sure you use the supplied ts3server_minimal_runscript.sh to run the server, or set LD_LIBRARY_PATH yourself 2014-11-14 16:28:57.458941|CRITICAL|DatabaseQuery | | unable to load database plugin library "libts3db_sqlite3.so", halting!
Nun befindet sich eine Datei namens ts3server.ini in unserem Teamspeak-3-Server Verzeichnis und hat in etwa folgende Standardeinstellungen:
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 dbplugin=ts3db_sqlite3 dbpluginparameter= dbsqlpath=sql/ dbsqlcreatepath=create_sqlite/ dblogkeepdays=90 logpath=logs logquerycommands=0 dbclientkeepdays=30
Eine genaue Auflistung aller Parameter und deren Funktion findet ihr » hier.
Ihr könnt diese Datei nun mit einem Editor bearbeiten und nach euren Bedürfnissen anpassen (Port ändern etc. ...):
vi ts3server.ini
- INI-Datei öffneni
- Mit dem Drücken der Taste i begebt ihr euch in den EditiermodusESC
- Editiermodus beenden:wq
- Mit Enter bestätigen, speichert die Datei:q!
- Mit Enter bestätigen, schließt die Datei ohne zu speichern.
Das reine Ändern der Einstellungen wird allerdings nicht vom Server übernommen. Damit die Einstellungen auch wirksam sind,
müssen wir jedes Mal dem Server mitteilen, dass er die INI-Datei auch benutzen soll. Dies geht mit folgendem Parameter:
./ts3server_linux_amd64 inifile=ts3server.ini
Dies ist natürlich sehr umständlich, da die Konfigurationen nicht geladen werden, wenn der genannte Parameter weggelassen wird.
Zum anderen sei gesagt, dass die vorhandene Konfigurationsdatei mit dem erneuten aufruf von createinifile überschrieben wird!
Selbstverständlich gibt es aber auch eine automatisierte Lösung.
Dazu öffnet man die Datei namens ts3server_startscript.sh und ändern folgendes:
vi ts3server_startscript.sh
#!/bin/sh # Copyright (c) 2010 TeamSpeak Systems GmbH # All rights reserved COMMANDLINE_PARAMETERS="${2}" #add any command line parameters you want to pass here
Die ersten fünf Zeilen der Datei sehen in etwa wie oben aus.
Entscheidend ist die fünfte Zeile. Wie der vorhandene Kommentar schon hinweist,
kann hier jeder Startparameter angefügt werden. Hier fügen wir nun ein, dass der Server immer mit der Config-Datei geladen werden soll:
i
- Editiermodus starten
COMMANDLINE_PARAMETERS="inifile=ts3server.ini"
ESC
- Editiermodus beenden
:wq
- Mit Enter bestätigen, um die Datei zu speichern
Anschließend startet man den Server mit ./ts3server_startscript.sh restart neu und der Server wird mit den entsprechenden Config-Einstellungen gestartet.
Teamspeak-3 Server mit MySQL verwenden
Standardmäßig wird der TS-Server mit SQLite betrieben.
Wer allerdings einen MySQL Server zur Verfügung hat oder/und schlicht ein paar Daten mit einer Website auslesen will kann den Server auch mit MySQL oder MariaDB betreiben.
Um unseren Server auf MySQL umzustellen, müssen wir wieder manuell eine Konfigurationsdatei anlegen und folgendes einfügen:
vi ts3db_mysql.ini
[config] host=localhost port=3306 username=[user] password=[pw] database=teamspeak3 socket=
Die Parameter sind selbsterklärend, hier fügt man die Verbindungsdaten von seinem MySQL Server ein.
Jetzt müssen wir dem Server noch mitteilen, dass diese Datei exisitert und in der im vorherigen Kapitel erstellte Konfigurationsdatei ein paar Parameter ändern:
vi ts3server.ini
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=127.0.0.1 query_ip_whitelist=query_ip_whitelist.txt query_ip_blacklist=query_ip_blacklist.txt dbplugin=ts3db_mysql dbpluginparameter=ts3db_mysql.ini dbsqlpath=sql/ dbsqlcreatepath=create_mysql/ dblogkeepdays=90 logpath=logs logquerycommands=0 dbclientkeepdays=30
Wenn alle Einstellungen richtig definiert wurden und die Datenbank existiert, erstellt der Teamspeak Server nach einem Neustart Tabellen in der definierten Datenbank.
Sollte ein Fehler auftreten oder es aus einem unbekannten Grund nicht funktionieren, hilft ein Blick in den Ordner Log.
Dort befinden sich mehrere Dateien. Uns interessiert natürlich nur die neuste Datei und dort suchen wir die Ursache unseres Problems. Meistens steht in der Fehlermeldung genau drin, warum es nicht funktioniert.
Sollte man allerdings nicht weiter kommen, kann man unten gerne einen Kommentar hinterlassen mit der Fehlermeldung und einer kurzen Schilderung des Problems!
Verwendung von MariaDB
Seit der Teamspeak-Server-Version 3.0.11 wurde die MySQL Schnittstelle durch MariaDB ersetzt.
MariaDB ist ein Fork (Abspaltung) von MySQL und angeblich 100% Kompatibel zum nativen MySQL.
Allerdings wird nun mindestens die MySQL Version 5.5.3 oder MariaDB 5.5 benötigt,
ansonsten muss man die alten MySQL Libs von Hand besorgen oder beim Standard - SQLite verweilen.
Grundlegend unterscheidet sich die Verwendung von MariaDB nicht sonderlich vom zuvor erklärtem Kapitel MySQL.
Es muss jedeglich die Config Datei ein wenig angepasst werden:
vi ts3server.ini
machine_id=1 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=127.0.0.1 query_ip_whitelist=query_ip_whitelist.txt query_ip_blacklist=query_ip_blacklist.txt dbplugin=ts3db_mariadb dbpluginparameter=ts3db_mariadb.ini dbsqlpath=sql/ dbsqlcreatepath=create_mariadb/ dblogkeepdays=90 logpath=logs logquerycommands=0 dbclientkeepdays=30
Die Datei ts3db_mariadb.ini ist genau dieselbe wie ts3db_mysql.ini.
Man nennt diese allerdings um, falls zu einem späteren Zeitpunkt Änderungen in dieser Datei vorgenommen werden.
Falls man bereits einen älteren Server betrieben hat und nun auf MariaDB updaten möchte, muss man seine Tabellen ebenfalls updaten.
Hierfür gibt es im TS3-Ordner sql/updates_and_fixes/ zwei Dateien namens:
- convert_mysql_to_mariadb.sql
- mariadb_fix_latin_utf8.sql
Diese SQL-Dumps müssen in der alten Teamspeak Datenbank ausgeführt werden,
damit die Struktur und die neue Coallition von UTF-8 für alle bestehenden Daten übernommen werden. Ansonsten erhält man Errors und falsche Sonderzeichen.
Ausführen lassen sich diese zwei Dumps entweder über PHPMyAdmin oder mit einem Programm wie Navicat.
Zu guter Letzt muss noch die Datei libmariadb.so.2 im Ordner ts3/redist in das Teamspeak 3 Hauptverzeichnis verschoben werden.
Wurde dies nicht getan erhält man folgenden Fehler:
./ts3server_startscript.sh start
Starting the TeamSpeak 3 server |CRITICAL|DatabaseQuery | | unable to load database plugin library "libts3db_mariadb.so", halting!
Nachdem die Datei verschoben wurde müsste der Teamspeak 3 Server ohne Fehler starten.
In manchen Fällen muss diese lib allerdings installiert werden. Eine genauere Anleitung,
wie man das anstellt findet man » hier
Kommentare anzeigen - Nachricht erstellen - Admin
Admin #1
(Freitag, 14.11.2014 17:56)
Gibt es Verbesserungsvorschläge, Probleme oder sonstige Dinge, hinterlasst gerne einen Kommentar und ihr erhaltet in der Regel 1-3 Tage später eine Anwort!
Grüße