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 Markus
    Markus

    Ist ein Update auf die Version 1.14 Möglich ?

    1. Avatar von Marc
      Marc

      Ja, ist es. Aktuell nutze ich PaperMC im Container. Wenn das stabil die Version 1.14 unterstützt, aktualisiere ich den Container.

    2. Avatar von Markus
      Markus

      sehr Cool dank für deinen Support hier, kannst du mir sagen ob einstellungen auf dem Server verloren gehen. Spielstände usw. Und ob man einfach nur den Container tauschen muss?

    3. Avatar von Marc
      Marc

      Sorry, ich hatte mich vertan. Nein, die Einstellungen gehen nicht verloren, wenn du meiner Anleitung folgst.

  2. Avatar von Marko
    Marko

    Ich habe mir vorhin den Synology DS218+ gekauft mit 4TB HDD und 2 GB Ram (8GB Ram kommen am Donnerstag). Habe schritt für schritt Installiert, nach deiner Aneitung her ist alles auf Englisch?! (Einstellungen) und der rest auf Deutsch.

    Leider funktionierts nicht, es probiert zu starten, aber stoppt dauernd. Könntest du mir evtl helfen?

    1. Avatar von Marc
      Marc

      Was sagen Dir Logs? Fehlermeldungen? Ohne das kann Dir leider niemand helfen

    2. Avatar von Marko
      Marko

      Hab den Fehler gefunden, bei den Java Einstellungen hast du 3G drinnen und ich hab 1.5G gehabt, habs jetzt geändert auf 1G bis die 8GB kommen :)

  3. Avatar von HawkStreanTV
    HawkStreanTV

    Guten Morgen Marc, Ich nutze deinen Server nun auch schon seid ein paar Wochen. Dafür erst einmal Vielen Dank. Da ich Streamer bin, Schreit meine Community schon nach dem neuen Update. Weißt du wie ich dies auf den Server bekomme? 1.14

    1. Avatar von Marc
      Marc

      Hi,

      wenn diese Liste bei 100% ist:

      Auf dem Synology NAS ist ein „normaler“ Minecraft Server nicht performant zu betreiben. Deswegen setze ich auf PaperMC in dem Docker Container. Das dauert einfach etwas.

  4. Avatar von Andreas
    Andreas

    Hallo Marc,

    die Version des Servers ist immernoch 563 (siehe im Dockerfile ) und nicht „latest“ wie oben im Dockerfile angegeben.
    Jetzt ist 624 aktuell.
    Kannst Du das bitte anpassen?

    VG Andreas

    1. Avatar von Marc
      Marc

      Gibt es denn einen relevanten gefixte Bug? Aktuell läuft er so stabil – was nicht immer so war

    2. Avatar von Andreas
      Andreas

      Stabil läuft er…
      Ich habe mich halt gewundert, warum sich das Image nicht updaten lässt und dann den Unterschied in den beiden Dockerfiles gefunden.
      Wenn es von Dir so gewollt ist, dann ist das auch okay.

      VG Andreas

  5. Avatar von Denis
    Denis

    Hallo Marc,
    erstmal danke für die Anleitung und die Arbeit, die Du Dir da gemacht hast!

    Ich nenne eine DS218+ mein Eigen. 8 GB RAM kommen Montag.
    Ich habe das Problem, dass der mcserver als auch der Overviewer sich „unerwartet“ beenden und ich sehe nicht, warum das so sein sollte.

    Meine Einstellungen für das Dockerimage:

    Allgemeine Einstellungen:
    Ressourcenbeschränkung aktivieren: ja
    Speichergrenzwert (weil noch keine 8 GB da sind): 512 MB

    Erweiterte Einstellungen:
    Automatischen Neustart: Ja

    Volume:
    Ordner hinzufügen: mcserver (die erstellte Freigabe)
    Bei Mount-Pfad „/data“ eingesetzt, wie beschrieben.

    Bei den Port-Einstellungen sieht es so aus:
    Lokaler Pfad | Container-Port | Typ
    25565 | 25565 | TCP
    25565 | 25565 | UDP

    Umgebung:
    MEMORYSIZE habe ich auf 800 gesetzt.

    Ich werde noch mit den 2 RAM-Werten spielen, aber ich sehe noch kein Licht am Ende des Tunnels.

    Was mache ich falsch? Was kann ich verbessern/verändern, damit’s läuft?

    Vielen Dank!

    1. Avatar von Denis
      Denis

      Interessant ist die hs_err_pid1.log:

      #
      # There is insufficient memory for the Java Runtime Environment to continue.
      # Native memory allocation (mmap) failed to map 3221225472 bytes for committing reserved memory.
      # Possible reasons:
      # The system is out of physical RAM or swap space
      # The process is running with CompressedOops enabled, and the Java Heap may be blocking the growth of the native heap
      # Possible solutions:
      # Reduce memory load on the system
      # Increase physical memory or swap space
      # Check if swap backing store is full
      # Decrease Java heap size (-Xmx/-Xms)
      # Decrease number of Java threads
      # Decrease Java thread stack sizes (-Xss)
      # Set larger code cache with -XX:ReservedCodeCacheSize=
      # This output file may be truncated or incomplete.
      #
      # Out of Memory Error (os_linux.cpp:2749), pid=1, tid=0x00007f5f77ae9700
      #
      # JRE version: (8.0_202-b08) (build )
      # Java VM: Java HotSpot(TM) 64-Bit Server VM (25.202-b08 mixed mode linux-amd64 compressed oops)
      # Core dump written. Default location: /data/core or core.1
      #

      failed to map 3.221.225.472 bytes? Aber ich habe in den Einstellungen bei MEMORYSIZE etwas anderes eingegeben. Oder ist das unabhängig davon?

      Gruß

    2. Avatar von Denis
      Denis

      Argh! Ich habs.

      MEMORYSIZE war das Problem. Ich hatte das zwar von „3G“ auf „512“ geändert, aber das kleine aber feine „m“ hinter der „512“ vergessen…

      Das hilft! Danke :)

  6. Avatar von Eleven
    Eleven

    Hallo Marc,
    ich wie sieht es mit der Version 1.14 aus? Läuft diese stabil?
    Wann wird der Container wohl geupdatet?

    Grüße

    1. Avatar von Marc
      Marc

      Der Container ist bereits aktuell: Allerdings nicht ansatzweise stabil oder spielbar. Das wird auch noch dauern.

  7. Avatar von Theo4u
    Theo4u

    Tach,
    habe jetzt seit gut zwei bis drei Wochen den MC Server, stabil auf meiner DS718+ am laufen.
    Dank der Super Anleitung, ein Kinderspiel. ;) Danke Dafür!

    Nur jetzt habe ich ein mächtiges Brett vorm Kopf. Wie Update ich den Server jetzt auf Version 1.14.2?

    Ich vermute das ich diese Programmzeile

    ARG paperspigot_ci_url=

    Durch die alter ersetzen muss. Nur finde ich Sie nirgends.

    Wäre für einen Hilfreichen Rat dankbar.

    Gruß Theo

    1. Avatar von Marc
      Marc

      Gar nicht. Bitte mal die Kommentare hier lesen. 1.14.2 ist nicht einsatzbereit für Live-Server. Da man auf dem Synology PaperMC nutzen muss wegen der Performance ist es noch nicht so weit. Ich aktualisiere unseren Server auch erst wenn es stabil läuft.

      Wenn du völlig irre bist, dann nutze gerne mein neues Image:

      Das wird bald das alte ersetzen.

  8. Avatar von Florian
    Florian

    Hallo Marc,

    vielen Dank für die Anleitung. Leider kann ich mich nicht auf den Server schalten.
    Anleitung wurde befolgt, alles mehrmals kontrolliert. Nachdem ich den Docker-Container starte, sehe ich den Server aber im lokalen Netzwerk nicht. Ich habe schon alles mögliche untersucht, aber gefunden habe ich nichts. Kannst du mir da helfen?

    1. Avatar von Marc
      Marc

      Hi,
      läuft er wirklich? Was zeigt der Docker-Container an im Terminal? Richtige IP genommen? Ports richtig zugewiesen?

    2. Avatar von Florian
      Florian

      Vielen Dank für die Antwort!

      Ports habe ich wie folgt:
      Lokaler Port | Container-Port | Typ
      25565 | 25565 | TCP
      25565 | 25565 | UDP

      IP-Adresse der NAS ist 192.168.2.123
      Muss ich diese in der Datei server.properties noch hinzufügen oder rafft der das selber?
      Im Protokoll steht „Done! (34,130s) Type help“ usw.
      Nach einem Neustart dauert es dann nur noch 5s.
      Für mich sieht es also so aus, als ob es läuft. Aber bei Minecraft auf dem PC, selbes Netz, erscheint nichts. Direkt verbinden geht auch nicht. Weder mit IP:25565 noch mit Hostname:25565. Oder wie muss ich mich dann hinverbinden?

    3. Avatar von Florian
      Florian

      VERDAMMT bin ich dämlich. Aber sowas von!
      Bitte entschuldige. Ehrlich. Eigentlich hätte ich es besser wissen müssen.
      Man sollte auch auf der NAS in der Firewall die entsprechenden Dienste erlauben, wenn man es so konfiguriert hat -.-
      Es funktioniert jetzt alles tadellos. Vielen vielen Dank trotzdem! :)

  9. Avatar von Ogerix88
    Ogerix88

    Hi! Vielen Dank für das tolle Paket und die tolle Anleitung! Läuft super auf meiner 218+ .
    Gibts irgendwie die Möglichkeit ein Webinterface auf den bestehenden Server zu installieren?

    1. Avatar von Marc
      Marc

      Bestimmt. Alles sollte damit funktionieren.

  10. Avatar von Christian
    Christian

    Hallo Marc,

    Ich habe mir einen Server nach deiner Anleitung eingerichtet.
    Der einzige punkt bei dem Ich stocke ist der wie ich auf den Server Connecten kann.

    Denn egal welche ip ich in die server.properties Datei eintrage.
    Er zeigt mir immer nach dem Start an „Failed to bind to port“ „Perhaps a server is already running on that port“.

    Da ich einen Speedport Router habe kann ich es leider nicht so machen wie in deiner Anleitung und ich weiß auch nicht wie ich den Speedport Router konfigurieren muss sodass es funktioniert.

    Hast du diesbezüglich vielleicht einen Tipp?

    Vielen Dank

    Gruß
    Christian

    1. Avatar von Marc
      Marc

      Dann läuft dort wohl schon ein Server. ;-) Ich habe keine Ahnung wie das mit einem Speedport Router geht. Du solltest aber lokal im Netzwerk darauf zugreifen können.

    2. Avatar von Christian
      Christian

      Gibt es eine Möglichkeit zu sehen von was der Port blockiert wird?

    3. Avatar von Marc
      Marc

      Naja, ein anderer Server. Du hast wohl auf dem Synology NAS den Server bereits gestartet.

Schreibe einen Kommentar

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