Java Minecraft Server 1.20 auf Synology NAS installieren


Innerhalb von 5 Minuten kommt man mit einem Synology NAS mit Intel CPU (z.B. DS218+ kaufen) und viel RAM zu einem stabilen Minecraft-Server. Die Intel CPU brauchen wir zwingend für das Docker-Paket, welches die potente Basis für den Server bildet. Ich habe auch eine Anleitung für die Bedrock-Edition für iOS und Xbox ONE geschrieben.

Was wird benötigt?

  • Synology NAS mit Docker-Support (z.B. DS218+ kaufen)
  • Kompatible Arbeitsspeicherweiterung (z.B. 8GB DDR3-RAM kaufen)
  • Einen Router mit Port-Forwarding (z.B. FritzBox 7590 kaufen)
  • 5 Minuten eurer Zeit

Kompatibilität der Minecraft Clients mit den Servern

Der Server der neueren Bedrock-Edition läuft viel performanter als der Java-Edition. Die Bedrock-Edition findet sich auf den Konsolen und mobilen Geräten wieder. Dafür ist der dedizierte Bedrock-Server noch in der Alpha-Phase seitens Mojang und erlaubt keine Mods. Außerdem wurde der Server nur für x86-Architektur kompiliert. Das heißt: Es gibt keinen performanten Bedrock-Server für z.B. den ARM-basierten Raspberry Pi. Clientseitig fehlt dem Bedrock-Server die Unterstützung für die Nintendo Switch und macOS. Unglaublich aber wahr: für den Mac zudem keinen Bedrock-Edition Client.

ClientBedrock ServerJava Server
Android
iOS
XBOX ONE
Nintendo Switch
PS4
XBOX 360
PS3
Windows 7/8/10 Java
Windows 10 Bedrock
Linux
macOS
Welcher Client kann sich mit JAVA oder Bedrock Servern verbinden?

Geht das auch mit einem DS216j?

Wenn man ein Synology NAS der J-Reihe hat, dann wird die Leistung nicht reichen. Diese Geräte haben meistens nur 512 MB Arbeitsspeicher und sind in dieser Hinsicht auch nicht aufrüstbar. Wenn das NAS noch ein paar andere Aufgaben neben Minecraft haben sollte, dann hat man damit keinen Spaß. In dem Fall empfehle ich mein Tutorial für Minecraft auf einem Raspberry Pi 4.

Warum Docker und nicht das Minecraft-Paket?

Docker erlaubt den Starten des Server innerhalb von Sekunden. Außerdem trennen wir damit den Minecraft-Server vom Rest des Synology-System und können es so besser kontrollieren. Das Community Paket verwendet dazu noch eine alte Version des Servers und nicht das performantere PaperMC für für die aktuellen Versionen von Minecraft.

In wenigen Schritten zum Minecraft-Server

Dank Docker ist die Einrichtung mittlerweile kinderleicht. Wenn man sich an die hier beschriebenen Schritt hält, dann wird das auch klappen. Viele andere Menschen haben das schon vorher geschafft. Und wer nicht lesen mag, der schaut sich einfach das Schritt-für-Schritt-Video an. Viel Spaß.

Schritt 1: Installieren von Docker

Über die Paketverwaltung vom DiskStation Manager installieren wir nun Docker. Wenn Docker dort nicht auftaucht, dann ist deine Diskstation damit leider nicht kompatibel. Das sollte man auch nicht erzwingen sondern statt dessen die Lösung mit einem Raspberry Pi in Erwägung ziehen.

Schritt 2: Erstellen eines Shared Folders

Der Server braucht einen Speicherort auf der DiskStation in dem die Konfigurationsdateien und vor allem die Map liegt. Deswegen ist dieser Schritt wichtig, weil sonst Aktualisierungen des Containers zum Verlust der Minecraft Karte führen würden. Legt einfach einen Ordner im nun vorhandenen Shared Folder „docker“ an weil dort alle Rechte bereits vergeben sind.

Schritt 3: Runterladen des Docker images

In Docker selber suchst du nun in der Registry nach „MarcTV“ und wählst das Image „MinecraftPaperServer“ aus und lädst es runter. Docker fragt, ob du „latest“ „1.15.2“ oder „1.19“ als Tag runterladen willst. „Latest“ ist immer die jeweils neueste Version.

