// VPS

Gameserver auf dem vServer mit SteamCMD: Ports und systemd

Gameserver auf dem vServer mit SteamCMD: Ports und systemd

Mit SteamCMD, der Kommandozeilenversion von Steam, installierst du den Dedicated Server von Spielen wie Valheim, Palworld und Satisfactory auf einem Linux-vServer. Du installierst das Paket steamcmd, lädst den Server mit +login anonymous +app_update und der App-ID des Servers herunter, öffnest die Spielports in der Firewall und lässt einen systemd-Service ihn starten und aktualisieren.

Wann du einen Steam-Server selbst auf einem vServer betreibst

Ein eigener VPS ist sinnvoll, wenn du mehr willst als einen Server: Valheim und Palworld nebeneinander, einen Discord-Bot dazu, eigene Scripts, Mods, die du selbst pflegst, oder einfach lernen, wie es funktioniert. Du bekommst Root-Zugriff und entscheidest alles selbst, auch wann aktualisiert wird.

Willst du vor allem spielen, ist ein fertiger Gameserver weniger Arbeit: Das Panel übernimmt Installation, Updates und Einstellungen. Wie das bei Valheim geht, liest du in Valheim Dedicated Server: der komplette Guide, und für Satisfactory in Satisfactory Dedicated Server einrichten.

Welcher vServer für einen Steam-Gameserver?

Wähle Linux, zum Beispiel Ubuntu 22.04 oder neuer: Die meisten Steam-Server haben eine Linux-Version, und dir bleibt mehr Arbeitsspeicher als mit Windows. Für die CPU gilt, was für fast jeden Gameserver gilt: Die Weltsimulation setzt auf einen Hauptthread, ein schneller Kern zählt also mehr als viele Kerne. Deshalb passt der Premium-VPS mit Ryzen 9 hier gut: AMD Ryzen 9 9950X*, DDR5 und NVMe. Beim Arbeitsspeicher verwenden wir diese Untergrenzen, mit etwa 1 GB extra für das Betriebssystem:

SpielArbeitsspeicher für den ServerPremium-VPSPro Monat
Valheim (bis 4 Spieler)ab 4 GB, ab 5 Spielern 1–2 GB extra4 vCores, 8 GB15,30 €
Palworld12–16 GB6 vCores, 16 oder 20 GB28,00 € / 33,60 €
Rustab 12 GB6 vCores, 16 GB28,00 €

Ein kleiner Valheim-Server für eine feste Gruppe geht auch auf dem KVM-VPS mit EPYC: 4 vCores und 8 GB kosten dort 9,50 € im Monat. Der EPYC 7443P schafft bis zu 4,0 GHz, also pro Kern weniger als der Ryzen; das merkst du vor allem, wenn die Welt und die Zahl der Spieler wachsen. Betreibst du mehr als ein Spiel, zähl den Arbeitsspeicher zusammen; wie du das angehst, steht in Mehrere Gameserver auf einem vServer. Wie viel Arbeitsspeicher Palworld wirklich braucht, liest du in Wie viel RAM braucht dein Palworld-Server?

* oder AMD Ryzen 9 7950X3D, je nach Node.

SteamCMD unter Ubuntu installieren

SteamCMD liegt im Multiverse-Repository von Ubuntu und braucht 32-Bit-Bibliotheken. Melde dich per SSH an und führe aus:

sudo add-apt-repository multiverse
sudo dpkg --add-architecture i386
sudo apt update
sudo apt install steamcmd

Während der Installation bittet dich das Paket, die Lizenz von Steam zu akzeptieren. Das Programm landet in /usr/games/steamcmd. Leg danach einen eigenen Benutzer für deine Server an, damit eine Lücke in einem Gameserver nicht gleich Root-Zugriff gibt:

sudo adduser --disabled-password --gecos "" steam
sudo -iu steam

Den Server mit app_update herunterladen

Jeder Dedicated Server hat auf Steam eine eigene App-ID. Als Benutzer steam lädst du zum Beispiel Valheim so herunter:

