Ein eigener Project-Zomboid-Server auf einem VPS läuft rund um die Uhr, und Ihre Freunde können jederzeit in die gemeinsame Welt einsteigen, ohne darauf zu warten, dass jemand seinen Computer einschaltet. Sie entscheiden selbst, wie viele Spieler mitspielen, ob PVP aktiviert ist und wer beitreten darf. In diesem Artikel installieren wir den Dedicated Server über SteamCMD, begrenzen seinen Arbeitsspeicher, öffnen die nötigen Ports und richten den Autostart mit sicherem Beenden sowie Backups der Welt ein. Alle Schritte haben wir auf einem Testserver mit Debian 12 nachvollzogen. Zum Zeitpunkt des Tests war die aktuelle Version des Spiels Build 42.21.
Wie der Project-Zomboid-Server aufgebaut ist
Der Project-Zomboid-Server ist ein eigenständiges kostenloses Programm, das Valve über Steam unter der Anwendungsnummer 380870 verteilt. Für die Installation brauchen Sie weder ein Steam-Konto noch das gekaufte Spiel, denn der Download erfolgt anonym, und zwar über den Konsolen-Client SteamCMD. Das Spiel ist in Java geschrieben, und der Server bringt sein eigenes Java 25 im Ordner jre64 mit, deshalb müssen Sie Java nicht separat installieren. Programm und Daten liegen dabei an verschiedenen Orten. Die Spieldateien befinden sich im Serverordner, während die Welt, die Spielerkonten, die Einstellungen und die Protokolle im Ordner Zomboid im Home-Verzeichnis des Benutzers gespeichert werden. Dadurch ersetzt ein Update über SteamCMD nur das Spiel selbst und lässt Ihre Welt unangetastet.
Die Spieler verbinden sich über das Protokoll UDP. Beim Start schreibt der Server selbst ins Protokoll, dass er den Port 16261 für Steam-Verbindungen und den Port 16262 für RakNet-Verbindungen abhört, und empfiehlt den Clients, den Port 16261 zu verwenden. Wir haben beide Ports von außen geprüft. Auf 16261 antwortet der Server auf Steam-Anfragen nach seinem Namen und der Spielerzahl, auf 16262 antwortet er auf den RakNet-Dienstping, deshalb müssen in der Firewall beide Ports geöffnet werden. Sind die Ports geschlossen, gehen die UDP-Pakete einfach verloren, und der Server schweigt, weil nichts bei ihm ankommt. Genau so sah unser Server bei der Prüfung von außen aus, solange in UFW die Regel fehlte.
Die wichtigste Ressource des Servers ist der Arbeitsspeicher. In der Datei ProjectZomboid64.json steht das Speicherlimit von Java standardmäßig auf -Xmx8g, also 8 GB, und das ist für einen kleinen VPS zu viel. Wir setzen 3 GB. Der Prozess belegt dabei mehr als das angegebene Limit, weil zum Heap noch der Speicher hinzukommt, den Java selbst braucht. Auf unserem Server belegte der Prozess mit -Xmx3g etwa 4 GB und mit -Xmx2g etwa 2,9 GB, also das Limit plus rund 0,9 GB. Der Server verwendet den Garbage Collector ZGC (Parameter -XX:+UseZGC in derselben Datei), und belegter Speicher wird im Leerlauf nicht freigegeben. Sechs Minuten nach dem Start ohne einen einzigen Spieler belegte der Prozess weiterhin dieselben 3,9 GB, planen Sie den Speicher also großzügig.
Build 42 und Build 41
Der Branch public in SteamCMD, den Sie standardmäßig erhalten, enthält derzeit Build 42. In unserem Startprotokoll steht version=42.21.0, und in den offiziellen Steam-Ankündigungen wird Version 42.21 als stabil bezeichnet. Außerdem gibt es in SteamCMD die Branches unstable zum Testen, legacy41 mit Build 41.78.21 und 42.19 mit Build 42.19.2. Den Branch wählen Sie mit dem Parameter -beta, zum Beispiel +app_update 380870 -beta legacy41 validate. Wir haben geprüft, dass SteamCMD diesen Parameter akzeptiert und den Download von Build 41 beginnt, er umfasst etwa 5 GB. Die Version des Clients bei den Spielern muss mit der Version des Servers übereinstimmen. Das Spiel auf einem Build-41-Server haben wir nicht gestartet und den Wechsel zwischen den Branches nicht geprüft, erstellen Sie deshalb vor einem Wechsel eine Kopie der Welt.
Was Sie brauchen
- Einen Server mit Debian 12 und mindestens 6 GB Arbeitsspeicher, zum Beispiel den Tarif DE-RZ9-3. Mit
-Xmx3gbelegt der Prozess etwa 4 GB, und auf der Festplatte werden noch etwa 7 GB benötigt. Wenn Sie noch keinen Server haben, bestellen Sie ihn nach der Anleitung. Auf dem Tarif DE-RZ9-2 mit 4 GB startet der Server mit-Xmx2g, aber die Reserve ist klein, und den Betrieb unter der Last von Spielern haben wir nicht geprüft. - Eine SSH-Verbindung, zum Beispiel über Termius. Die Befehle werden als
rootausgeführt, sofern nichts anderes angegeben ist. - Das Spiel Project Zomboid bei jedem Spieler, in derselben Version wie der Server.
Was wir geprüft haben und was nicht
Wir haben den Spielclient nicht gestartet und sind nicht als Spieler auf den Server gegangen. Geprüft haben wir etwas anderes. Der Server startet, hört die Ports 16261 und 16262 über UDP ab und antwortet von einem anderen Computer aus auf Steam- und RakNet-Anfragen. Beenden, Neustart, Update und Backups funktionieren. Die Last durch Spieler, Mods und den Betrieb in der Serverliste des Spiels haben wir nicht geprüft.
Schritt 1. Installieren Sie die Bibliotheken und legen Sie einen Benutzer an
SteamCMD ist ein 32-Bit-Programm, und auf einem 64-Bit-Debian braucht es zwei Bibliotheken. Installieren Sie gleich auch screen, das brauchen wir für die Konsole des Servers.
apt update
apt install -y screen curl ca-certificates lib32gcc-s1 lib32stdc++6Den Server als root zu starten ist unsicher, deshalb legen wir für ihn einen eigenen Benutzer zomboid mit dem Home-Verzeichnis /opt/zomboid an. Mehr über Benutzer erfahren Sie im Artikel über Linux-Benutzer.
useradd -r -m -d /opt/zomboid -s /bin/bash zomboidSchritt 2. Installieren Sie SteamCMD
Melden Sie sich als Benutzer zomboid an und laden Sie SteamCMD vom Server von Valve herunter. Die Befehle der Schritte 2 bis 5 werden unter diesem Benutzer ausgeführt.
su - zomboid
mkdir ~/steamcmd && cd ~/steamcmd
curl -fsSL https://steamcdn-a.akamaihd.net/client/installer/steamcmd_linux.tar.gz | tar zxf -Das ist ein kleines Ladeprogramm, das vollständige Programm wird beim ersten Start heruntergeladen.
Schritt 3. Laden Sie den Server herunter
Der folgende Befehl meldet sich anonym bei Steam an und lädt die Anwendung 380870 in den Ordner /opt/zomboid/server herunter. Beim ersten Start aktualisiert sich SteamCMD zuerst selbst, etwa 41 MB, und beginnt dann mit dem Download des Servers.
./steamcmd.sh +force_install_dir /opt/zomboid/server +login anonymous +app_update 380870 validate +quitAuf unserem Server wurden etwa 2 GB heruntergeladen, und auf der Festplatte belegte der Server etwa 7 GB. Die Installation dauerte etwa drei Minuten. Am Ende schreibt SteamCMD Success! App '380870' fully installed.
Im Serverordner liegen nun das Startskript start-server.sh, das mitgelieferte Java in jre64 und die Datei ProjectZomboid64.json mit den Speichereinstellungen.
Schritt 4. Begrenzen Sie den Arbeitsspeicher
Ersetzen Sie in ProjectZomboid64.json das Limit von 8 GB durch 3 GB. Wenn Sie einen Tarif mit 4 GB haben, setzen Sie -Xmx2g.
sed -i 's/-Xmx8g/-Xmx3g/' ~/server/ProjectZomboid64.json
grep Xmx ~/server/ProjectZomboid64.jsonIn der Ausgabe muss die Zeile "-Xmx3g", stehen. Die übrigen Parameter in der Datei sollten Sie besser nicht anfassen.
Die Dateiprüfung setzt diesen Parameter zurück
Wenn Sie SteamCMD mit dem Parameter validate starten, setzt es ProjectZomboid64.json auf den ursprünglichen Zustand zurück, und das Limit steht wieder auf 8 GB. Das haben wir auf dem Testserver geprüft. Wie Sie den Server aktualisieren, ohne das Limit zu verlieren, zeigt der Abschnitt zum Update weiter unten.
Schritt 5. Starten Sie den Server zum ersten Mal
Den ersten Start müssen Sie von Hand ausführen, weil der Server nach dem Administratorpasswort fragt.
cd ~/server
./start-server.shZuerst gibt der Server viele Zeilen über das Laden des Spiels aus. Danach erscheinen die Zeilen Enter new administrator password und Confirm the password. Geben Sie ein ausgedachtes Passwort ein und drücken Sie Enter, wiederholen Sie es dann zur Bestätigung. Danach meldet der Server Administrator account 'admin' created. So entsteht das Konto admin, mit dem Sie sich im Spiel als Administrator anmelden.

Das Administratorpasswort verlangt der Server beim ersten Start, die Passwörter sind auf dem Bildschirm verdeckt
Das Passwort ist beim Eingeben sichtbar
In unserem Terminal wurde das eingegebene Passwort im Klartext auf dem Bildschirm angezeigt. Achten Sie darauf, dass niemand hinter Ihnen steht, und machen Sie keine Screenshots von diesem Fenster. Am besten erzeugen Sie das Passwort in einem Passwortmanager und fügen es ein. Verwenden Sie den Parameter -adminpassword nicht im Startskript, denn dann bleibt das Passwort im Klartext in der Datei stehen.
Als Nächstes erstellt der Server die Welt. Nach der Eingabe des Passworts dauerte das bei uns etwa 50 Sekunden. Sobald im Protokoll die Zeile SERVER STARTED erscheint, ist der Server bereit.

Der Server hört die Ports 16261 und 16262 ab
Beenden Sie den Server mit dem Befehl quit, den Sie in diesem Fenster eingeben. Er speichert die Welt und beendet den Server, bei uns dauerte das etwa 10 Sekunden. Kehren Sie nach dem Beenden zu root zurück. Danach wird der Server automatisch gestartet.
exitEinstellungen und Welt wurden im Ordner /opt/zomboid/Zomboid angelegt. Hier liegt das Wichtigste.
Server/servertest.inimit den Haupteinstellungen des Servers.Server/servertest_SandboxVars.luamit den Regeln der Welt, zum Beispiel der Zahl der Zombies und der Geschwindigkeit des Tag-Nacht-Wechsels.Saves/Multiplayer/servertestmit der Welt selbst.db/servertest.dbmit den Spielerkonten.Logsmit den Protokollen des Servers.
Der Name servertest ist der Standardname des Servers, nach ihm sind alle diese Dateien benannt.
Schritt 6. Konfigurieren Sie den Server
Öffnen Sie die Einstellungsdatei. Ändern Sie sie bei gestopptem Server, weil der Server diese Datei beim Start selbst neu schreibt.
nano /opt/zomboid/Zomboid/Server/servertest.iniNeben jedem Parameter steht in der Datei ein Kommentar auf Englisch. Das Wichtigste haben wir in einer Tabelle zusammengefasst, die Standardwerte stammen aus der erzeugten Datei.
| Parameter | Standardwert | Bedeutung |
|---|---|---|
PublicName | My PZ Server | Name des Servers in den Listen des Spiels und in Steam |
Password | leer | Passwort, das man kennen muss, um auf den Server zu gelangen |
MaxPlayers | 32 | Wie viele Spieler gleichzeitig auf dem Server sein können, Administratoren werden nicht mitgezählt |
PVP | true | Spieler können sich gegenseitig verletzen und töten |
Open | true | Ein Spieler kann ohne vorher angelegtes Konto beitreten, das Konto wird beim ersten Beitritt erstellt |
Public | false | Server in der Serverliste des Spiels anzeigen |
PauseEmpty | true | Die Spielzeit steht still, solange niemand auf dem Server ist |
SaveWorldEveryMinutes | 0 | Wie oft die Welt gespeichert wird. Bei 0 wird die Karte hauptsächlich dann gespeichert, wenn Spieler den geladenen Bereich verlassen |
UPnP | true | Versuch, den Router automatisch zu konfigurieren. Auf einem VPS gibt es keinen Router, setzen Sie deshalb false |
Für einen Server mit Freunden haben wir einige Werte geändert. Diese Zeilen haben wir auf dem Testserver geprüft.
PublicName=Friends Server
Password=ihr_passwort
MaxPlayers=8
PVP=false
UPnP=false
SaveWorldEveryMinutes=15Nach dem Start des Servers haben wir geprüft, dass die Einstellungen übernommen wurden. Der Befehl showoptions in der Konsole zeigte die neuen Werte, und eine Steam-Anfrage von einem anderen Computer lieferte den Namen des Servers, die Platzzahl 8 und das Kennzeichen, dass ein Passwort nötig ist.
Serverpasswort und geschlossene Liste
Für eine Runde Freunde genügt es, Password zu setzen, dieses Passwort teilen Sie den Freunden einfach mit. Wenn Sie strenge Kontrolle brauchen, setzen Sie Open=false. Dann legen Sie die Spielerkonten selbst mit dem Befehl adduser Name Passwort in der Konsole des Servers an. Diesen Befehl haben wir geprüft, der Server antwortete, dass der Benutzer erstellt wurde.
Schritt 7. Öffnen Sie die Ports 16261 und 16262
Öffnen Sie beide Ports in der Firewall UFW. Die Ports werden ausdrücklich für UDP benötigt.
ufw allow 16261:16262/udpMehr zur Firewall erfahren Sie im Artikel über UFW.
Den Server müssen Sie aus dem Internet prüfen, also von einem anderen Computer aus. Dafür haben wir ein kleines Python-3-Skript geschrieben, das dem Server die standardmäßige Steam-Anfrage nach Serverinformationen (A2S_INFO) schickt. Speichern Sie es auf Ihrem Computer in der Datei pz-check.py.
import socket, sys
host, port = sys.argv[1], 16261
req = b"\xff\xff\xff\xffTSource Engine Query\x00"
s = socket.socket(socket.AF_INET, socket.SOCK_DGRAM)
s.settimeout(3)
try:
s.sendto(req, (host, port))
data, _ = s.recvfrom(4096)
if data[4:5] == b"A": # der Server bittet darum, die Anfrage mit einem Prüfcode zu wiederholen
s.sendto(req + data[5:9], (host, port))
data, _ = s.recvfrom(4096)
print("Server antwortet, Name:", data[6:data.index(0, 6)].decode())
except socket.timeout:
print("Keine Antwort, Port geschlossen oder Server nicht gestartet")Führen Sie es aus und geben Sie dabei die IP-Adresse des VPS an. Wir haben das Skript zweimal geprüft, vor und nach der Regel in UFW.
python3 pz-check.py IP-des-Servers
Solange der Port geschlossen ist, kommt keine Antwort. Nach der Regel in UFW nennt der Server seinen Namen
Wenn Sie den Namen des Servers sehen, ist der Port 16261 aus dem Internet erreichbar. Den Port 16262 haben wir separat mit dem RakNet-Dienstping geprüft, er hat ebenfalls geantwortet.
Schritt 8. Richten Sie den Autostart ein
Damit der Server im Hintergrund läuft, zusammen mit dem VPS startet und nach einem Absturz wieder hochfährt, richten wir ihn als systemd-Dienst ein. Wie Dienste aufgebaut sind, erfahren Sie ausführlich im Artikel über systemd. Die Konsole des Servers starten wir, wie schon im Artikel über den Minecraft-Server, innerhalb von screen. Über sie erhält der Server Befehle, darunter auch den Befehl zum Speichern und Beenden.
Erstellen Sie zuerst das Stoppskript. Es sendet den Befehl quit an die Konsole, damit der Server die Welt speichert, und wartet, bis der Server beendet ist.
nano /opt/zomboid/stop.sh#!/bin/sh
# Sendet den Befehl quit an die Konsole des Servers und wartet, bis der Server die Welt gespeichert hat und beendet ist
screen -p 0 -S zomboid -X stuff "quit$(printf '\r')"
while kill -0 "$MAINPID" 2>/dev/null; do sleep 1; doneMachen Sie das Skript ausführbar und erstellen Sie den Dienst.
chmod +x /opt/zomboid/stop.sh
chown zomboid:zomboid /opt/zomboid/stop.sh
nano /etc/systemd/system/zomboid.service[Unit]
Description=Project Zomboid server
After=network-online.target
Wants=network-online.target
[Service]
User=zomboid
WorkingDirectory=/opt/zomboid/server
ExecStart=/usr/bin/screen -DmS zomboid /opt/zomboid/server/start-server.sh
ExecStop=/opt/zomboid/stop.sh
Restart=always
RestartSec=10
TimeoutStopSec=120
[Install]
WantedBy=multi-user.targetAktivieren Sie den Autostart und starten Sie den Server.
systemctl daemon-reload
systemctl enable --now zomboid
systemctl status zomboid
Der Dienst läuft, der Server hört beide Ports ab
Nach dem Start des Dienstes lädt der Server etwa 40 Sekunden und beginnt dann, auf Anfragen zu antworten. Verwalten Sie ihn jetzt über systemd.
systemctl stop zomboidspeichert die Welt und schaltet den Server aus.systemctl restart zomboidstartet den Server neu.systemctl start zomboidschaltet den Server ein.
Wir haben geprüft, wie sich der Dienst in verschiedenen Situationen verhält.
- Das Beenden mit dem Befehl
systemctl stop zomboiddauerte etwa 10 Sekunden, und im Protokoll des Servers erschienen Einträge über den Befehlquitund über das Speichern der Welt. - Als wir Java zwangsweise beendet haben, hat systemd den Server nach 10 Sekunden neu hochgefahren. Das Skript
start-server.shendet auch nach einem solchen Absturz mit dem Code 0, deshalb ist geradeRestart=alwaysnötig. - Der Befehl
quit, direkt in der Konsole eingegeben, führt ebenfalls zu einem Neustart und nicht zum Ausschalten. Um den Server auszuschalten, verwenden Siesystemctl stop zomboid.
Spielmeldungen landen nicht in journalctl, weil der Server sie in die Konsole innerhalb von screen schreibt. Die Protokolle liegen in /opt/zomboid/Zomboid/Logs, und der letzte Start ist in der Datei /opt/zomboid/Zomboid/server-console.txt festgehalten. Mehr über Protokolle erfahren Sie im Artikel über Linux-Logs.
Schritt 9. Konsole des Servers und Verbindung der Spieler
Um die Konsole des Servers zu öffnen, verbinden Sie sich mit der screen-Sitzung.
su - zomboid -c "screen -r zomboid"Die Konsole verlassen und den Server weiterlaufen lassen können Sie mit der Tastenkombination Ctrl + A und danach D. Mehr zur Arbeit mit screen erfahren Sie in einem eigenen Artikel. Eine Liste aller Befehle gibt help aus. Das sind die Befehle, die wir geprüft haben.
playerszeigt die verbundenen Spieler an.savespeichert die Welt sofort.servermsg "Text"sendet eine Nachricht an alle Spieler.adduser Name Passwortlegt ein Spielerkonto an.quitspeichert die Welt und stoppt den Server, danach startet der Dienst ihn wieder.
Die Spieler müssen im Spiel die IP-Adresse des VPS, den Port 16261, das Serverpasswort, falls Sie eines festgelegt haben, und anschließend Namen und Passwort ihres Charakters eingeben. Auf einem offenen Server mit Open=true wird das Konto beim ersten Beitritt erstellt. Statt der IP-Adresse ist eine Domain praktisch, wie das geht, beschreibt der Artikel über die Verknüpfung einer Domain. Um sich als Administrator anzumelden, verwenden Sie den Namen admin und das Passwort aus Schritt 5.
Update des Servers
Wenn eine neue Version des Spiels erscheint, aktualisieren sich die Clients über Steam von selbst, und die Version des Servers muss mit ihr übereinstimmen. Im Update 42.21 haben die Entwickler einen Hinweis für Spieler hinzugefügt, die versuchen, einen Server mit einer anderen Version zu betreten. Der Server wird separat aktualisiert. Wir haben ein Skript zusammengestellt, das den Server stoppt, aktualisiert, das Speicherlimit wiederherstellt und ihn erneut startet.
nano /usr/local/bin/zomboid-update.sh#!/bin/sh
# Stoppt den Server, aktualisiert ihn über SteamCMD, stellt das Speicherlimit wieder her und startet ihn erneut
systemctl stop zomboid
su - zomboid -c "~/steamcmd/steamcmd.sh +force_install_dir /opt/zomboid/server +login anonymous +app_update 380870 +quit"
su - zomboid -c "sed -i 's/-Xmx[0-9]*[gGmM]/-Xmx3g/' /opt/zomboid/server/ProjectZomboid64.json"
systemctl start zomboidWenn Sie ein anderes Speicherlimit gewählt haben, ersetzen Sie 3g im Skript. Machen Sie das Skript ausführbar und starten Sie es, wenn Sie aktualisieren möchten.
chmod +x /usr/local/bin/zomboid-update.sh
zomboid-update.shWenn es keine Updates gibt, schreibt SteamCMD Success! App '380870' already up to date. Bei uns lief das ganze Skript in 14 Sekunden durch. Der Parameter validate fehlt im Skript absichtlich. Wir haben geprüft, dass ein normales Update die geänderte Datei ProjectZomboid64.json nicht anfasst, während die Dateiprüfung mit validate darin wieder 8 GB einsetzt.

Die Dateiprüfung dauerte etwa eine Minute und ersetzte eine kleine Datei mit den Speichereinstellungen
validate ist nur zur Reparatur nötig, zum Beispiel wenn Spieldateien beschädigt wurden. Führen Sie danach erneut den Befehl aus Schritt 4 aus.
Backups der Welt
Die Welt liegt in /opt/zomboid/Zomboid/Saves und die Spielerkonten in /opt/zomboid/Zomboid/db. Der Server legt beim Start und beim Versionswechsel selbst Kopien an und speichert sie in /opt/zomboid/Zomboid/backups, standardmäßig behält er fünf Kopien (Parameter BackupsCount). Sie liegen aber auf derselben Festplatte wie die Welt. Für mehr Sicherheit ergänzen wir ein eigenes Skript. Es speichert die Welt mit dem Befehl save, packt Welt, Spielerkonten und Einstellungen in ein Archiv im Ordner /opt/zomboid/archives und behält die 7 neuesten Archive. Der Server wird während des Kopierens nicht gestoppt.
nano /opt/zomboid/backup.sh#!/bin/sh
# Speichert die Welt, archiviert sie zusammen mit den Einstellungen und behält die 7 neuesten Archive
cd /opt/zomboid || exit 1
screen -p 0 -S zomboid -X stuff "save$(printf '\r')"
sleep 10
mkdir -p archives
tar -czf "archives/zomboid-$(date +%F-%H%M).tar.gz" Zomboid/Saves Zomboid/db Zomboid/Server
ls -1t archives/zomboid-*.tar.gz | tail -n +8 | xargs -r rm --Machen Sie das Skript ausführbar und tragen Sie es in den Zeitplan des Benutzers zomboid ein, zum Beispiel jede Nacht um 4:00 Uhr.
chmod +x /opt/zomboid/backup.sh
chown zomboid:zomboid /opt/zomboid/backup.sh
echo "0 4 * * * /opt/zomboid/backup.sh" | crontab -u zomboid -Wir haben das Skript sowohl von Hand als auch nach Zeitplan geprüft, beide Male ist ein Archiv entstanden. In einer frischen Welt belegte das Archiv weniger als 1 MB, im echten Spiel wächst es mit der Welt. Mehr zum Zeitplan erfahren Sie im Artikel über cron. Kopien auf demselben Server helfen nicht, wenn der Server selbst verloren geht. Laden Sie die Archive deshalb von Zeit zu Zeit auf Ihren Computer herunter oder schicken Sie sie an einen anderen Server, zum Beispiel mit dem Befehl rsync.
Um die Welt wiederherzustellen, stoppen Sie den Server, entpacken Sie das gewünschte Archiv über den Ordner /opt/zomboid und starten Sie den Server. Wir haben die Wiederherstellung geprüft, der Server ist danach gestartet.
systemctl stop zomboid
su - zomboid -c "tar -xzf /opt/zomboid/archives/ARCHIVNAME.tar.gz -C /opt/zomboid"
systemctl start zomboidHäufige Fragen
./steamcmd.sh: cannot execute: required file not found
Die vollständige Meldung lautet ./steamcmd.sh: line 85: /opt/zomboid/steamcmd/linux32/steamcmd: cannot execute: required file not found. Es fehlen die 32-Bit-Bibliotheken. Diese Meldung haben wir erhalten, als wir lib32gcc-s1 und lib32stdc++6 entfernt hatten. Installieren Sie sie, wie in Schritt 1 beschrieben.
Der Dienst läuft, aber der Server antwortet nicht, in der Konsole steht Enter new administrator password
Beim ersten Start wartet der Server auf das Administratorpasswort, und im Dienst ist niemand da, der es eingibt. Wir haben das mit einem neuen Servernamen nachgestellt. Der Dienst blieb active, aber die Ports 16261 und 16262 wurden von niemandem abgehört, und die Prüfung von außen erhielt keine Antwort. Stoppen Sie den Dienst mit dem Befehl systemctl stop zomboid, führen Sie Schritt 5 von Hand aus, geben Sie das Passwort ein und warten Sie auf SERVER STARTED. Stoppen Sie dann den Server mit dem Befehl quit und starten Sie den Dienst erneut.
Rote ERROR beim Start, libjsig.so und Property Name not found
Im Startprotokoll haben wir zwei Gruppen von Zeilen mit Fehlern gesehen, und beide sind harmlos.
- ERROR: ld.so: object 'libjsig.so' from LD_PRELOAD cannot be preloaded erscheint beim Start. Am Ende der Zeile schreibt der Server, dass er diese Bibliothek übersprungen hat (
ignored), und arbeitet weiter. - IsoPropertyType.lookupOrDefaultStr> Exception thrown mit einem Text wie
Property Name not found: ladderWund einem langen Stacktrace erscheint beim Erstellen einer neuen Welt mehrmals.
Wenn danach im Protokoll die Zeile SERVER STARTED steht, ist alles in Ordnung.
If the server hangs here, set UPnP=false
Das ist eine Zeile aus dem Startprotokoll, sie folgt direkt auf die Meldung Router detection/configuration starting. Solange der Parameter UPnP auf true steht, sucht der Server im Netzwerk nach einem Router, um Ports zu öffnen. Auf einem VPS gibt es keinen Router. Auf unserem Server wartete der Start etwa 12 Sekunden und schrieb No UPnP-enabled Internet gateway found, danach startete er. Setzen Sie UPnP=false in servertest.ini, und der Start wird um diese Zeit schneller.
Keine Antwort, Port geschlossen oder Server nicht gestartet
So antwortet unser Skript pz-check.py, wenn von einem anderen Computer keine Antwort kommt. Diese Meldung haben wir erhalten, solange es in UFW keine Regel für UDP gab. Prüfen Sie mit dem Befehl systemctl status zomboid, ob der Dienst läuft, mit dem Befehl ufw status, ob die Regel vorhanden ist, und mit dem Befehl ss -ulpn | grep 1626, ob die Ports abgehört werden. Öffnen Sie ausdrücklich UDP, eine Regel für TCP hilft nicht.
Killed process (ProjectZomboid6) im Kernel-Log
Der Server wurde plötzlich ohne Meldungen in der Konsole beendet. Das passiert, wenn der Prozess mehr Speicher belegt hat, als auf dem Server vorhanden oder dem Dienst zugeteilt ist, und der Kernel das System vor Speichermangel geschützt hat. Prüfen Sie das mit dem Befehl journalctl -k | grep -i "killed process". Wir haben das nachgestellt, indem wir den Dienst bei einem Java-Limit von 3 GB auf 2 GB Speicher begrenzt haben, und der Kernel schrieb Memory cgroup out of memory: Killed process … (ProjectZomboid6). Verringern Sie -Xmx in ProjectZomboid64.json oder nehmen Sie einen Tarif mit mehr Arbeitsspeicher.
Nach dem Update belegt der Server wieder 8 GB
Sie haben SteamCMD mit dem Parameter validate gestartet, und es hat ProjectZomboid64.json auf den ursprünglichen Zustand zurückgesetzt. Das haben wir erhalten, als wir die Dateien geprüft haben, SteamCMD 359 Byte heruntergeladen hat und in der Datei wieder -Xmx8g stand. Stellen Sie das Limit mit dem Befehl aus Schritt 4 wieder her und aktualisieren Sie den Server mit dem Skript aus dem Abschnitt zum Update.
Unsere Ressourcen
Telegram-Kanal: https://t.me/f3cloud_news
Hosting-Website: https://f3cloud.com