Das ebenfalls verfügbare Overviewer Image ist für die Generierung einer isometrischen Karte sobald der Server später läuft. Dies ist jedoch optional.

Schritt 4: Konfigurieren des Docker Containers

Nachdem wir das Image runtergeladen haben, kann es nun als Container konfiguriert und gestartet werden. Folgende Einstellungen sollten hier vorgenommen werden:

Docker ressource limitation

  • CPU priority: high
  • Memory Limit: 50% vom Arbeitsspeicher im NAS

Advanced Settings

  • enable auto-restart: yes

Volume

  • File/Folder: Das shared folder aus Schritt 1 hier auswählen
  • Mount path: /data

Port Settings

  • Local Port: 25565 TCP
  • Container Port: 25565 TCP
  • Local Port: 25565 UDP
  • Container Port: 25565 UDP

Environment Variables

VariableWert
MEMORYSIZENehmt hier 33% eures Arbeitsspeichers im NAS. So viel wie nur möglich.
TZTime Zone wie z.B. „Europe/Berlin“

Schritt 5: Starten des Servers

Nun muss man den Server nur noch starten und er ist im lokalen Netzwerk verfügbar. Das Starten selber dauert beim ersten mal ca. 3 Minuten. Danach ist er nach wenigen Sekunden jederzeit verfügbar und gestartet.

Die Konfiguration geschieht über die Datei server.properties, die nach dem ersten Start in dem shared folder zusammen mit den anderen Dateien generiert wurden.

Schritt 6: Freigeben des Servers über das Internet

Ich nutze eine Fritzbox. Dort kann man unter den Einstellungen Internet > MyFritz-Konto eine Adresse einrichten, über die man die Fritzbox außerhalb des eigenen Netzwerks erreichen kann.

Unter Internet > Freigaben > Gerät für Freigaben hinzufügen > [Gerät auswählen] > Neue Freigabe > MyFritz Freigabe > Andere Anwendung und dort den Port „25565“ für TCP und UDP freigeben.

Die MyFritz-URL ist dann die Server-Adresse, die man in Minecraft einträgt. Zum Beispiel u5xvqz2trolololom.myfritz.net Mein Server läuft durch einen SRV-Eintrag in meine DNS-Einstellungen der Domain hier mc.marc.tv

Hinweis für IPv6 Kunden

Viele Router laufen schon über IPv6 oder DS-Lite. Das bedeutet, dass die Portfreigabe komplizierter ist. Einfacher ist es beim Internetprovider anzurufen und sagen, dass man gerne auf eine IPv4 Anbindung wechseln möchte. Die Begründung sollte sein, dass IPv4 für einen beruflichen Dienst benötigt wird. Danach schaltet man unter „Internet“ -> „Zugangsdaten“ -> „IPv6“ auf „native IPv4 Anbindung“ um und erstellt dann die Portfreigabe.

Wie sieht das Dockerfile aus?

Da ich persönlich gerne Dinge unter meiner Kontrolle haben möchte, fühle ich mich wohler mit einem überschaubaren Code wohler. Das Dockerimage ist in meinem GitHub-Account verfügbar und ich freue mich über Verbesserungen. Dank an Felix Klauke. Auf seinem Dockerimage basiert meines und er gab mir hilfreiche Tipps.

Der Minecraft-Server auf dem Synology NAS
Der Minecraft-Server auf dem Synology NAS

Wie gelange ich auf die Kommandozeile des laufenden Containers?

Wenn der Container läuft, kommst du mit folgenden Schritten unter DSM in das Terminal:

  1. Docker App starten
  2. Container (z.B. marctv-minecraft-papermc-server)
  3. Rechtsklick und dann Details
  4. Tab: Terminal

Hinweis: Dort funktionieren die Tastaturabkürzungen für Kopieren und Einfügen nicht, sondern Rechtsklick und dort „Einfügen“ und „Kopieren“. Dort können Befehle wie op oder whitelist add verwendet werden.

Kommandozeile im Docker Container
Kommandozeile im Docker Container

