Benutzer-Werkzeuge

Webseiten-Werkzeuge


blog:wie_zu_kostenlosen_teamspeak-server_aufsetzen

Wie zu: Kostenlosen Teamspeak-Server aufsetzen

Ich habe schon seit längerem einen Account bei Oracle. die (vermutlich, um ihre Cloud zu bewerben) kostenlose Server anbieten. Näheres zu den Angeboten findet Ihr hier.

Konkret interessierten mich hier die „AMD Compute VMs“, die als „always free“ beworben werden:

Da ich mir über einen längeren Zeitraum ziemlich einen abgebrochen habe, bis ich auf einem der Server mal etwas zum Laufen bekommen habe, auf das ich auch von außen zugreifen konnte, dachte ich, ich mache mal ein wie-zu, in dem ich alle Schritte zeige, die (reproduzierbar 1)) zu einem eigenen Teamspeak-Server für Lau führen.

Instanz aufsetzen

Also, auf zu Oracle! Ich werde den Registrierungsprozess hier nicht beschreiben, ich denke, das bekommt man auch so hin.

Nach der (hoffentlich erfolgreichen) Registrierung legt man nun den Server an: Nachdem man ein „Compartment“ angelegt hat, legt man unter „Instances“ eine neue Instanz an.

Man gibt der Instanz einen Namen (oder lässt den Vorschlag stehen, ist halt nicht so schön), dann ändert man unter „Image and Shape“ das Image auf „Canonical Ubuntu“ (hier 22.04.) und wählt als Shape unter „Specialty and previous generation“ die einzige Möglichkeit „VM Standard“ aus.

Das macht man deshalb, weil die anderen kostenlosen Varianten Arm-Prozessoren haben und das hinterher zu allen möglichen Problemen führen kann, wenn man - wie ich - keine Ahnung hat, was man da tut.

Zur Authentifizierung wählt man SSH-Keys. Hier kann entweder ein vorhandenes pub-File hochladen oder ein neues generieren lassen. Im Zweifel das Pair nehmen, welches Oracle generiert hat und sicherheitshalber beide Dateien (key.pub und .key) speichern.

Den Rest der Einstellungen kann man so lassen, wie sie sind. Alles bestätigen und dann dauert es etwas, bis die Instanz deployed und gestartet ist.

Nun sollte das etwa so aussehen:

Wichtig sind hier die IP-Adresse und der Username, die braucht man im übernächsten Schritt.

Ingress-Rules

Zuerst muss man aber noch die Ingress-Regeln anpassen. Dazu klickt man auf den Link zum Subnet (im Screenshot oben hervorgehoben), dann auf die dazugehörende Security-Liste:

In dieser Security-Liste müssen jetzt die Port-Weiterleitungen für TeamSpeak eingerichtet werden. Oben links auf „Add Ingress Rules“ klicken und dann Regeln für die Ports 9987, 30033, 10011, 10080, 10443 und 41144 anlegen.

Hier mal eine Beispielregel für den Voice-Port:

Die gelb hervorgehobenen Felder müssen ausgefüllt sein. Die weiteren Regeln unterscheiden sich nur im IP-Protokoll (udp oder tcp) und dem Port. Die Beschreibung ist optional. Eine Liste aller benötigten Ports findet man bei Teamspeak.

Am Ende sollte man dann so eine Liste haben2):

Dann ist man im Interface von Oracle erst mal fertig und es geht im Terminal weiter.

Server installieren

Um die Verbindung aufzubauen, macht man im Terminal eine ssh-Session auf. Format ist ssh -i keyfile user@ip-adresse

Passend zum obigen Screenshot wäre das dann3):

ssh -i ssh-key-2022-10-17.key ubuntu@1144.24.186.174
 
Are you sure you want to continue connecting (yes/no/[fingerprint])? yes

Dann erst mal das System updaten, ist ja schließlich schon ein oder zwei Minuten her, dass man es installiert hat:

sudo apt update
sudo apt upgrade

Jetzt muss noch ein Programm namens bzip2 installiert werden, sonst schlägt nachher das Entpacken von TeamSpeak fehl:

sudo apt install bzip2

Jetzt kommt der Teil, der mir die meisten Probleme bereitet hat: Die Firewall bzw. die nötigen Ports zu öffnen. Neben den Ingress-Rules oben hat folgendes schließlich zumn Erfolg geführt:

# Firewall abschalten
sudo ufw disable
 
# Die alte IP-Tabelle ins Klo spülen:
sudo iptables --flush
 
# Die nötigen Ports wieder aufmachen:
# Zuerst ssh, sonst ist nach dem Einschalten der Firewall das Terminal
# hinüber und man kann eine neue Instanz erstellen:
 
sudo ufw allow 22/tcp
 
 
# Dann die Ports für Teamspeak:
 
sudo ufw allow 3033/tcp
sudo ufw allow 9987/udp
sudo ufw allow 1011/tcp
sudo ufw enable

Anmerkung: Hier fehlen noch ein paar Ports (siehe Liste), aber die habe ich bis jetzt nicht gebraucht…

