TeamSpeak 2 Server

Aus Synology Wiki
Wechseln zu: Navigation, Suche
Was ist TeamSpeak? 
Eine VoIP-Anwendung, Details siehe [1]
Achtung! 
Die Installation eines TeamSpeak 2 Servers funktioniert nur mit x86 basierten Prozessoren, wie sie unter anderem in der DS710+ oder DS1010+ zum Einsatz kommen.

Voraussetzungen

Installation

In das Installationsverzeichnis für den TeamSpeak Server wechseln:

cd /usr/local

TeamSpeak Server für Linux laden:

wget ftp://ftp.freenet.de/pub/4players/teamspeak.org/releases/ts2_server_rc2_202319.tar.bz2

Das Archiv entpacken:

tar -jxvf ts2_server_rc2_202319.tar.bz2

Die Archivdatei löschen (wird nicht mehr benötigt):

rm ts2_server_rc2_202319.tar.bz2

In den Ordner mit den soeben entpackten Dateien wechseln:

cd tss2_rc2

Das binary file "server_linux" löschen (vorher die Zugriffsrechte notieren):

rm server_linux

Das update binary file "server_linux" laden (anschließend die Zugriffsrechte wieder anpassen):

wget ftp://ftp.freenet.de/pub/4players/teamspeak.org/developer/server/202401/server_linux

Teamspeak Server starten, wodurch automatisch die server.ini angelegt wird:

sh teamspeak2-server_startscript start

Teamspeak Server stoppen:

sh teamspeak2-server_startscript stop

Server.ini mit einem Editor (in diesem Fall mit nano) öffnen:

nano server.ini

Folgende Zeile editieren:

BoundToIp1=IP.DER.DISKSTATION

Nano mit Strg+X verlassen und server.ini speichern. Teamspeak Server wieder starten:

sh teamspeak2-server_startscript start

Passwörter für die beiden User admin und superadmin anzeigen lassen:

sh teamspeak2-server_startscript passwords

Weiterleitung der Ports am Router

Folgende Ports müssen noch an die DiskStation weitergeleitet werden:

  • Sprachübertragung: 8767 UDP
  • Webinterface: 14534 TCP
  • TCP Query: 51234 TCP

Jetzt sollte die Weboberfläche des Teamspeak 2 Servers unter der folgenden Adresse erreichbar sein:

HTTP://IP.DER.DISKSTATION:14534

Server Start/Stop Script

Damit der Server nach einem Neustart der DiskStation automatisch wieder gestartet wird, wechseln wir in das folgende Verzeichnis:

cd /usr/local/etc/rc.d

Nun legen wir mit nano eine neue Datei für das Startscript an:

nano tss2_rc2.sh

Das folgende Script wird in die Datei hineinkopiert:

#!/bin/sh
#
# Modified TeamSpeak 2 server startscript
# Original script written by: pwk.linuxfan 2004
#
# ./usr/local/etc/rc.d/
#
### BEGIN INIT INFO
# Provides: teamspeak2
# Short-Description: TeamSpeak 2 server
# Description: Start and stop your TeamSpeak 2 server...
### END INIT INFO

# CONFIG SECTION
USER=admin
DIR=/usr/local/tss2_rc2
# END OF CONFIG SECTION

case "$1" in
                start)
                                if [ -e $DIR/tss2.pid ]; then
                                         echo "tss2.pid already 
exists...";
                                         echo "Is your TeamSpeak 2 
server already running?"
                                         exit 1
                                else
                                         if [ "$UID" = "0" ]; then
                                                         for c in $(seq 
1 10); do
                                                                         
echo -n "!"
                                                                         
sleep 1
                                                         done
                                                         echo !
                                            fi
                                         echo "Starting the Teamspeak 2 
Server..."
                                         if [ -e $DIR/server_linux ]; 
then
                                                         if [ ! -x 
$DIR/server_linux ]; then
                                                                         
echo "server_linux is not executable..."
                                                                         
echo "Trying to set it."
                                                                         
chmod u+x $DIR/server_linux
                                                         fi
                                                         if [ -x 
$DIR/server_linux ]; then
                                                                         
WD=`pwd`
                                                                         
cd $DIR
                                                                         
sudo -u $USER $DIR/server_linux -PID=$DIR/tss2.pid
                                                                         
cd $WD
                                                         else
                                                                         
echo "server_linux is not executable..."
                                                                         
exit 4
                                                         fi
                                            else
                                                         echo "Could not 
find server_linux..."
                                                         exit 5
                                            fi
                                fi
                ;;
        stop)
                                if [ -e $DIR/tss2.pid ]; then
                                         echo -n "Stopping the TeamSpeak 
2 server..."
                                         if ( kill -TERM `cat 
$DIR/tss2.pid` ); then
                                                         for c in $(seq 
1 300); do
                                                                         
if [ -e $DIR/tss2.pid ]; then
                                                                                         
echo -n "."
                                                                                         
sleep 1
                                                                         
fi
                                                         done
                                            fi
                                         if [ -e $DIR/tss2.pid ]; then
                                                         echo "server 
does not shutdown cleanly..."
                                                         kill -KILL `cat 
$DIR/tss2.pid`
                                                         rm 
$DIR/tss2.pid
                                                         sleep 5
                                            else
                                                         echo "done"
                                            fi
                                else
                                         echo "tss2.pid does not 
exist...";
                                         echo "Is your TeamSpeak 2 
server already stopped?"
                                         #exit 7
                                fi
                ;;
                restart)
                                $0 stop && $0 start || exit 1
                ;;
                status)
                                if [ -e $DIR/tss2.pid ]; then
                                         echo "The TeamSpeak 2 server is 
running."
                                         exit 0
                                else
                                         echo "The TeamSpeak 2 server is 
stopped."
                                         exit 3
                                fi
                ;;
                passwords)
                                if [ -e $DIR/server.log ]; then
                                         date=$(cat $DIR/server.log | 
grep "admin account info: username: admin" | tail -n 1 | sed 
"s/^\([0-9]\+-[0-9]\+-[0-9]\+ [0-9]\+:[0-9]\+:[0-9]\+\).*$/\1/")
                                         spass=$(cat $DIR/server.log | 
grep "superadmin account info: username: superadmin" | tail -n 1 | sed 
"s/^.*username: superadmin password: \([a-z0-9]\+\).*$/\1/")
                                         pass=$(cat $DIR/server.log | 
grep "admin account info: username: admin" | tail -n 1 | sed 
"s/^.*username: admin password: \([a-z0-9]\+\).*$/\1/")
                                         echo "Following passwords were 
generated on $date"
                                         echo "superadmin = \"$spass\""
                                         echo "admin     = \"$pass\""
                                else
                                         echo "server.log not found..." 
                                         exit 1
                                fi
                ;;
                *)
                         echo "Usage: $0 
{start|stop|restart|status|passwords}"
                                exit 2
esac
exit 0
Jetzt wird noch der Installationspfad und der Benutzer eingetragen, der den Server starten soll. Die folgenden Zeilen müssen dafür editiert werden:
USER=admin
DIR=/usr/local/tss2_rc2

Nano mit Strg+X verlassen und das Startscript tss2_rc2.sh beim Beenden speichern. Zum Schluss müssen noch die Rechte der Datei richtig gesetzt werden:

chmod 755 tss2_rc2.sh

Nun sollte der TeamSpeak 2 Server nach einem Reboot der DiskStation wieder automatisch gestartet werden.

Konfiguration des Servers

Eine umfassende Dokumentation über die Konfiguration und Einrichtung des TeamSpeak 2 Servers findet man im unteren Teil des TeamSpeak FAQ.