steamcmd +force_install_dir /home/steam/servers/valheim +login anonymous +app_update 896660 validate +quit

Setz +force_install_dir immer vor +login; umgekehrt gibt SteamCMD eine Warnung aus. Mit +login anonymous lädst du die meisten Dedicated Server ohne Steam-Account herunter, dein eigenes Passwort muss also nicht auf den VPS. validate prüft alle Dateien und setzt geänderte Dateien zurück. Nutze es beim ersten Download und wenn etwas kaputt wirkt, nicht bei jedem Update, wenn du im Serverordner selbst Dateien angepasst hast.

Ordnerbaum eines Steam-Gameservers auf dem vServer: SteamCMD-Server unter /home/steam, Valheim-Welt in worlds_local und valheim.service in systemd
Was liegt wo: der Server, die Welt und der systemd-Service, mit Valheim als Beispiel.
SpielApp-ID des ServersLinux-Server
Valheim896660ja
Palworld2394010ja
Satisfactory1690800ja
Project Zomboid380870ja
Rust258550ja
7 Days to Die294420ja
Enshrouded2278520nein, nur Windows
ARK: Survival Ascended2430930nein, nur Windows

Ehrlich zu Windows-only-Servern. Enshrouded und ARK: Survival Ascended haben keinen Linux-Server. Du kannst die Windows-Version unter Linux mit +@sSteamCmdForcePlatformType windows vor +login herunterladen und unter Proton oder Wine starten, aber das wird nicht offiziell unterstützt, und ein Spiel-Update kann es jederzeit kaputt machen. Lieber stabil? Nimm Windows Server (beim KVM-VPS und beim VDS bei der Bestellung wählbar, beim Premium-VPS über das VPS-Panel installierbar) oder einen fertigen Server wie in Enshrouded-Server erstellen.

Ports und Firewall

Öffne nur die Ports, die dein Spiel nutzt, und SSH immer zuerst, sonst sperrst du dich selbst aus:

sudo ufw allow OpenSSH
sudo ufw allow 2456:2457/udp   # Valheim: Port und Port+1
sudo ufw allow 8211/udp        # Palworld
sudo ufw allow 7777            # Satisfactory, TCP und UDP
sudo ufw allow 8888/tcp        # Satisfactory, seit Version 1.1
sudo ufw enable

Wählst du in den Startoptionen einen anderen Port, pass die Regel entsprechend an. Wie du SSH und den Rest des VPS abdichtest, liest du in vServer absichern: die ersten 30 Minuten.

Automatisch starten und aktualisieren mit systemd

Valheim liefert ein Startskript mit, start_server.sh, aber laut Iron Gate wird diese Datei bei jedem Update zurückgesetzt. Leg deine Einstellungen deshalb in einem eigenen Service ab, /etc/systemd/system/valheim.service:

[Unit]
Description=Valheim dedicated server
Wants=network-online.target
After=network-online.target

[Service]
User=steam
WorkingDirectory=/home/steam/servers/valheim
Environment=LD_LIBRARY_PATH=/home/steam/servers/valheim/linux64
Environment=SteamAppId=892970
ExecStartPre=/usr/games/steamcmd +force_install_dir /home/steam/servers/valheim +login anonymous +app_update 896660 +quit
ExecStart=/home/steam/servers/valheim/valheim_server.x86_64 -name "Unsere Welt" -port 2456 -world "Dedicated" -password "waehl-was-langes" -public 1
KillSignal=SIGINT
TimeoutStartSec=600
TimeoutStopSec=60
Restart=on-failure
RestartSec=10

