In diesem Guide werden wir einen Valheim Dedicated Server unter Windows, Linux und macOS herunterladen, konfigurieren und ausführen.
Ein Dedicated Server gibt euch eine persistente Welt, die weiterläuft, egal ob jemand eingeloggt ist oder nicht – ein echter Fortschritt gegenüber dem Host-and-Play-Setup, mit dem die meisten Gruppen starten. Valheims Server ist kostenlos, benötigt keine zweite Kopie des Spiels und ist wirklich einer der einfacheren, um loszulegen.
Hier behandeln wir das Vanilla-Setup. Wenn ihr zusätzlich Mods wollt, deckt unser Valheim Mod-Guide sowohl die Server-Seite von BepInEx als auch die Client-Seite ab.
Requirements
- Ein Rechner mit Windows 10 oder neuer, oder eine aktuelle Linux-Distribution. Siehe den Abschnitt macOS, warum Macs ein Sonderfall sind.
- Mindestens 4 GB RAM für eine kleine Gruppe. Valheim-Server steigern ihren Speicherverbrauch, je mehr die Welt erkundet und bebaut wird, daher sind 8 GB für eine Gruppe von zehn Spielern die sicherere Zielgröße.
- Etwa 2 - 3 GB Speicherplatz für die Serverdateien, plus Platz für Weltspeicherstände und Backups.
- Ein Steam-Account. Er muss Valheim nicht besitzen, da der dedizierte Server ein kostenloses Tool ist.
- Grundlegende Vertrautheit mit einem Terminal und dem Bearbeiten einer Textdatei.
TIPP - Wie bei jedem Game-Server solltet ihr ihn unter einem separaten Benutzerkonto laufen lassen, statt unter eurem Hauptbenutzer oder als root. Das kostet nichts und begrenzt den Schaden, falls etwas schiefgeht.
Steam-Backend Oder Crossplay-Backend
Entscheide das, bevor du anfängst, denn es bestimmt, ob du an deinem Router etwas ändern musst.
Steam-Backend ist die Standardeinstellung. Der Server kommuniziert direkt mit den Clients, was bedeutet, dass ihr Port-Forwarding einrichten müsst, und nur Steam-Spieler können den Server sehen oder beitreten.
Crossplay-Backend, aktiviert mit -crossplay, leitet den Traffic über ein PlayFab-Relay. Ihr benötigt kein Port-Forwarding, und Spieler von jeder Plattform, einschließlich Xbox und der Microsoft-Store-Version, können beitreten.
Crossplay klingt wie der offensichtliche Gewinner und ist es oft auch, besonders wenn ihr keinen Zugriff auf euren Router habt. Der Nachteil ist, dass der Traffic über ein Relay statt direkt läuft, was zusätzliche Latenz verursachen kann, und ihr könnt euch nicht über eine lokale oder Loopback-IP mit einem Crossplay-Server verbinden. Ihr verbindet euch über die öffentliche IP und den Port, per Join-Code oder über die Serverliste.
HINWEIS - Wenn ihr Mods verwendet, beachtet, dass Xbox- und Microsoft-Store-Clients BepInEx nicht laden können. Crossplay auf einem gemoddeten Server zu aktivieren, erlaubt diesen Spielern zwar, ihn zu finden, aber nicht unbedingt, darauf zu spielen.
Herunterladen Der Serverdateien
Der Valheim-Dedicated-Server ist die Steam-App 896660 und ist kostenlos.
Über Den Steam-Client
Der einfachste Weg, wenn auf dem Rechner Steam mit Desktop läuft.
- Öffnet eure Steam-Bibliothek.
- Klickt auf das Dropdown-Menü oben links und stellt sicher, dass die Checkbox Tools aktiviert ist.
- Sucht Valheim Dedicated Server in der Liste und klickt auf Installieren.
- Sobald der Vorgang abgeschlossen ist, klickt mit der rechten Maustaste darauf und wählt Verwalten, dann Lokale Dateien durchsuchen, um den Installationsordner zu öffnen.
Über SteamCMD
Der richtige Ansatz für eine Headless-Maschine, und der Weg, den man auf einem Linux-Server nutzen sollte.
Wir haben einen separaten Guide, der SteamCMD selbst behandelt:
https://moddingcommunity.com/blog/how-to-download-run-steamcmd/
Mit installiertem SteamCMD lauten die Befehle:
login anonymous
force_install_dir /path/to/valheim-server
app_update 896660 validate
quit
Oder als Einzeiler, den ihr in ein Skript oder einen Cron-Job einfügen könnt:
./steamcmd.sh +login anonymous +force_install_dir /home/valheim/server +app_update 896660 validate +quit
Der anonyme Login funktioniert hier, es werden also keine Zugangsdaten benötigt. Führt denselben Befehl erneut aus, wann immer ihr den Server aktualisieren wollt – was ihr nach jedem Valheim-Patch tun müsst, da Clients die Verbindung zu einem Server mit älterem Build verweigern.
Linux-Voraussetzungen
Der Linux-Server teilt sich die meisten Bibliotheksanforderungen mit dem Steam-Client, plus ein paar Extras.
Debian und Ubuntu
sudo apt update
sudo apt install -y libatomic1 libpulse-dev libpulse0 screen
Fedora, RHEL und Rocky
sudo dnf install -y libatomic pulseaudio-libs pulseaudio-libs-devel screen
Der Server benötigt außerdem GLIBC 2.29 und GLIBCXX 3.4.26 oder neuer. Jede aktuelle Distribution hat diese bereits. Wenn ihr etwas Älteres verwendet, etwa CentOS 7, ist die unterstützte Lösung Docker, statt zu versuchen, glibc manuell zu aktualisieren.
Startparameter
Die gesamte Konfiguration des Servers erfolgt über Startparameter statt über eine Konfigurationsdatei. Hier sind die wichtigen.
| Argument | Standard | Beschreibung |
|---|---|---|
-name "My server" |
N/A | Der Servername, der in der Serverliste angezeigt wird. |
-port 2456 |
2456 |
Der UDP-Port. Valheim nutzt diesen Port und den darüber, das heißt 2456 bedeutet 2456 und 2457. |
-world "Dedicated" |
N/A | Die zu ladende Welt. Erstellt sie, falls sie nicht existiert, oder lädt eine bestehende Welt mit diesem Namen. |
-password "Secret" |
N/A | Das Beitrittspasswort. |
-public 1 |
1 |
1 listet den Server öffentlich. 0 versteckt ihn, sodass Spieler per IP beitreten. Gut für LAN. |
-crossplay |
aus | Nutzt das PlayFab-Crossplay-Backend anstatt Steam. Kein Port-Forwarding nötig. |
-savedir [PATH] |
siehe unten | Überschreibt, wo Welten und Berechtigungsdateien gespeichert werden. |
-logFile "/path/log.txt" |
N/A | Wohin das Log geschrieben wird. |
-saveinterval 1800 |
1800 |
Wie oft die Welt gespeichert wird, in Sekunden. Standard ist 30 Minuten. |
-backups 4 |
4 |
Wie viele automatische Backups aufbewahrt werden. |
-backupshort 7200 |
7200 |
Intervall bis zum ersten automatischen Backup, in Sekunden. |
-backuplong 43200 |
43200 |
Intervall zwischen weiteren Backups, in Sekunden. |
-instanceid "1" |
N/A | Nur nötig, wenn mehrere Server auf demselben Port von derselben MAC-Adresse laufen, damit jeder eine eindeutige PlayFab-ID erhält. |
Standard-Speicherpfade, falls du sie nicht überschreibst:
- Windows:
%USERPROFILE%\AppData\LocalLow\IronGate\Valheim - Linux:
~/.config/unity3d/IronGate/Valheim
WARNUNG - Dein Passwort darf nicht leer sein und darf kein Teilstring des Server- oder Weltnamens sein. Der Server verweigert in diesem Fall den Start, und die Fehlermeldung im Log ist leicht zu übersehen.
Weltmodifikatoren
Du kannst den Schwierigkeitsgrad und die Regeln der Welt auch über die Kommandozeile festlegen, was praktisch ist, da sich niemand über die In-Game-Regler einigen muss.
-preset legt alles auf einmal fest. Gültige Werte sind Normal, Casual, Easy, Hard, Hardcore, Immersive und Hammer.
-modifier <name> <value> legt einzelne Werte fest und sollte, falls beides genutzt wird, nach einem Preset stehen, da ein Preset alles Vorherige überschreibt:
| Modifikator | Werte |
|---|---|
combat |
veryeasy, easy, hard, veryhard |
deathpenalty |
casual, veryeasy, easy, hard, hardcore |
resources |
muchless, less, more, muchmore, most |
raids |
none, muchless, less, more, muchmore |
portals |
casual, hard, veryhard |
-setkey <name> schaltet eine Checkbox-Einstellung um: nobuildcost, playerevents, passivemobs oder nomap.
Zum Beispiel ein Server ohne Überfälle und mit großzügigen Ressourcen:
-preset normal -modifier raids none -modifier resources more
Starten Des Servers Unter Windows
Der Server wird mit start_headless_server.bat in seinem Installationsordner ausgeliefert.
Erstelle eine Kopie davon und bearbeite die Kopie. Steam setzt das Original bei jedem Serverupdate zurück, wodurch deine Einstellungen gelöscht werden. Der einzige Haken ist, dass die Steam-Bibliotheksverknüpfung nur auf den ursprünglichen Dateinamen zeigt, du startest deine Kopie also direkt statt über Steam.
- Öffne den Installationsordner des Servers.
- Kopiere
start_headless_server.batunter einem Namen wiestart_myserver.bat. - Rechtsklicke auf deine Kopie und wähle Bearbeiten.
- Finde die Zeile, die mit
start valheim_serverbeginnt, und setze dort deine Argumente.
Eine fertige Zeile sieht so aus:
start valheim_server -nographics -batchmode -name "My Valheim Server" -port 2456 -world "Dedicated" -password "secret123" -public 1 -crossplay
- Speichern, dann die Batch-Datei doppelklicken.
- Falls die Windows-Firewall nachfragt, alle Kästchen aktivieren, damit der Server mit dem Internet kommunizieren kann.
Der Server läuft, sobald die Konsole Folgendes ausgibt:
Game server connected
Starten Des Servers Unter Linux
Das Linux-Äquivalent ist start_server.sh. Kopiere sie zuerst, aus demselben Grund wie unter Windows.
cd /home/valheim/server
cp start_server.sh start_myserver.sh
chmod u+x start_myserver.sh
nano start_myserver.sh
Setze deine Argumente in der Zeile ./valheim_server.x86_64:
#!/bin/bash
export templdpath=$LD_LIBRARY_PATH
export LD_LIBRARY_PATH=./linux64:$LD_LIBRARY_PATH
export SteamAppId=892970
./valheim_server.x86_64 \
-nographics \
-batchmode \
-name "My Valheim Server" \
-port 2456 \
-world "Dedicated" \
-password "secret123" \
-public 1 \
-crossplay
export LD_LIBRARY_PATH=$templdpath
Beachte die Zeile SteamAppId=892970, das ist die App-ID des Spiels, nicht des Servers. Sie steht bereits im Standardskript und muss dort bleiben.
Starte es mit:
./start_myserver.sh
Ausführen Mit Screen
Wenn der Server im Vordergrund einer SSH-Sitzung läuft, stirbt er in dem Moment, in dem du dich abmeldest. screen behebt das.
screen -S valheim ./start_myserver.sh
Trenne mit CTRL + A dann D. Wieder verbinden mit:
screen -r valheim
Liste deine Sitzungen mit screen -ls auf.
Ausführen Als systemd-Dienst
Für alles, was dir wirklich wichtig ist, ist eine systemd-Unit besser als eine Screen-Sitzung. Sie startet beim Boot und startet bei einem Absturz neu.
Erstelle /etc/systemd/system/valheim.service:
[Unit]
Description=Valheim Dedicated Server
After=network.target
[Service]
Type=simple
User=valheim
WorkingDirectory=/home/valheim/server
ExecStart=/home/valheim/server/start_myserver.sh
Restart=on-failure
RestartSec=10
KillSignal=SIGINT
TimeoutStopSec=120
[Install]
WantedBy=multi-user.target
Dann aktivieren und starten:
sudo systemctl daemon-reload
sudo systemctl enable --now valheim
KillSignal=SIGINT ist wichtig. Valheim braucht das Äquivalent von CTRL + C, um sauber herunterzufahren und die Welt zu speichern, und TimeoutStopSec=120 gibt ihm dafür Zeit. Wird das falsch eingestellt, verliert man leicht Fortschritt.
Überprüfe ihn mit systemctl status valheim und verfolge das Log mit journalctl -u valheim -f.
Ausführen Über Docker
Der dedizierte Server benötigt GLIBC 2.29 und GLIBCXX 3.4.26. Wenn deine Distribution älter ist, ist Docker der offiziell empfohlene Weg, und der Server liefert dafür ein Skript.
- Installiere Docker anhand der Anleitung für deine Distribution.
- Stelle sicher, dass der Daemon läuft und dein Benutzer in der Gruppe
dockerist. Folgendes sollte ohne Fehler funktionieren:
docker ps
- Führe das mitgelieferte Skript aus und übergib ihm dein Startskript:
./docker_start_server.sh start_myserver.sh
Der erste Start richtet den Container ein und dauert einige Minuten. Spätere Starts erfolgen sofort.
Die Spieldaten landen in einem Docker-Volume, das in DOCKER_DATA_VOLUME innerhalb von docker_start_server.sh festgelegt ist, standardmäßig valheim_server_data. Um die Daten stattdessen in deinem Dateisystem zu speichern, ändere es zu einem Pfad:
DOCKER_DATA_VOLUME="${HOME}/valheim_storage"
Erstelle dieses Verzeichnis, bevor du das Skript ausführst. Deine Welten, adminlist.txt, bannedlist.txt und permittedlist.txt landen alle dort. Den Server stoppst du auf die gleiche Weise wie beim direkten Ausführen.
macOS
Valheim hat einen nativen macOS-Client, aber es gibt keinen macOS-Build des dedizierten Servers. Steam liefert ihn nur für Windows und Linux.
Wenn du von einem Mac aus hosten möchtest, sind die realistischen Optionen:
- Linux in einer VM ausführen und die obige Linux-Anleitung befolgen.
- Docker Desktop für Mac mit einem Community-Valheim-Server-Image verwenden.
- Den Server auf einer Linux-Maschine oder einem gemieteten VPS hosten und einfach vom Mac aus spielen.
Mac-Spieler können natürlich einem überall gehosteten Server beitreten, und das Modden des Mac-Clients funktioniert mit dem in unserer Mod-Anleitung behandelten Rosetta-Workaround.
Port-Forwarding
Überspringe diesen Abschnitt komplett, wenn du -crossplay nutzt.
Beim Steam-Backend leitest du diese auf deinem Router an die Maschine weiter, auf der der Server läuft:
| Protokoll | Port | Zweck |
|---|---|---|
| UDP | 2456 | Spiel-Port |
| UDP | 2457 | Spiel-Port + 1, automatisch genutzt |
Wenn du -port geändert hast, leite deinen gewählten Port und den darüber liegenden weiter.
Möglicherweise musst du sie auch durch die Firewall des Betriebssystems zulassen:
# Debian/Ubuntu with ufw
sudo ufw allow 2456:2457/udp
# Fedora/RHEL with firewalld
sudo firewall-cmd --permanent --add-port=2456-2457/udp
sudo firewall-cmd --reload
Unter Windows genügt es, beim ersten Start alle Kästchen der Firewall-Abfrage anzuhaken.
TIPP - Mehrere Server auf einer Maschine laufen zu lassen, funktioniert problemlos, solange jeder sein eigenes Portpaar erhält. Verwende 2456/2457, 2458/2459 und so weiter, und gib jedem eine -instanceid.
Admins, Bans Und Die Permitted-Liste
Drei Textdateien im Speicherverzeichnis steuern den Zugriff, eine Platform User ID pro Zeile:
adminlist.txt- wer Admin-Rechte erhält.bannedlist.txt- wer gebannt ist.permittedlist.txt- eine Whitelist.
WARNUNG - Sobald jemand in permittedlist.txt steht, werden alle gebannt, die nicht darin aufgeführt sind. Das ist das beabsichtigte Verhalten und überrascht viele. Lass sie leer, es sei denn, du möchtest ausdrücklich einen geschlossenen Server.
Platform User IDs sehen aus wie [Platform]_[User ID] und unterscheiden zwischen Groß- und Kleinschreibung. Du kannst sie aus dem Server-Log auslesen oder im Spiel über das F2-Panel.
Im Spiel öffnen Admins die Konsole mit F5 und haben folgende Befehle:
| Befehl | Effekt |
|---|---|
kick PLAYERNAME |
Kickt einen Spieler. |
ban PLAYERNAME |
Bannt einen Spieler. |
unban PLAYERNAME |
Hebt einen Bann auf. |
banned |
Listet alle gebannten Spieler auf. |
Speicherstände Und Backups
Der Server speichert die Welt alle -saveinterval Sekunden, standardmäßig 30 Minuten, und behält -backups automatische Backups.
Werkseitig bekommst du damit ein Backup, das rund zwei Stunden alt ist, und drei weitere, die zwölf Stunden auseinanderliegen. Für einen aktiven Server ist das dünn, und etwas wie dies ist ein besserer Ausgangspunkt:
-saveinterval 900 -backups 8 -backupshort 3600 -backuplong 21600
Das speichert alle 15 Minuten und behält acht Backups, wobei das erste eine Stunde alt ist und die übrigen sechs Stunden auseinanderliegen.
Die automatischen Backups liegen im Speicherverzeichnis direkt neben deinen Weltdateien. Sie befinden sich auf derselben Festplatte wie das, was sie sichern, also kopiere sie nach einem Zeitplan woanders hin, wenn dir die Welt wichtig ist. Ein Cron-Job mit rsync reicht völlig aus.
Server Ordnungsgemäß Beenden
Drücke CTRL + C in der Serverkonsole.
Schließe das Fenster nicht mit dem X. Iron Gates eigene Dokumentation ist an dieser Stelle erfrischend ehrlich: Der Server könnte im Hintergrund weiterlaufen, und sie wissen es selbst nicht genau. So oder so riskierst du, alles seit dem letzten Speicherstand zu verlieren.
Unter systemd sendet systemctl stop valheim ein SIGINT, wenn du KillSignal=SIGINT wie oben gesetzt hast, was dasselbe bewirkt.
Fehlerbehebung
Der Server startet und beendet sich sofort wieder. In neun von zehn Fällen liegt es an der Passwortregel. Es darf nicht leer sein und nicht im Servernamen oder Weltnamen enthalten sein.
Niemand findet den Server in der Liste. Öffentliche Listungen können mehrere Minuten brauchen, bis sie erscheinen, und sind ohnehin unzuverlässig. Lass jemanden per IP mit Join IP beitreten, um zu bestätigen, dass der Server selbst erreichbar ist, bevor du dir um die Listung Gedanken machst.
Spieler erhalten eine Versionsdiskrepanz. Der Server läuft auf einem anderen Build als die Clients. Führe das SteamCMD-Update erneut aus oder aktualisiere über den Steam-Client.
Verbindung abgelehnt oder Zeitüberschreitung beim Steam-Backend. Portweiterleitung. Beide UDP-Ports, weitergeleitet an die richtige interne IP, und durch die Betriebssystem-Firewall zugelassen.
Crossplay-Server ist in meinem LAN nicht erreichbar. Erwartet. Crossplay-Server sind nicht über eine lokale oder Loopback-IP erreichbar. Verwende die öffentliche IP, einen Join-Code oder die Serverliste.
Fehlende Bibliotheken unter Linux. Installiere libatomic1, libpulse0 und libpulse-dev. Wenn die Fehler GLIBC- oder GLIBCXX-Versionen erwähnen, ist deine Distribution zu alt, und Docker ist die Lösung.
Der Speicherverbrauch steigt ständig. Normal, da die Welt erkundet und bebaut wird. Den Server nach einem Zeitplan neu zu starten, ist ein üblicher und durchaus vernünftiger Workaround.
Die Welt wurde nach einem Absturz zurückgesetzt. Du hast alles seit dem letzten Speicherstand verloren. Verkürze -saveinterval und stelle sicher, dass du mit CTRL + C herunterfährst.
Fazit
Ein Valheim-Server ist einer der freundlicheren im Setup. Lade App 896660 mit SteamCMD herunter, kopiere das Startskript, trage Name, Port, Welt und Passwort auf der Kommandozeile ein und führe es aus.
Die beiden Entscheidungen, über die man sich vorab Gedanken machen sollte, sind Crossplay gegenüber dem Steam-Backend, das bestimmt, ob du überhaupt an deinem Router herumkonfigurieren musst, und deine Backup-Einstellungen, da die Standardwerte dünner sind, als die meisten Gruppen es sich wünschen.
Wenn du später Mods hinzufügen möchtest, findest du in unserem Valheim-Mod-Guide Infos zu start_server_bepinex.sh und dazu, welche Mods sowohl auf dem Server als auch beim Client vorhanden sein müssen.
Siehe auch
- Offizieller Valheim-Dedicated-Server-Guide - Iron Gates eigene Dokumentation und die Quelle für die obige Liste der Argumente.
- Valheim Crossplay FAQ
- SteamCMD-Dokumentation
- Valheim Modding Discord
- Valheim Modding Wiki
- TMC App - Unsere eigene App, mit Server-Browser, Live-Latenzgraphen und RCON. Sie verwaltet außerdem Valheim-Mods, was unser Valheim-Mod-Guide behandelt. Open Source unter GPL-3.0 und in einer sehr frühen Entwicklungsphase, weshalb es sie auszuprobieren oder Feedback zu hinterlassen wirklich geschätzt wird.
Wir halten diesen Guide so aktuell wie möglich, aber Valheim und sein Server-Tooling ändern sich mit der Zeit. Falls eine Anleitung hier nicht mehr mit dem übereinstimmt, was du siehst, melde es bitte oder eröffne einen Pull Request im GitHub-Repository dieses Guides.
Tritt unserem Discord-Server bei, wenn du Fragen hast oder Hilfe zu irgendetwas rund um Server oder Modding brauchst!