Wie optimiere ich die Leistung des Servers?

„Can’t keep up! Is the server overloaded? Running 5190ms or 103 ticks behind“ ist eine Meldung, die man eventuell sofort nach dem ersten Start des Servers sieht. Der neue Server muss für die Spieler im laufenden Betrieb die Welt oder besser die „Chunks“ noch generieren. Das heißt, mit der Zeit wird die Geschwindigkeit deutlich besser.

Das Abschalten der Pillager Patrouillen hilft ebenfalls. Das sind Computergesteuerte Avatare, die permanent auf der Karte auftauchen und berechnet werden müssen. In der Datei „paper.yml“ kann man sie mit dem folgenden Befehl abschalten:

  disable-pillager-patrols: true

Grundsätzlich hilft bei großen Welten immer mehr RAM. Ich selber habe 16 GB (z.B. 2x 8GB DDR3-RAM kaufen) verbaut und zu Spitzenzeiten hatte der Server 6 oder gar 10 GB RAM zugewiesen bekommen. Zusätzlich hat der Einbau einer NAS SSD wahre Wunder bewirkt. Dadurch läd die Welt schneller. Auch Wechsel ins Nether und zurück werden massiv beschleunigt. Alternativ kann man im NAS eine RAM-Disk verwenden. Eine SSD ist aber deutlich sicherer. Da der Minecraft-Server eine Single-Thread-Anwendung ist und somit nur auf einem CPU-Kern laufen kann, bringen mehr CPU-Kerne hier leider wenig.

Konfiguration des Servers

Die Einstellungen für den Bedrock-Server müssen in Konfigurationsdateien vorgenommen werden. Diese wurden in den lokalen Verzeichnissen auf dem NAS erzeugt. Wichtig: Vor Änderungen den Server immer runterfahren bzw. den Container stoppen.

server.properties

Hier wird zum Beispiel eingestellt, ob eine Whitelist verwendet wird oder ob im Survival oder Creative-Modus gespielt wird:

gamemode=creative
force-gamemode=true

whitelist.json

Die whitelist.json sollte hingegen nicht manuell editiert werden. Um Benutzernamen der Whitelist hinzuzufügen, geht man auf die Kommandozeile im Terminal des Servers bzw. des Containers und gibt ein:

whitelist on
whitelist add BENUTZERNAME

BENUTZERNAME steht natürlich für den jeweiligen Account-Namen.

Wie aktualisiere ich den Minecraft Docker Container?

Unter DSM von Synology ist der Weg leider alles andere als intuitiv. Wenn der Container genau nach dieser Anleitung angelegt wurde, dann kann man den Container mit dem Server wie folgt aktualisieren:

  1. Docker App öffnen
  2. „Registry“ aufrufen
  3. „MarcTV“ eingeben
  4. Neueste Version des Minecraft-PaperMC-Servers runterladen.
  5. Warten bis der Download erfolgreich war. Das kann ca. 2 Minuten dauern.
  6. Den vorhandenen Minecraft Container stoppen.
  7. Mit rechter Maustaste den Befehl „clear“ ausführen.
  8. Den Container wieder starten.
„Clear“ löscht nicht die lokalen Inhalte sondern nur den Container

Man kann Docker Container auch automatisch mit Watchtower aktualisieren. Das bietet sich vor allem bei mehreren laufenden Containern an. Sonst kann es passieren, dass sich die Client nicht mit dem Server verbinden können, weil die Versionen nicht übereinstimmen.

Manchmal gibt es noch keinen aktuellen Paper Minecraft Server für den neusten Client
Manchmal gibt es noch keinen aktuellen Paper Minecraft Server für den neusten Client.

Wie installiere ich Plug-ins und Mods für die Java-Edition?

Der gesamte Server abzüglich der Linux-Umgebung befindet sich außerhalb des Containers. Jedenfalls, wenn diese Anleitung korrekt befolgt wurde. Zusätzliche Module lassen sich im gemounteten Ordner auf dem NAS installieren wie bei allen anderen Minecraft-Servern auch.

Wie starte ich eine alte Version von Minecraft?