Wenn das Terminal jetzt noch reagiert, ist schon einiges geschafft!

Nun braucht man einen User für Teamspeak, damit das nicht unnötig als Root läuft:

sudo adduser --disabled-login teamspeak 
 
#(da kann alles leer bleiben, am Ende nur Yes wählen)

Entfernen des ohnehin nicht vorhandenen Passworts:

sudo passwd -d teamspeak

Bis ich diese Zeile heraus hatte, war wieder einige Zeit ins Land gegangen. Toll, wie viel Zeit einen kein Passwort kosten kann..

Jetzt den User wechseln und in sein Home-Verzeichnis wechseln:

su teamspeak
cd ~

Den Server runterladen:

wget https://files.teamspeak-services.com/releases/server/3.13.7/teamspeak3-server_linux_amd64-3.13.7.tar.bz2

Achtung: Hier kann es eine neue Version geben, einfach mal bei Teamspeak schauen, was aktuell ist!

Den ganzen Bumms entpacken:

tar xvjf teamspeak3-server_linux_amd64-3.13.7.tar.bz2
# Damit das nicht fehlschägt, haben wir vorhin bzip2 installiert.

Jetzt kommt ein bisschen Hausmeisterei, das geht sicher auch eleganter. Wer es kann, darf gerne seine eigenen Befehle anwenden:

cd teamspeak3-server_linux_amd64
 
cp * -R /home/teamspeak
 
cd ..
 
rm -r teamspeak3-server_linux_amd64
 
rm teamspeak3-server_linux_amd64-3.13.7.tar.bz2 

Damit der Server nachher startet, muss man ihm zeigen, dass man die Lizenz akzeptiert. Dazu legt man eine entsprechende (leere) Datei an:

touch .ts3server_license_accepted

Jetzt kann der Server gestartet werden:

./ts3server_startscript.sh start

Wenn der Server gestartet ist, bekommt man ein paar Infos eingeblendet, die man unbedingt kopieren und irgendwo sichern muss:

------------------------------------------------------------------
                      I M P O R T A N T                           
------------------------------------------------------------------
               Server Query Admin Account created                 
         loginname= "serveradmin", password= "123jn1234jkn"
         apikey= "NhasqlösjkNlöäasdküiopj18389"
------------------------------------------------------------------


------------------------------------------------------------------
                      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=NRWnj2bxaödkljsfLJKNlQTIwokjkpuhWIxRu1j
------------------------------------------------------------------

Nun den User Teamspeak verlassen:

exit

Damit TS als Service gestartet wird, braucht es noch eine Datei, die legt man mit nano an:

sudo nano /lib/systemd/system/teamspeak.service

In diese Datei kommt dann folgender Inhalt:

[Unit]
Description=Teamspeak Server Service
Wants=network.target

[Service]
WorkingDirectory=/home/teamspeak
User=teamspeak
ExecStart=/home/teamspeak/ts3server_minimal_runscript.sh
ExecStop=/home/teamspeak/ts3server_startscript.sh stop
ExecReload=/home/teamspeak/ts3server_startscript.sh restart
Restart=always
RestartSec=15

[Install]
WantedBy=multi-user.target

Speichern mit STRG+o, verlassen mit STRG+x. Als nächstes den Service „enablen“, wir wir Franzosen sagen:

sudo systemctl enable teamspeak.service

It's done Jim, it's done!

Teamspeak Client

Jetzt kann man den Teamspeak-Client seiner Wahl anwerfen und sich zum Server verbinden. Wenn man sich das erste Mal zu seinem neuen Server verbindet. wird man darauf hingewiesen, dass der Server-Admin noch nicht „beansprucht“ wurde. Um das zu tun, gibt man in das Feld „priviledged key“ den Token aus der Meldung nach der Installation des Servers ein (den man sich hoffentlich irgendwohin gespeichert hat…)

Das sollte es nun gewesen sein, ich habe bis jetzt auf diesem Server nur zu zweit gesprochen, aber das hat wirklich gut und in einer super Tonqualität funktioniert. Wichtig war mir auch, eine Alternative zu diesem absolut räudigen Discord zu haben, was nicht nur aus Datenschutzgründen der totale Horror ist, sondern auch noch einen wirklich ranzigen Linux-Client hat, der mir jedes mal die Zornesadern anschwellen ließ, wenn ich gezwungen war, ihn zu benutzen.

Ich hoffe, ich kann mit dieser Anleitung dem einen oder anderen etwas helfen. Enjoy!

Quellen

1)
zumindest einmal & für mich
2)
die ersten drei Punkte haben nichts mit TS zu tun, aber man braucht auf jeden Fall Port 22/tcp für SSH!
3)
der Dateiname ist natürlich immer ein anderer!

Diskussion

Geben Sie Ihren Kommentar ein. Wiki-Syntax ist zugelassen:
G᠎ G A D F
 
blog/wie_zu_kostenlosen_teamspeak-server_aufsetzen.txt · Zuletzt geändert: 2022/10/19 17:09 von frank