[Install]
WantedBy=multi-user.target
sudo systemctl daemon-reload
sudo systemctl enable --now valheim
journalctl -u valheim -f
  • ExecStartPre holt bei jedem Start zuerst die neueste Version. Das ist nötig, denn nach einem Spiel-Update können sich Spieler oft erst wieder verbinden, wenn der Server dieselbe Version hat. Aktualisieren heißt damit sudo systemctl restart valheim; TimeoutStartSec=600 gibt einem großen Update genug Zeit.
  • KillSignal=SIGINT stoppt den Server wie Strg+C in der Konsole: die Art des Herunterfahrens, die Iron Gate selbst vorschreibt. TimeoutStopSec=60 gibt ihm eine Minute, um sauber zu stoppen.
  • Restart=on-failure startet ihn nach einem Absturz neu, und enable sorgt dafür, dass er nach einem Neustart des VPS von selbst hochfährt.

Das Passwort muss mindestens 5 Zeichen haben und darf nicht im Servernamen vorkommen, sonst startet Valheim nicht. Für Palworld baust du den Service genauso, mit PalServer.sh im Installationsordner als ExecStart und App-ID 2394010; schau in der Dokumentation jedes Spiels nach, welche Startoptionen es kennt. Willst du jede Nacht einen frischen Neustart, trag in die Crontab von root ein: 0 5 * * * systemctl restart valheim.

Backups und Spielstände: Wo liegt deine Welt?

Bei Valheim unter Linux liegt die Welt nicht im Serverordner, sondern im Home-Verzeichnis des Benutzers: /home/steam/.config/unity3d/IronGate/Valheim/worlds_local. Valheim macht zwar selbst automatische Backups, die liegen aber auf derselben Festplatte. Kümmere dich deshalb selbst um eine Kopie, zum Beispiel jede Nacht per Cron als Benutzer steam (leg zuerst ~/backups an):

30 4 * * * tar -czf /home/steam/backups/valheim-$(date +\%F).tar.gz -C /home/steam/.config/unity3d/IronGate/Valheim worlds_local

In einer Crontab braucht das Prozentzeichen einen Backslash, daher \%F. Räum alte Archive auf, etwa mit find /home/steam/backups -mtime +14 -delete, und hol sie regelmäßig auf eine andere Maschine oder deinen eigenen PC, zum Beispiel per SFTP. Ein Backup, das nur auf demselben VPS liegt, ist kein Backup. Bei anderen Spielen liegen die Spielstände woanders; schau pro Spiel nach, welchen Ordner du mitnehmen musst, bevor du etwas löschst oder neu installierst.

Häufige Fragen

Was ist SteamCMD?

SteamCMD ist die Kommandozeilenversion des Steam-Clients von Valve. Damit lädst du Dedicated Server von Steam-Spielen herunter und aktualisierst sie, ohne grafische Oberfläche. Unter Ubuntu installierst du ihn als Paket steamcmd aus dem Multiverse-Repository.

Muss ich mich mit meinem eigenen Steam-Account anmelden?

Für die meisten Dedicated Server nicht: Mit +login anonymous lädst du unter anderem Valheim, Palworld, Satisfactory und Rust ohne Account herunter. So muss kein Passwort deines eigenen Steam-Accounts auf dem VPS liegen. Verlangt ein Server doch einen Account, steht das in der Dokumentation des Spiels.

Welche Gameserver laufen nicht unter Linux?

Enshrouded und ARK: Survival Ascended haben nur einen Windows-Server. Unter Linux geht das mit Proton oder Wine, aber das wird nicht offiziell unterstützt und kann bei einem Spiel-Update kaputtgehen. Wähle für diese Spiele Windows Server auf deinem VPS oder einen fertigen Gameserver.

Wie viel RAM braucht ein Steam-Gameserver?

Das ist je nach Spiel verschieden. Wir gehen von mindestens 4 GB für Valheim (ab 5 Spielern 1 bis 2 GB extra), 12 bis 16 GB für Palworld und mindestens 12 GB für Rust und ARK aus. Rechne etwa 1 GB für das Betriebssystem dazu, und zähl bei mehreren Servern den Arbeitsspeicher zusammen.

Weiterlesen

// SELBST AUSPROBIEREN
Dein Minecraft-Server in 60 Sekunden online
Pakete ansehen →