SteamCMD Server einrichten: systemd, Automatisierung und Sicherheit
Windows und Linux: Schritt für Schritt SteamCMD Server einrichten mit systemd Units, automatischen Updates, Firewallhärtung und Option für verwaltetes...
Windows und Linux: Schritt für Schritt SteamCMD Server einrichten mit systemd Units, automatischen Updates, Firewallhärtung und Option für verwaltetes...
SteamCMD ist Valves offizielles Kommandozeilen-Tool, um Dateien für dedizierte Server herunterzuladen und zu aktualisieren. Der Kernbefehl lautet +force_install_dir <Verzeichnis> +login anonymous +app_update <APPID> [+validate] +quit. Ob Windows oder Linux: Die Logik bleibt gleich, nur die Installation und ein paar Systemvoraussetzungen unterscheiden sich. Die Details dazu folgen gleich, Schritt für Schritt.
Kurz gesagt:
- Wenn Sie einen dedizierten Spielserver selbst hosten, benötigen Sie einen nicht privilegierten Nutzer und eine klare Verzeichnisstruktur, um Fehler zu vermeiden.
- Für die Installation von SteamCMD unter Linux ist es zwingend erforderlich, die 32-Bit-Bibliotheken zu installieren, sonst startet der Client nicht.
- Die richtige Reihenfolge beim Herunterladen der Serverdateien ist
+force_install_dirvor+login, um Fehler bei der Installation zu verhindern.- Für einen stabilen Betrieb sollten Server
systemd-Dienste verwenden, um automatische Neustarts bei Fehlern zu gewährleisten.- Beim Öffnen von Netzwerkports muss nur die für das Spiel notwendige Range an Ports freigegeben und RCON-Zugriff nur aus dem internen Netzwerk erlaubt werden.
Bevor SteamCMD überhaupt startet, sollten ein paar Dinge stehen. Wer hier schludert, jagt später stundenlang Fehlermeldungen, die eigentlich vermeidbar gewesen wären.
/home/steam/serverfiles für die Spieldateien und ein separates Verzeichnis für SteamCMD selbst.lib32gcc-s1), da SteamCMD sonst auf 64-Bit-Systemen gar nicht erst startet.Profi-Tipp: Legen Sie sich schon vor der ersten Installation eine Notiz mit der genauen AppID Ihres Servers an. Viele Anleitungen verwechseln die Client-AppID mit der dedizierten Server-AppID, und das führt später zu ziemlich verwirrenden Fehlermeldungen.
Die Installation selbst dauert bei beiden Systemen nur wenige Minuten. SteamCMD lädt sich beim ersten Start ohnehin selbst nach, deshalb reicht ein schlankes Basispaket.
Unter Windows:
C:\steamcmd.steamcmd.exe. Beim ersten Aufruf lädt sich das Tool selbst komplett nach.Steam> erscheint, dann ist SteamCMD einsatzbereit.Unter Linux:
steamcmd in den Repositories führt, und installieren Sie es gegebenenfalls über den Paketmanager.wget herunter und entpacken es mit tar -xvzf steamcmd_linux.tar.gz../steamcmd.sh aus dem eigenen Benutzerkonto aus, niemals als Root.Als Standard-Werkzeug für moderne Steam-basierte Server hat SteamCMD das ältere HLDSUpdateTool praktisch vollständig abgelöst, weil es auf der SteamPipe-Infrastruktur aufbaut und Updates deutlich zuverlässiger ausliefert.
Die Reihenfolge der Befehle entscheidet, ob die Installation glatt läuft oder mit kryptischen Fehlermeldungen endet. Valve empfiehlt ausdrücklich, +force_install_dir vor +login zu setzen, denn die ältere Reihenfolge wird zwar noch toleriert, aber zunehmend als fehleranfällig eingestuft.
Ein typischer Aufruf für einen Counter-Strike-2-Server sieht so aus:
./steamcmd.sh +force_install_dir /home/steam/cs2 +login anonymous +app_update 730 +quitFür die meisten dedizierten Server reicht der anonyme Login völlig aus, ein persönlicher Steam-Account ist nicht nötig, was gerade Automatisierung erheblich vereinfacht. Häufigster Stolperstein ist die Fehlermeldung „No subscription“, die fast immer auf eine falsche AppID oder einen fehlerhaften Login-Modus zurückgeht. Wer Workshop-Inhalte laden möchte, etwa für Garry’s Mod, nutzt zusätzlich den Parameter +host_workshop_collection mit der jeweiligen Collection-ID.
Das Flag +validate prüft alle Dateien gegen Prüfsummen und ist bei der Erstinstallation oder zur Fehlersuche sinnvoll. Für den täglichen Update-Lauf gehört es aber nicht in den Standardbefehl, weil es lokale Anpassungen überschreiben kann und unnötig Zeit kostet.
Profi-Tipp: Führen Sie eine erste Installation immer mit +validate durch, danach aber nur noch bei konkreten Problemen. Das spart bei größeren Servern wie Rust oder Arma 3 spürbar Zeit bei jedem Update.
Nach der Installation folgt die eigentliche Konfiguration. Sie entscheidet, wie stabil und wie sicher der Server später läuft.
In der server.cfg gehören mindestens folgende Einträge gesetzt:
hostname für den öffentlichen Servernamenrcon_password mit einem starken, einzigartigen Passwortsv_maxplayers zur Begrenzung der SpielerzahlDie Startparameter steuern das Verhalten beim Serverstart selbst, etwa +map de_dust2, -port 27015 oder +maxplayers 20. Sie werden direkt beim Aufruf der Server-Executable übergeben, nicht über SteamCMD.
RCON verdient besondere Aufmerksamkeit. Beschränken Sie den Zugriff auf vertrauenswürdige IP-Adressen oder ein internes Netzwerk, und verwenden Sie niemals dasselbe Passwort wie für andere Dienste. Wichtig auch: Läuft +validate erneut, überschreibt es keine lokal angepasste server.cfg, solange die Datei nicht Teil des offiziellen Dateisatzes ist. Bei manchen Spielen lohnt sich trotzdem ein Backup der Konfiguration vor jedem größeren Update.
Ein Server, der bei jedem Absturz manuell neu gestartet werden muss, ist auf Dauer keine Lösung. Genau hier zahlt sich eine systemd-Unit aus.
User=steam, WorkingDirectory auf das Serververzeichnis und ExecStart auf die Start-Executable.Restart=on-failure und After=network-online.target, damit der Dienst erst nach vorhandener Netzwerkverbindung startet.LimitNOFILE, wenn viele gleichzeitige Verbindungen erwartet werden.+validate im Regelbetrieb.Diese Kombination aus Restart- und Limit-Optionen erhöht die Zuverlässigkeit von Game-Servern deutlich, gerade bei Spielen mit vielen kleinen Netzwerkpaketen.
Profi-Tipp: Testen Sie jedes Update zuerst auf einer Staging-Instanz und fahren Sie es zu verkehrsarmen Zeiten aus, bevor der Produktivserver dran ist.
Ein dedizierter Server braucht offene Ports, aber nicht wahllos alle. Jedes Spiel nutzt typischerweise einen Game-Port für die eigentliche Verbindung, einen separaten Query-Port für Serverabfragen und einen RCON-Port für die Fernsteuerung, meist über UDP für Spielverkehr und TCP für RCON.
Der Netzwerkstandort beeinflusst außerdem messbar die Latenz für Ihre Spieler, ein Grund, warum DDoS-Schutz und Serverstandort bei der Wahl des Hosting-Anbieters mindestens so wichtig sind wie die reine Hardware. Eine schwache Anbindung macht selbst den bestkonfigurierten Server für europäische Spieler unbrauchbar.
Die meisten Probleme lassen sich mit ein paar gezielten Prüfschritten lösen, statt die komplette Installation neu aufzusetzen.
+force_install_dir muss vor +login stehen.+validate-Lauf.Ein eigener SteamCMD-Server lohnt sich, wenn Sie Kontrolle über jedes Detail wollen und Zeit für Wartung, Updates und Sicherheitshärtung mitbringen. Wer dagegen Support-Aufwand, DDoS-Abwehr und Backups nicht selbst stemmen will, für den ist Managed Hosting oft die vernünftigere Wahl. Die Technik dahinter bleibt dieselbe, nur die Verantwortung verschiebt sich.
— Erik
Alles, was in diesem Artikel beschrieben wurde, lässt sich selbst umsetzen, kostet aber Zeit: Ports konfigurieren, systemd-Dienste absichern, Updates testen, Backups pflegen. Nexthosting übernimmt genau diese Aufgaben für Sie, während Sie sich um die Konfiguration Ihres Servers statt um dessen Infrastruktur kümmern. Statt eine eigene systemd-Unit zu pflegen und Firewall-Regeln von Hand zu justieren, bekommen Sie eine fertig bereitgestellte Umgebung, in der SteamCMD-Updates und Serververwaltung deutlich schneller laufen. Das lohnt sich besonders, wenn Sie mehrere Instanzen parallel betreiben oder schlicht keine Lust auf nächtliche Update-Fenster haben. Schauen Sie sich die Serverangebote für CS2 an oder werfen Sie einen Blick auf die VPS-Lösungen von Nexthosting, wenn Sie mehr Flexibilität für eigene SteamCMD-Installationen brauchen.
Weiterführend: die Valve Developer Documentation zu SteamCMD sowie ein praktisches Tutorial zur Spielserver-Einrichtung.
Sie installieren SteamCMD, legen mit +force_install_dir ein Zielverzeichnis fest, loggen sich mit +login anonymous ein und laden die Serverdateien mit +app_update <APPID> herunter. Danach folgt die Konfiguration über die server.cfg und passende Startparameter.
Nach der Installation starten Sie den Server über die jeweilige Server-Executable mit den passenden Startparametern, etwa Kartenname und Portnummer. Für dauerhaften Betrieb richten Sie zusätzlich eine systemd-Unit ein, die den Dienst automatisch neu startet.
Nein, für die meisten dedizierten Server reicht der anonyme Login über +login anonymous völlig aus, ein persönlicher Steam-Account ist nicht erforderlich.
Setzen Sie +validate bei der Erstinstallation oder wenn Sie einen konkreten Fehler beheben wollen. Für regelmäßige Updates lassen Sie es weg, da es lokale Konfigurationsanpassungen überschreiben kann.
In den meisten Fällen fehlen die 32-Bit-Bibliotheken wie lib32gcc-s1, die SteamCMD auch auf 64-Bit-Systemen zwingend benötigt. Eine Nachinstallation über den Paketmanager löst das Problem üblicherweise sofort.