In diesem Tutorial wird erläutert, wie Sie einen Team Fortress 2-Server unter Arch Linux einrichten. Ich gehe davon aus, dass Sie mit einem Nicht-Root-Benutzerkonto angemeldet sind, das über Sudo-Zugriff verfügt. In diesem Lernprogramm wird AUR zum Erstellen von Paketen verwendet. Dieser Vorgang sollte nicht über das Root-Konto ausgeführt werden.
Bevor Sie beginnen
Es ist sehr wichtig, dass Sie das multilib
Repository genau dann aktiviert haben, wenn Sie sich auf einem 64-Bit-Server (amd64) befinden. Wenn es nicht aktiviert ist, kann SteamCMD nicht ausgeführt werden und Sie können nicht einmal die Serverdateien herunterladen. Dazu müssen Sie die folgenden Zeilen in auskommentieren /etc/pacman.conf
.
[multilib]
Include = /etc/pacman.d/mirrorlist
Wenn Sie sich auf einem 32-Bit-Arch (i686) befinden, können Sie dies ignorieren.
Installieren Sie SteamCMD
Es gibt ein AUR-Paket für SteamCMD und es ist eine der einfachsten Möglichkeiten, SteamCMD auf Arch zu installieren. Es gibt jedoch ein paar seltsame Dinge:
- Alle relativen Pfade sind relativ zu
/usr/share/steamcmd
.
- Um SteamCMD selbst zu aktualisieren, müssen Sie root sein.
Wenn Sie sich auf einem 64-Bit-Server befinden, müssen Sie das Paket installieren lib32-gcc-libs
.
sudo pacman -Sy lib32-gcc-libs
Jetzt müssen wir das Paket erstellen. Laden Sie mit Curl den Tarball für das Paket herunter.
curl -O http://media.steampowered.com/installer/steamcmd_linux.tar.gz
Extrahieren Sie nach Abschluss des Downloads das erstellte Verzeichnis und wechseln Sie in das erstellte Verzeichnis.
tar -xvzf steamcmd.tar.gz
cd steamcmd
Erstellen Sie nun mit makepkg das Paket.
makepkg -ci
Wenn Sie das -i
Flag nicht an den Befehl makepkg übergeben haben, installieren Sie es mit pacman.
sudo pacman -U *.pkg.tar.xz
Sie haben jetzt SteamCMD installiert und können den Team Fortress 2-Server herunterladen.
Installieren Sie den Team Fortress 2-Server
In diesem Handbuch wird ein separater Benutzer zum Ausführen des Servers verwendet. Daher erstellen wir einen neuen tf2-Benutzer und eine neue Gruppe mit einem eigenen Basisordner /var/lib
.
sudo groupadd tf2
sudo mkdir /var/lib/tf2
sudo useradd -d /var/lib/tf2 -g tf2 -s /bin/bash tf2
sudo chown tf2.tf2 -R /var/lib/tf2
Nun installieren Sie den Server.
sudo -u tf2 steamcmd +login anonymous +force_install_dir ~tf2/server +app_update 232250 validate +quit
Sobald der Download abgeschlossen ist, haben Sie den Server installiert.
Konfigurieren
Obwohl Sie den Server ausführen können, sollten einige Konfigurationen vorgenommen werden, damit der Server nicht zu allgemein ist. Die Hauptdatei, in die wir Einstellungen vornehmen, ist die server.cfg
Datei. Unten ist eine sehr einfache server.cfg
Datei.
Verwenden Sie zum Öffnen / Erstellen der Datei Ihren bevorzugten Editor. Hier wird vim verwendet, aber Sie können jeden Texteditor wie nano verwenden.
sudo -u tf2 vim ~tf2/server/tf/cfg/server.cfg
Fügen Sie Folgendes hinzu. Weitere Einstellungen finden Sie auf der Team Fortress 2-Wiki- und Valve-Entwicklerseite. Stellen Sie sicher, dass Sie einige Einstellungen an Ihre Bedürfnisse anpassen.
hostname "Server Name"
rcon_password "password"
sv_password ""
sv_contact "[email protected]"
sv_tags ""
sv_region "255"
sv_lan "0"
exec banned_user.cfg
exec banned_ip.cfg
writeid
writeip
Ausführen Ihres Servers
Es ist bekannt, dass Sie einen Multiplexer wie GNU Screen oder tmux benötigen , um Ihren Server unbeaufsichtigt auszuführen. Hier werden wir tmux verwenden , um den Server auszuführen. Wenn Sie jedoch den Bildschirm bevorzugen und wissen, wie er verwendet wird, können Sie ihn gerne verwenden.
Installieren Sie tmux mit pacman.
sudo pacman -Sy tmux
Sie können den Server mit dem folgenden Befehl starten. Sie können die Karte und die Maxplayer bei Bedarf ändern.
sudo -u tf2 tmux new-session -d -s tf2-console -d '~tf2/server/srcds_run -console -game tf +map cp_dustbowl +maxplayers 24'
Wenn Sie jemals eine Verbindung zur Konsole herstellen müssen, führen Sie Folgendes aus.
sudo -u tf2 tmux attach -t tf2-console
Sie können die Serverkonsole verlassen, indem Sie STRG + B eingeben , diese Tasten loslassen und dann D drücken .
Laufen mit systemd
Das Ausführen des Servers mit systemd ist aus vielen Gründen praktisch. Das wichtigste ist, dass Sie es starten können, wenn der VPS startet. Dazu müssen ein Skript und eine systemd-Einheit geschrieben werden. Obwohl dies eine gute Idee ist, ist sie optional .
Das erste, was zu schreiben ist, ist das Startskript. Verwenden Sie zum Erstellen des Skripts Ihren bevorzugten Editor. Hier wird vim verwendet, aber Sie können jeden Texteditor wie nano verwenden.
sudo -u tf2 vim ~tf2/server/tf2.sh
Fügen Sie Folgendes hinzu.
#!/bin/sh
USER=$2
if [ -z $2 ]; then
USER="tf2"
fi
case "$1" in
start)
sudo -u $ tmux new-session -d -s tf2-console -d '/var/lib/tf2/server/srcds_run -console -game tf +map cp_dustbowl +maxplayers 24'
;;
stop)
sudo -u $ tmux send-keys -t tf2-console 'say Server shutting down in 10 seconds!' C-m
sleep 10
sudo -u $ tmux send-keys -t tf2-console 'quit' C-m
sleep 5
;;
*)
echo "Usage: $0 user"
esac
exit 0
Jetzt müssen Sie die systemd-Einheit erstellen. Verwenden Sie zum Erstellen des Geräts Ihren bevorzugten Editor. Hier wird vim verwendet, aber Sie können jeden Texteditor wie nano verwenden.
sudo vim /usr/lib/systemd/system/tf2.service
Fügen Sie Folgendes hinzu.
[Unit]
Description=Team Fortress 2 Server (SRCDS)
After=local-fs.target network.target
[Service]
ExecStart=/var/lib/tf2/server/tf2.sh start
ExecStop=/var/lib/tf2/server/tf2.sh stop
Type=forking
[Install]
WantedBy=multi-user.target
Stellen Sie nun sicher, dass die tf2.sh
Datei ausführbar ist.
sudo chmod +x ~tf2/server/tf2.sh
Nach all dem können Sie systemctl
den Server starten und stoppen. Sie können es auch verwenden, um es beim Booten zu starten.
Anfangen:
sudo systemctl start tf2.service
Stoppen:
sudo systemctl stop tf2.service
Neustarten:
sudo systemctl restart tf2.service
So aktivieren Sie beim Booten:
sudo systemctl enable tf2.service
So deaktivieren Sie beim Booten:
sudo systemctl disable tf2.service
Obwohl systemd das Starten und Stoppen des Servers übernimmt, können Sie mit dem folgenden Befehl auf die Konsole zugreifen:
sudo -u tf2 tmux attach -t tf2-console
Schlussbemerkungen
SteamCMD wird in einem Bereich installiert, in dem nur root Dateien ändern kann (siehe Hinweis unter "SteamCMD installieren"). Wenn Sie SteamCMD jemals selbst aktualisieren müssen, führen Sie es einfach als root aus.
sudo steamcmd +quit
Wenn Sie den Server aktualisieren müssen. Stoppen Sie zuerst den Server und verwenden Sie dann SteamCMD zum Aktualisieren (mit demselben Befehl zum Installieren).
sudo systemctl stop tf2.service
sudo -u tf2 steamcmd +login anonymous +force_install_dir ~tf2/server +app_update 232250 validate +quit
sudo systemctl start tf2.service
Es gibt viel mehr Konfigurationsthemen, die in diesem Tutorial nicht behandelt werden. Wenn Sie weitere Informationen benötigen, lesen Sie bitte das Team Fortress 2-Wiki und das Valve Developer-Wiki.