suchdichsatt Suchroboter
Suchroboter
  • Impressum
  • Datenschutz
  • Sitemap
  • Kontakt
  • Gästebuch
Lupe
Home Tutorials Spieletipps Schule Warcraft 3

Teamspeak 3 Server unter Linux Debian - Tutorial

trennlinie

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

trennlinie

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

trennlinie

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
oder
linux:~# 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

trennlinie
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:
Teamspeak-3 Schlüssel, Token

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 starten
linux:~# ./ts3server_startscript.sh stop - Server stoppen
linux:~# ./ts3server_startscript.sh restart - Server neustarten
linux:~# ./ts3server_startscript.sh status - Server Status - Informationen erhalten



Hinweise, Absicherung

trennlinie
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

trennlinie
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 öffnen
i - Mit dem Drücken der Taste i begebt ihr euch in den Editiermodus
ESC - 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

trennlinie
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

trennlinie
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

trennlinie

  • PHP - Gästebuch
  • PHP - Kontaktformular
  • Download Zähler
  • Apache Webserver einrichten
  • Thunderbird
  • Warcraft 3
  • Minecraft Server - Windows
  • Minecraft Server - Linux
  • Subversion unter Linux
  • Teamspeak 3 Server unter Linux
  • Teamspeak 3 Design
Home Tutorials Spieletipps Schule Warcraft 3 Impressum Sitemap Kontakt Gästebuch