In diesem Tutorial wird erläutert, wie Sie einen Counter-Strike: Global Offensive-Server unter Arch Linux einrichten.
In diesem Lernprogramm wird davon ausgegangen, dass Sie mit einem Standardbenutzerkonto angemeldet sind und über Sudo-Berechtigungen verfügen. Wir werden ein normales Benutzerkonto verwenden, da das Erstellen von Paketen mit AUR nicht über das Root-Konto erfolgen sollte.
Bevor Sie beginnen
Wenn Sie eine 64-Bit-Version von Arch Linux verwenden, ist es sehr wichtig, dass Sie das multilib
Repository aktiviert haben. Wenn es nicht aktiviert ist, kann SteamCMD die Spielserverdateien nicht herunterladen oder ausführen. Um Multilib zu aktivieren, kommentieren Sie einfach die folgenden Zeilen aus /etc/pacman.conf
.
[multilib]
Include = /etc/pacman.d/mirrorlist
Dies gilt nicht für 32-Bit-Arch-Linux-Systeme.
Installieren Sie SteamCMD
Es gibt ein AUR-Paket für SteamCMD. Dies ist möglicherweise der einfachste Weg, SteamCMD auf Arch zu installieren. Es gibt jedoch ein paar Dinge zu beachten:
- Alle relativen Pfade sind relativ zu
/usr/share/steamcmd
.
- Um SteamCMD selbst zu aktualisieren, müssen Sie sich im Root-Konto befinden.
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 https://aur.archlinux.org/packages/st/steamcmd/steamcmd.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 dem folgenden Befehl.
sudo pacman -U *.pkg.tar.xz
Sie haben jetzt SteamCMD installiert und können den Counter-Strike: Global Offensive-Server herunterladen.
Installieren Sie den Counter-Strike: Global Offensive Server
In diesem Handbuch wird ein separater Benutzer zum Ausführen des Servers verwendet. Daher erstellen wir einen neuen csgo-Benutzer und eine neue Gruppe mit einem eigenen Basisordner /var/lib
.
sudo groupadd csgo
sudo mkdir /var/lib/csgo
sudo useradd -d /var/lib/csgo -g csgo -s /bin/bash csgo
sudo chown csgo.csgo -R /var/lib/csgo
Nun installieren Sie den Server.
sudo -u csgo steamcmd +login anonymous +force_install_dir ~csgo/server +app_update 740 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. In diesem Beispiel verwende ich vim.
sudo -u csgo vim ~csgo/server/csgo/cfg/server.cfg
Fügen Sie Folgendes hinzu. Weitere Einstellungen finden Sie im Valve Developer Wiki. 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
Um Ihren Server unbeaufsichtigt laufen zu lassen, benötigen Sie einen Multiplexer wie GNU Screen oder tmux . In diesem Artikel werde ich 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 bei Bedarf ändern. Bitte lesen Sie die "Final Notes" für weitere Informationen zu den game_type
und game_mode
Werten. Dieses Beispiel gilt für einen klassischen Casual Server.
sudo -u csgo tmux new-session -d -s csgo-console -d 'cd /var/lib/csgo/server/; ./srcds_run -console -game csgo -usercon +game_type 0 +game_mode 0 +mapgroup mg_active +map de_dust2'
Wenn Sie jemals eine Verbindung zur Konsole herstellen müssen, führen Sie Folgendes aus.
sudo -u csgo tmux attach -t csgo-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 csgo vim ~csgo/server/csgo.sh
Fügen Sie Folgendes hinzu und achten Sie darauf, die Zeile mit dem Startbefehl zu betrachten, da sie den Spielmodus und -typ hat.
#!/bin/sh
USER=$2
if [ -z $2 ]; then
USER="csgo"
fi
case "$1" in
start)
sudo -u $ tmux new-session -d -s csgo-console -d 'cd /var/lib/csgo/server/; /var/lib/csgo/server/srcds_run -console -game csgo -usercon +game_type 0 +game_mode 0 +mapgroup mg_active +map de_dust2'
;;
stop)
sudo -u $ tmux send-keys -t csgo-console 'say Server shutting down in 10 seconds!' C-m
sleep 10
sudo -u $ tmux send-keys -t csgo-console 'quit' C-m
sleep 5
;;
*)
echo "Usage: $0 user"
esac
exit 0
Jetzt müssen Sie die systemd-Einheit erstellen.
sudo vim /usr/lib/systemd/system/csgo.service
Fügen Sie Folgendes hinzu.
[Unit]
Description=Counter-Strike: Global Offensive Server (SRCDS)
After=local-fs.target network.target
[Service]
ExecStart=/var/lib/csgo/server/csgo.sh start
ExecStop=/var/lib/csgo/server/csgo.sh stop
Type=forking
[Install]
WantedBy=multi-user.target
Stellen Sie nun sicher, dass die csgo.sh
Datei ausführbar ist.
sudo chmod +x ~csgo/server/csgo.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 csgo.service
Stoppen:
sudo systemctl stop csgo.service
Neustarten:
sudo systemctl restart csgo.service
So aktivieren Sie beim Booten:
sudo systemctl enable csgo.service
So deaktivieren Sie beim Booten:
sudo systemctl disable csgo.service
Obwohl systemd das Starten und Stoppen des Servers übernimmt, können Sie mit dem folgenden Befehl auf die Konsole zugreifen.
sudo -u csgo tmux attach -t csgo-console
Schlussbemerkungen
SteamCMD wird in einem Bereich installiert, in dem nur root Dateien ändern kann (siehe Hinweis im Abschnitt "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 csgo.service
sudo -u csgo steamcmd +login anonymous +force_install_dir ~csgo/server +app_update 740 validate +quit
sudo systemctl start csgo.service
Der Spielmodus und der Spieltyp im Startbefehl sind wichtig, je nachdem, welche Art von Server Sie möchten. Hier ist eine kurze Tabelle der möglichen Werte.
Game Mode | game_type | game_mode
Classic Casual | 0 | 0
Classic Competitive | 0 | 1
Arms Race | 1 | 0
Demolition | 1 | 1
Deathmatch | 1 | 2
Es gibt viel mehr Konfigurationsthemen, die in diesem Tutorial nicht behandelt werden. Wenn Sie weitere Informationen benötigen, lesen Sie bitte das Valve Developer Wiki.