Die eingesetzte Server-Software PaperMC ist nicht immer sofort auf dem neuesten Stand. Deswegen kann man in der Zeit einfach seinen Minecraft-Client mit einer alten Version starten. Dazu startet man den Minecraft Launcher und wählt oben im Menü „Installations“ und dann „New“ aus.

So legt man eine neue Installation mit einer alten Version an.

Dort kann man nun eine Installation anlegen mit einer älteren Version und diese beim Starten auswählen.

Wieso nutzt du nicht weiterhin den Raspberry Pi?

Der Raspberry Pi hat nur 1 GB Speicher, der nicht erweiterbar ist. Wenn nun ein paar Leute auf dem Server wirklich spielen und mit einer riesigen Eisenbahn neue Chunks erzeugen verbraucht das Speicher. Nachdem der Server dann mehrmals abgestürzt ist und ich sogar einmal ein Backup wiederherstellen musste, habe ich nach einer neuen Lösung gesucht. Für kleinere Karten ist der Raspberry Pi mit PaperMC allerdings immer noch ein idealer und sehr günstiger Anfang.


Beitrag veröffentlicht

in

von

Kommentare

370 Antworten zu „Java Minecraft Server 1.20 auf Synology NAS installieren“

  1. Avatar von Jens
    Jens

    Hallo,

    besten Dank für die gute und ausführliche Anleitung. Eines habe ich noch nicht verstanden. Ich habe für unseren Sohn im Herbst des letzten Jahres die Server-Version 1.16 über die Syno laufen. Auf dem Client wird die Version 1.16.3 gespielt.

    Meine Frage ist, wie kann ich auf die aktuelle Version 1.16.5 wechseln? Quasi ohne, dass die erschaffenen Welten „kaputt“ gehen? Geht das überhaupt?

    Besten Dank für eine kurze Rückmeldung.
    Gruß
    Jens

    1. Avatar von Marc
      Marc

      Ja, steht im Text.

  2. Avatar von Karsten
    Karsten

    Hallo Marc,

    vielen Dank für deine super Anleitung. Habe den Server für meinen Sohn installiert. Der Container läuft ohne Fehler. Leider erhält das Spiel auf seinem PC keinen Ping. Netzwerk des Docker Containers ist wie in der Anleitung auf „bridged“ eingestellt. Die Synology hat die 192.168.177.100 der Container mcserver hat das Subnetz 172.17.0.0/16 und Gateway 172.17.0.1. Die Firewall der Synology ist deaktiviert.

    Hast du eine Idee woran es liegen könnte?
    Gruß
    Karsten

  3. Avatar von Karl
    Karl

    Hi Marc,
    weißt zu zufällig, wie weit der Intel Celeron 1007U von dem DS218+ reicht? Also kann ich damit mit mehreren Mods und ca 6 Spielern spielen? Vielen Dank im Vorraus für die Antwort
    LG Karl

    1. Avatar von Karl
      Karl

      Entschuldigung, der Intel Celeron 1007U ist von dem DS220+ :D

    2. Avatar von Marc
      Marc

      Ausprobieren =)

    3. Avatar von Karl
      Karl

      Ich habe ihn ja leider noch nicht :D

    4. Avatar von Marc
      Marc

      Zur Not einfach den Bedrock Server nehmen. Der läuft besser. Aber ich denke, du wirst keine Probleme haben. Hauptsache genug RAM! Siehe oben.

    5. Avatar von Karl
      Karl

      Ok vielen Dank :)

  4. Avatar von Ralf
    Ralf

    Moin.
    Vielen Dank für die ausführliche Anleitung, hat mir wirklich gut bei der Einrichtung geholfen. :)
    Da ich aus Kostengründen keine SSDs in meinem NAS (DS220+) verbauen möchte, habe ich einfach einen schnellen USB 3.0-Stick daran angeschlossen und darin die Dateien des Minecraft-Servers ausgelagert. Ist von der Geschwindigkeit und Performance her eine gute (und günstige) Alternative zwischen der langsamen HDD und einer schnelleren SSD. ;)

    1. Avatar von Marc
      Marc

      Wenn dir deine Daten lieb sind, würde ich einen USB Stick nicht für solche Aufgaben nutzen. Deine Festplatte ist unter Umständen schneller. Ein USB Stick hat nicht den Vorteil einer SSD, dass die Zugriffszeiten sehr gering sind.

      Aber probier es aus und berichte. :) Teste auch mal die Festplatten gegen den Stick. Das ist ggf schneller mit den HDDs

    2. Avatar von Ralf
      Ralf

      Rückmeldung: Nach einigen Tagen ist mir eingefallen, das ich noch eine 500 GB SSD hier rumfliegen habe, welche nicht genutzt wird. Ab in ein externes Gehäuse damit und an meine DS220+ angeklemmt. Ja, läuft auf jeden Fall jetzt eine ganze Ecke flotter, keine micro-Ruckler mehr beim Laden neuer Chunks.
      Die DS ist übrigens mit kompatiblen Speicher overRAMt. 2GB sind verlötet, max. 4 GB zusätzlich bietet Synology an, ich habe einen kompatiblen 8 GB Riegel verbaut. Dem Minecraft-Server habe ich daher 4 GB von meinen insgesamt 10 GB zuweisen können.
      Also: OverRAMte DS220+ (10 GB RAM) und SATA-SSD via USB 3.0 -> läuft exzellent!

    3. Avatar von Marc
      Marc

      Also genau das, was hier auch steht: ;-)

  5. Avatar von Frank Remers
    Frank Remers

    Hallo Marc,
    wird es eine 1.17 Java Version auf Synology geben?

  6. Avatar von Death_killers21
    Death_killers21

    Hey Danke Für Die Anleitung und Das Tutoriell Hat Mir Sehr Geholfen Und Wo Es Dann Lief und Die Anzeichen gesehen Habe Das Es funktioniert Hat mich So Glücklich Gemacht……Meine Frage Ist aber Wie Ich Mods und So Instaliere ich Habe Gesehen Das du Da Was stehen Habe Aber Ich Wurde Da Noch Nett Schlau Wenn Du Pa Tips und Tricks Hast Wer Ich Sehr Froh Wenn Du Mir Das Erklären Köntest

    1. Avatar von Death_Killers21
      Death_Killers21

      Kann Mir Da Jemand Bitte Helfen Habe So Gut wie Das Ganze Internet und Yt auf Dem Kopf Gestelt :( und Habe Immer Noch Keine Lösung Gefunden

    2. Avatar von Perez
      Perez

      Also Mods gehen bei PaperMC nicht. Ganz simple!
      Plugins (wie MCMMO, Dynmap, Worldboarder, Multiverse, Worldedit, usw.) funktionieren aber. Dazu musst du einfach in dem vorher definierten Order einfach die jar Dateien in den Plugin Ordner platzieren.
      Wenn du das nicht hinbekommst, solltest du es vielleicht sein lassen… ist nicht böse gemeint.
      Jetzt kommt bestimmt die Frage, was der Unterschied zwischen Plugins und Mods sind. Die Information findest du im Internet. Mods sind teilweise recht unfangreich und fügen neue Blöcke hinzu, dafür muss auf dem Server die Mod laufen und auch auf der Clientseite ist ein Minecraft mit Mods notwenidig. Bei plugins funktioniert alles mit der normalen Minecraft Version. (keine Änderungen Clientseitig notwendig).

      Grüße

  7. Avatar von Frank Stoffels
    Frank Stoffels

    Hallo Marc,
    könntest du im Docker die „latest“ zur 1.17 ändern?
    PaperMC ist ja schon nicht mehr als Beta gekennzeichnet, sondern als early build.
    Derzeit ist dort noch die 1.16.5 build 778 hinterlegt.

    Das macht das Updaten leichter. ;)

    1. Avatar von Marc
      Marc

      Bald. Nachdem die Version wirklich stabil läuft mache ich das.

    2. Avatar von Marc
      Marc

      Es ist so weit =)

  8. Avatar von Michael
    Michael

    ich bekomme die 1.17 nicht zum laufen, der Container wird immer wieder „unerwartet gestoppt“, kannst du das reproduzieren oder helfen?

    1. Avatar von Marc
      Marc

      Was sagt das log? Klappt es mit einem leeren Server?

    2. Avatar von Michael
      Michael

      in einem Test Ordner anstatt der alten Welt klappt es seltsamerweise, aber selbst mit kopieren in den alten kommt der regelmässige Neustart, kann es mit einer alten Datei oder DSM7 zusammen hängen?

  9. Avatar von Michael
    Michael

    ok, scheint an dem Minecraft Shared Folder zu liegen, selbst leeren und neu starten bringt nichts, er bleibt dann leer, ist nur die Frage, warum so plötzlich? Ich tippe ja auf DSM7

    1. Avatar von Michael
      Michael

      ich habe jetzt einen neuen shared Folder im Docker Verzeichnis angelegt, alles dorthin kopiert und den Server nochmals zurückgesetzt und neu gestartet, und das scheint die Lösung zu sein. Er läuft

    2. Avatar von Marc
      Marc

      Ach, Du hast DSM 7 drauf? Das kann sein.

    3. Avatar von Michael A.
      Michael A.

      Ich habe das selbe Problem. Ich habe jetzt auch einen neuen Shared Folder erstellt und noch nichts rüber kopiert. Also qausi eine Neuinstallation und bekomme weiterhin das selbe Problem.

      Im Terminal steht AccessDeniedException: /data/

      Im Log steht ziemlich viel, was ich unmöglich hier alles posten kann. Ich konnte auf Anhieb nichts finden, was helfen könnte. Gerne überlasse ich dir auch das gesamte Log.

      Ich verwende auch die 7er Version vom dsm

    4. Avatar von Marc
      Marc

      Docker fehlen die Rechte auf das Verzeichnis zuzugreifen. Das betrifft alle Container. Bitte im Docker Shared Folder anlegen oder dem Verzeichnis die Rechte geben

    5. Avatar von Michael A.
      Michael A.

      Danke für die äußerst schnelle Antwort. Ich möchte ich mich dafür bedanken, dass meine kleinen Kids schon seit rund 12 Monaten sehr zufrieden dein Docker Container verwenden.

      Nun zurück zum Problem: Wem muss ich denn Rechte geben? Es gibt keinen Docker Benutzer oder internen Systembenutzer für Docker. Ich habe das Shared Folder als Admin über die Synology Oberfläche erstellt und Admin und Admins haben Lesen/Schreiben darauf.

      Leider verstehe ich deine Aussage mit „Im Docker Shared Folder anlegen“ nicht. Soweit ich das sehe, bietet die Docker App keine Möglichkeit Shared Folder anzulegen.

      Der Bedrock Server funktioniert übrigens einwandfrei auch in der neuesten Version.

    6. Avatar von Marc
      Marc

      Gerne. Siehe auch das letzte Kapitel hier im Artikel ;-)

      Ist das alles im „Docker“ Shared Folder angelegt wie im Video und nicht außerhalb? Es kann nichts mit dem Container zu tun haben wenn du einen neuen Server startest ohne Dateien da drin. Das ist ein Rechteproblem. Docker „sieht“ die Dateien nicht.

    7. Avatar von Michael A.
      Michael A.

      Ich habe mal 5€ für Kaffee überwiesen :). Lass es dir schmecken.

      Ja, das hat tatsächlich das Problem behoben. Bitte erlaube mir noch eine weitere Frage. Um den alten Server zum neuen zu übertragen, brauche ich doch nur den Ordner „World“ rüber zu kopieren, richtig? Das Verzeichnis „World“ ist dann gleichbedeutend mit dem Levelname. Wenn ich also mehrere Welten verwalten möchte, muss ich die Dateien z.B. in World2 kopieren und dann in den server.properties den Wert für level-name auf „world2“ setzen, richtig?

    8. Avatar von Marc
      Marc

      Danke und richtöch!

    9. Avatar von Michael A.
      Michael A.

      Ist mir fast schon peinlich zu fragen, aber spielt die Versionsnummer von Minecraft mit der die Map erstellt wurde irgendeine Rolle?

  10. Avatar von Bart Ooms
    Bart Ooms

    To update your container in the latest docker version:
    Action > Clear
    is now
    Action > Reset
    Also, version 1.17.10 of Minecraft is available today.

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert