DayZ ist so ziemlich das Gleiche wie Minecraft, ein Server basiertes Multiplayer Spiel bei dem es darum geht kluge Entscheidungen zu treffen um a.) zu überleben und b.) zu sammeln und zu bauen.
Leider wird Crossplay nicht unterstützt, so dass der Game Server ausschließlich für die PC Version des Spiels gedacht ist.
Zielsetzung
- DayZ Server im LAN
- Autostart mit Server
- Auto update bei Server Start
- Server MOD installiert
- CF (Community Framework) https://steamcommunity.com/sharedfiles/filedetails/?id=1559212036
- Community-Online-Tools (COT) weblink:https://steamcommunity.com/sharedfiles/filedetails/?id=1564026768
- Admin Rechte für eigenen User
Bonusziel - Public Server
Voraussetzungen:
- Ubuntu Linux Server installiert (virtuelle Maschine (VM)
- remote Zugriff installiert
- Steam Account
- Steam User Name
- Steam User Passwort
- DayZ Spiel installiert auf PC (installiert über Steam)
Installation
Installationsanleitung von Bohemia Interactive auf: https://community.bistudio.com/wiki/DayZ:Hosting_a_Linux_Server
Die Installation der Serververzeichnisse erfolgt im Linux home Verzeichnis des angemeldeten Users.
Download SteamCMD:
sudo apt-get install lib32gcc-s1
Folgende Schritte ausführen:
mkdir -p ~/servers/steamcmd && cd ~/servers/steamcmd
curl -sqL "https://steamcdn-a.akamaihd.net/client/installer/steamcmd_linux.tar.gz" | tar zxvf -
Download DayZ Server Hinweis:
- Ersetze your_login, mit Deinem Steam login (Steam Usernamen).
- Aktualisieren des Servers erfolgt mit denselben Schritten wie die nachfolgende Installation
Mit Mods auf stable branch
Wir installieren mit der "stable branch" die Mods: Community Framework und Community Online Tools:
~/servers/steamcmd/steamcmd.sh +force_install_dir ~/servers/dayz-server/ +login your_login +app_update 223350 +workshop_download_item 221100 1559212036 +workshop_download_item 221100 1564026768 +quit
Dein Passwort wird nur beim ersten Mal abgefragt.
DayZ Server konfigurieren
cd ~/servers/dayz-server/
Dateiname:
serverDZ.cfg
Folgende Einträge bearbeiten
hostname = "Dein Server Name"; // Server name
description = "Deine Server Beschreibung"; // Kurzbeschreibung Deines Servers. Wird im Client Browser angezeigt, max Länge 255 Zeichen.
DayZ Server starten
Starten mit Mods
In diesem Beispiel wird der DayZ Server zusammen mit den zwei Mods Community Framework und Community Online Tools gestartet.
cd ~/servers/dayz-server/
ln -s ~/servers/dayz-server/steamapps/workshop/content/221100/1559212036 ~/servers/dayz-server/1559212036
ln -s ~/servers/dayz-server/steamapps/workshop/content/221100/1564026768 ~/servers/dayz-server/1564026768
ln -s ~/servers/dayz-server/steamapps/workshop/content/221100/1559212036/keys/* ~/servers/dayz-server/keys/
./DayZServer -config=serverDZ.cfg -port=2301 "-mod=1559212036;1564026768;" -BEpath=battleye -profiles=profiles -dologs -adminlog -netlog -freezecheck
Ctrl + C - zum Schließen des Serverprozesses.
DayZ Client starten
Unter dem Menüpunkt Server sollte im Tab LAN der Servername in der Serverliste (ungefiltert) angezeigt werden.
Mit DLCS und MODS einrichten und Beitreten anklicken.
COT konfigurieren und Admin Rechte vergeben
Wenn das erste Verbinden zum Server funktioniert, müssen wir den Server wieder verlassen und stoppen.
DayZ Client
Server verlassen
Linux Server prozess stoppen
Ctrl + C - zum Schließen des Serverprozesses.
oder, wenn Autostart eingerichtet ist:
sudo systemctl stop dayz-server
Nun müssen dem Player Admin Rechte vergeben und eine Schlüsseldatei kopiert werden.
Die Schlüsseldatei aus dem jeweiligen Mod "keys" Verzeichnis muss in das Dayz-Server "keys" Verzeichnis kopiert werden. Da COT und CF vom selben Entwickler sind sind beide Dateien identisch - es muss nur eine kopiert werden:
Quelle:
/home/username/servers/dayz-server/1559212036/keys
Dateiname: Jacob_Mango_V3.bikey
Ziel:
/home/username/servers/dayz-server/keys
Nun zu den COT Admin Rechten für unseren Spielcharakter auf unserem DayZ Server
/home/username/ = Persönlicher Ordner in Ubuntu Linux
/home/username/servers/dayz-server/profiles/PermissionsFramework/Players/ = hier befindet sich nach dem ersten Verbinden / Spielen eine *.json Datei
Der Dateiname entspricht der Steam User ID
Diese Datei mit einem Editor öffnen und zwischen den eckigen Klammern ein "admin" eintragen
{ "Roles": ["admin"] }
Jetzt kann der Dayz Server wieder gestartet werden.
Server Daemon mit Restart und Auto-Update
Erstellen des Scripts
-
- mit mods: nano ~/servers/dayz-server/update.sh
/home/your_username/servers/steamcmd/steamcmd.sh +force_install_dir /home/your_username/servers/dayz-server/ +login your_login +app_update 223350 +workshop_download_item 221100 1559212036 +workshop_download_item 221100 1564026768 +quit rm /home/your_username/servers/dayz-server/1559212036 /home/your_username/servers/dayz-server/1564026768 /home/your_username/servers/dayz-server/keys/Jacob_Mango_V3.bikey ln -s /home/your_username/servers/dayz-server/steamapps/workshop/content/221100/1559212036 /home/your_username/servers/dayz-server/1559212036 ln -s /home/your_username/servers/dayz-server/steamapps/workshop/content/221100/1564026768 /home/your_username/servers/dayz-server/1564026768 ln -s /home/your_username/servers/dayz-server/steamapps/workshop/content/221100/1559212036/keys/* /home/your_username/servers/dayz-server/keys/
- mit mods: nano ~/servers/dayz-server/update.sh
- Ctrl + O
- Ctrl + X
- sudo chmod +x ~/servers/dayz-server/update.sh
- sudo nano /etc/systemd/system/dayz-server.service
[Unit] Description=DayZ Dedicated Server Wants=network-online.target After=syslog.target network.target nss-lookup.target network-online.target [Service] ExecStartPre=/home/your_username/servers/dayz-server/update.sh ExecStart=/home/your_username/servers/dayz-server/DayZServer -config=serverDZ.cfg -port=2301 "-mod=1559212036;1564026768;" -BEpath=battleye -profiles=profiles -dologs -adminlog -netlog -freezecheck WorkingDirectory=/home/your_username/servers/dayz-server/ LimitNOFILE=100000 ExecReload=/bin/kill -s HUP $MAINPID ExecStop=/bin/kill -s INT $MAINPID User=your_username Group=users Restart=on-failure RestartSec=5s [Install] WantedBy=multi-user.target
- sudo systemctl daemon-reload
Daemon Commands
- sudo systemctl enable dayz-server - Einschalten Server Autostart wenn Betriebssystem startet.
- sudo systemctl disable dayz-server - Ausschalten Server Autostart wenn Betriebssystem startet.
- sudo systemctl start dayz-server - Server starten.
- sudo systemctl restart dayz-server - Server Restart.
- sudo systemctl stop dayz-server - Server stoppen.
- sudo systemctl status dayz-server - Server Status überprüfen.
Anmerkung
Der Autostart funktionierte bei mir zunächst nicht, weil das update script fehlschlug.
Als hotfix habe ich das updatescript in der datei dayz-server.service mit einer # auskommentiert.
Danach lief der Autostart.
Router Portfreigabe für Public-Server
DayZ nutzt oder reserviert folgende Ports die für den Zugriff aus dem Internet am eigenen Internet Router freigegeben, bzw. an die Server IP durchgereicht werden müssen.
- Spielport: 2302 UDP standardmäßig
- Reservierter Port: 2303 UDP standardmäßig
- BattlEye-Port: 2304 UDP standardmäßig
- RCON-Port: 2305 UDP standardmäßig
- Abfrageport: 27016 UDP standardmäßig
Zumindest der Spiel-Port, der Abfrage-Port und der BattlEye-Port sind erforderlich.
Der Abfrageport wird zum Suchen und Herstellen einer Verbindung zum Server in Steam verwendet. Der Spielport wird zum Suchen und Herstellen einer Verbindung zum Server im Spiel verwendet.
Beachte, dass der reservierte Port und der BattlEye-Port vom Server relativ zum Game-Port konfiguriert werden. Der reservierte Port ist also Game-Port + 1 und der BattlEye-Port ist Game-Port + 2.
Server Admin
Um einen Admin-Befehl zu nutzen, musst du die Konsole öffnen. Dies machst du, indem du die Chat-Taste drückst. Die folgenden Befehle kannst du dann eingeben und mit der “Enter”-Taste bestätigen. Ein Admin-Befehl startet immer mit dem “#”-Symbol.