Ich wollte seit langer Zeit wegen den geringen Kosten einen Minecraft Server 1.15 auf dem neuen Raspberry Pi 4 mit 4GB (günstig kaufen) installieren. So ein Server muss dauerhaft stabil 24/7 laufen, damit man damit echt Spaß haben kann. Deswegen habe ich dieses Tutorial geschrieben, in dem genau dieses Endziel beschrieben wird. Der Server ist für die JAVA-Version von Minecraft.

Unsere Minecraft-Welt ist mittlerweile stolze 150 MB groß und hat seit ihrem Debüt auf der XBOX 360 bis heute überlebt. Aus diesem Grund möchte ich ab und zu ohne viel Konfiguration oder Geld zu bezahlen die Welt weiter gestalten.

Nur für JAVA-PC Version von Minecraft geeignet

Wer den Server für die XBOX, PlayStation 4, iOS und Android Version aufsetzen möchte, der nutzt meine Anleitung für einen Minecraft Bedrock-Server. Diese Version für den Raspberry Pi in diesem Artikel funktioniert nur für die JAVA-Version von Minecraft für Mac und PC.

Der Spigot-Fork „Paper“ dient als Grundlage

In diesem Artikel beschreibe ich wie man auf de Pi den Minecraft Server Paper als „headless server“ stabil betreibt. Das heißt, der Pi kann irgendwo in der Nähe des Routers ohne Maus und Tastatur betrieben werden.

Paper ist ein auf Geschwindigkeit optimierter Fork des Spigot Minecraft-Servers, die darauf abzielt, Gameplay und mechanische Inkonsistenzen zu beheben und die Leistung zu verbessern. Ohne Paper könnten wir den Minecraft-Server nicht performant auf dem Pi betreiben. Paper funktioniert genau so wie ein ein normaler Minecraft-Server mit der jeweils aktuellen Version von Minecraft.

Welche Hardware benötigt man?

  1. Einen Raspberry Pi 4 mit 4GB RAM – günstig kaufen
  2. Ein USB-C Netzteil für den Pi4 – nicht sparen!
  3. Eine schnelle (!) microSD Karteauch nicht sparen!
  4. Ein schönes Gehäuse für den Pi4 – günstig kaufen
  5. Ggf. ein Synology NAS für Backups – kaufen

Welche Software wird benötigt?

  1. Raspbian Buster Lite (Betriebssystem für den Pi)
  2. etcher (Tool zum Schreiben von SD Karten)
  3. Die Shell (beim Mac dabei) oder PuTTY für Windows.

Schreiben der MicroSD Karte und SSH aktivieren

  1. Schreibt mit etcher die img-Datei von Raspbian Buster Lite auf die SD-Karte.
  2. Legt eine leere Datei namens ssh per Computer auf die SD Karte in der Partition „boot“. Das aktiviert den SSH Zugang.
  3. Die MicroSD Karte in den Pi einstecken und diesen per Netzwerkkabel ins lokale Netzwerk hängen. Den Pi an den Strom anschließen.

Login per SSH

Per Shell oder Putty mit SSH auf den Pi wechseln. Die IP des Pi sieht ihr in eurem Router unter Netzwerkgeräte oder ihr verwendet raspberrypi als Hostname. Das Passwort lautet „raspberry“. Wenn das geklappt hat, dann haben wir den schwierigsten Teil hinter uns gelassen. Beispiel mit meiner IP:

ssh pi@raspberrypi

Falls es hier ein Problem gibt, probiert es mit der IP-Adresse statt dem Hostnamen raspberrypi. Wenn es dann immernoch Probleme gibt, habt ihr entweder vergessen, SSH zu aktivieren oder das Netzwerkkabel steht nicht drin oder hat keine Verbindung.

Konfiguration von Rasperian

Mit dem folgenden Befehl startet ihr das Rasperian Konfigurationstool. Dort unter Interfacing Options kann man unter SSH den Zugang aktivieren.

sudo raspi-config

Nun setzen wir die korrekte Zeitzone. Das ist wichtig für die cronjobs:

sudo dpkg-reconfigure tzdata

Installation Paper

Für die einfache Installation hat James A. Chambers ein Script geschrieben, das uns diesen Schritt enorm erleichtert. Das wird mit wget von github gezogen, mit Schreibrechten versehen und dann ausgeführt. Das Script installiert Java 9 und den aktuellen Paper Minecraft Server. Ausgeführt wird es nun in drei Schritten. Jeder Schritt ist jeweils eine Zeile auf der Kommandozeile.

wget -O SetupMinecraft.sh https://raw.githubusercontent.com/mtoensing/RaspberryPiMinecraft/master/SetupMinecraft.sh

chmod +x SetupMinecraft.sh

./SetupMinecraft.sh

Starten und Optimieren des Servers

Der Server kann nun direkt gestartet werden. Das Script dasfür liegt im Verzeichnis ~/minecraft Erreichbar ist der Minecraft Server nun unter der IP-Adresse des Raspberry Pi.

Achtung: Bitte einmal den Server starten damit die Konfigurationsdateien geschrieben werden, die wir im nächsten Schritt editieren.

cd ~/minecraft
./start.sh

Zusätzlichen weisen wir mehr Speicher von der GPU dem Server zu. Schließlich haben wir bei diesem Projekt keinerlei grafische Ausgabe. Die System-Konfigurationsdatei editiert man mit nano:

sudo nano /boot/config.txt

Diese Zeilen kommen ganz ans Ende dieser Datei:

gpu_mem=16

Minecraft Server konfigurieren

Es gibt eine Datei in ~/minecraft/server.properties Dort habe ich vorerst die Anzahl der Spieler auf 3 gesetzt und die Whiteliste eingeschaltet. Wenn ihr auf die Kommandozeile des Servers wollt, dann geht das der über die mit start.sh gestartete screen-Session.

Dort kann man dann die whitelist verwalten oder die Tageszeit auf dem Server beeinflussen. Mit dem Befehl timings report seht ihr detaillierte Metriken zur Auslastung des Servers. Mit STRG+A und dann STRG-D verlässt man den Screen dann wieder.

screen -r minecraft

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“ freigeben.

Die MyFritz-URL ist dann die Server-Adresse, die man in Minecraft einträgt. (z.B. qbnsepjzhd8cvzk7y.myfritz.net)

Automatischer Start beim Neustart

Über die crontab kann man nicht nur den Pi und somit den Minecraft-Server  regelmäßig neustarten sondern ebenfalls reboot den Minecraft Server starten. Dafür einfach den  Inhalt der Datei crontab in die Cron Tabelle kopieren. Der Befehl zum editieren der crontab lautet:

crontab -e

Kleine Maps laufen performant auf dem Raspberry Pi 4 mit 4GB

Serverneustart nach 12 Stunden (optional)

Meine Erfahrung mit Minecraft Servern ist, dass man sie zur Sicherheit regelmäßig sauber neustartet. Dabei werden alle Daten im Arbeitsspeicher auf die SD Karte geschrieben und gehen bei einem Absturz nicht verloren. Ich bin dann so weit gegangen, dass sich erst der Paper Server runterfährt und dann der Pi komplett neugestartet wird.

Mein Repository auf GitHub enthält den letzten stabilen Stand.

Konfiguration Samba-Server für Backups (optional)

In Kurzform: Über Samba wird das Verzeichnis ~/minecraft/world im Netzwerk freigegeben. Danach kann das Verzeichnis im Synology NAS gemountet werden. Auf diesem Weg kann ein Task nächtlich die Inhalte in ein Verzeichnis kopieren, das über Cloud Sync mit der Dropbox verbunden ist.

Mit dem letzten Befehl editiert man die Samba Konfiguration. Der Eintrag „read only“ muss von „yes“ auf „no“ gesetzt werden. Dann hat man die Möglichkeit über das Netzwerk alle relevanten Dateien auf dem Pi direkt zu bearbeiten ohne sich mit SSH anmelden zu müssen.

sudo apt install samba

sudo smbpasswd -a pi

# Editieren der Samba config. Was genau editiert werden muss, steht unten.
sudo nano /etc/samba/smb.conf

# Neustarten von Samba damit die Einstellungen übernommen werden.
sudo service smbd restart && sudo service nmbd restart

Hier der Inhalt meiner smb.conf

[homes]
   comment = Home Directories
   browseable = no

# By default, the home directories are exported read-only. Change the
# next parameter to 'no' if you want to be able to write to them.
   read only = no
Dies ist nur ein minimaler Ausschnitt der Karte. Gerendert mit Overviewer.

Leistung des Server optimieren

Bei mir erschien seit Minecraft 1.15 anfangs sehr oft diese Meldung in den Logs:

Can't keep up! Is the server overloaded? Running 5190ms or 103 ticks behind

Teilweise kam diese sogar nur wenige Sekunden nach dem Start einer neuen Karte. Bei mir hat das Plugin LimitPillagers (Download) wahre Wunder gewirkt. Damit habe ich alle Pillager entfernt und danach limitiert. Die Meldung habe ich so nie wieder gesehen.

Der einfachste Weg Plugins zu installieren, ist über SAMBA (SMB). Damit kann man mit dem Windows Explorer oder MacOS Finder direkt auf dem Pi Dateien verwalten. Die Einrichtung ist oben beschrieben. Im Verzeichnis „~/minecraft“ läd man das Plugin in Form der JAR-Datei in das „plugins“-Verzeichnis legen. Den Server dann neustarten. Danach befindet sich zusätzlich eine config-Datei in dem Plugin-Verzeichnis in dem man das Plugin konfigurieren kann. Ich habe bei den Holzhammer benutzt und alle Pillager entfernt.

Java-Parameter einstellen

Wer einen Raspberry Pi 4 mit mehr als 1GB besitzt, kann mit den beiden Parametern „Xms“ und „Xmx“ setzen. Diese setzt man in der Datei ~/minecraft/start.sh in der letzten Zeile. Mein Raspberry Pi 4 mit 4GB Arbeitsspeicher nutzt mit folgenden Werten seinen Speicher besser aus:

/usr/bin/screen -dmS minecraft /usr/bin/java -jar  -Xms2400M -Xmx2400M /home/pi/minecraft/paperclip.jar

Diese Werte sind in der aktuellen Version bereits gesetzt. Wer noch weiter gehen will, kann zusätzliche diese Parameter nutzen:

/usr/bin/screen -dmS minecraft /usr/bin/java -jar  -Xms2400M -Xmx2400M -XX:+UseG1GC -XX:+UnlockExperimentalVMOptions -XX:MaxGCPauseMillis=100 -XX:+DisableExplicitGC -XX:TargetSurvivorRatio=90 -XX:G1NewSizePercent=50 -XX:G1MaxNewSizePercent=80 -XX:G1MixedGCLiveThresholdPercent=35 -XX:+AlwaysPreTouch -XX:+ParallelRefProcEnabled -Dusing.aikars.flags=mcflags.emc.gs /home/pi/minecraft/paperclip.jar

Die Bedeutung der einzelnen Parameter wird bei Aikar.co erklärt.

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

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.

Server aktualisieren

Wenn Du eine alte Version des Scriptes runtergeladen hast, dann führe folgende Befehle über ssh aus auf dem pi:

cd ~/minecraft
wget -O restart.sh https://raw.githubusercontent.com/mtoensing/RaspberryPiMinecraft/master/restart.sh
wget -O start.sh https://raw.githubusercontent.com/mtoensing/RaspberryPiMinecraft/master/start.sh
chmod +x restart.sh start.sh
./restart.sh
# nach eine Neustart dann:
./start.sh

Diese Befehle laden die aktuelle Version des Scriptes runter und starten den Server neu und laden die aktuelle Version (z.Z. 1.15.1) runter.

Der Server läuft und läuft und läuft

Bislang hat der Server erstaunlich wenig Zicken gemacht. Insgessamt waren maximal 3 Personen gleichzeitig auf dem Server und der Pi hat das sehr gut weggesteckt.

Ich bin kein Systemadministrator und es gibt sicherlich einiges an dieser Anleitung zu optimieren. Für Korrekturen und Verbesserungen bin ich dankbar. Gerne auch direkt auf GitHub.

Als Tipp: Der neue schnellere Raspberry Pi 4 mit 4GB ist ideal für dieses Projekt und aktuell günstig zu haben. Wem die Power des Raspberry Pi nicht reicht, der nutzt einfach meine Anleitung für einen Minecraft-Servers auf einem Synology NAS.

Beteilige dich an der Unterhaltung

216 Kommentare

  1. Bei mir startet der Server nicht. Es gibt keine Fehlermeldung. Die Konsole spuckt nur im Sekundentackt „Preparing spawn area: 0%“ aus. Ideen?

    1. Das war bei mir auch so. Auch äußerst langes Warten (ca. 50 min) brachte nichts. Erst die beschriebene Vorgehensweise ‚Java-Parameter einstellen‘ hat bei mir zum Erfolg geführt, diesen Punkt des Textes hatte ich zunächst nur als Option verstanden.

    2. Ok welchen Pi hast du denn? Als ich das Video oben gemacht habe, wurde da von mir auch nichts angepasst auf einem Pi4. Es hat aber wirklich lange gedauert. Sieht man auch im Video.

  2. Das Rebooten des Pi klappt bei mir, aber das automatische Neustarten nicht. Hat jemand Ideen woran das liegen könnte?

  3. Hi Marc,

    leider blicke ich noch nicht so ganz bei der Samba Installation durch.
    Ich habe alles befolgt wie beschrieben konnte aber den Pi nicht im Netzwerk finden.
    Auch mit anderen Guides hatte ich keinen Erfolg…
    Hast du hier noch Tipps?

    Liebe Grüße Julian

    1. Jep.
      Also ich bin im Explorer -> Rechtsclick Netzwerk -> Netzlaufwerk verbinden -> \\Ip-Adresse\World (\\pi\World)
      World ist hierbei mein freigegebener Folder in Samba der auf ~/minecraft/world zugreift.
      Aber verbinden kann ich leider trotzdem nicht…
      Mache ich was falsch? Muss ich anders verbinden?

    2. Das mit dem World Folder habe ich versucht nachdem der anfängliche Guide nicht funktioniert.
      Anfangs habe ich nur den Guide befolgt und rein wie folgt editiert:
      [homes]
      comment = Home Directories
      browseable = no

      # By default, the home directories are exported read-only. Change the
      # next parameter to ’no‘ if you want to be able to write to them.
      read only = no

      Das wars ja.

    1. OK, läuft! Ich hab es so gemacht.
      von 1.14 > 1.15
      -Server stoppen
      -Alten minecraft Ordner sichern dann löschen (oder umbennen)
      Wie in der Anleitung beschrieben installieren
      -Server starten bis dieser läuft das man auf die Welt kommt (Ich brauchte auch das Pillager Plugin)
      – Server stoppen
      -Die alten Konfigdateien (server.properties, whitelist, ops etc.) von der Sicherung in den neuen minecraft Ordner an die richtige Stelle kopieren.
      -Die gesicherten Welten kopieren (komplette Ordner)
      -Server neustarten
      -mit 1.15 spass haben

  4. Hallo,
    erst einmal super Anleitung. Hat alles soweit geklappt.
    Habe allerdings zwei Fragen.
    1. Könntest du erklären wofür die einzelnen Java Parameter in der „Start.sh“ sind? Ich habe diese noch nicht eingefügt, da ich nicht weiß was diese bewirken.
    2. Aktuell läuft 1.15 auf der Server. Heute kam 1.15.1 raus. Wie update ich denn den Server am einfachsten? Also sofern Paper schon die 1.15.1 Version draußen hat.

    Viele Grüße

    1. Hi Marcel,

      Hinweis zu den Parametern habe ich im Artikel ergänzt.

      Wenn 1.5.1 für Paper draußen ist, werde ich das Script aktualisieren.

  5. Servus,

    wäre es jetzt noch möglich ein LCD-Display mit dem Pi zu verbinden, und auf diesem anzeigen zu lassen was der Server aktuell macht? Wie zum Beispiel: Server online, 3/4 Spielern online; Server restartet; Server offline

    1. Ja, aber cooler ist das zu entkoppeln. Guck dir mal mein MCMonitor Script an auf GitHub. Das läuft hier:

    2. Das ist natürlich auch hammer! Hast du dennoch ein Tutorial oder eine Empfehlung zu einem Tutorial wie ich eine solche Echtzeit-Anzeige mit einem LCD Display verwirklichen kann? MfG

  6. Hey ich komme immer nur bis
    ./start.sh

    mit der meldung

    root@raspberrypi:~/minecraft# ./start.sh
    ./start.sh: Zeile 1: #: Kommando nicht gefunden.
    Starting Minecraft server. To view window type screen -r minecraft.
    To minimize the window and let the server run in the background, press Ctrl+A then Ctrl+D
    root@raspberrypi:~/minecraft#

    so bei dem versuch

    screen -r minecraft

    aufzurufen bekomme ich folgendes

    root@raspberrypi:~/minecraft# screen -r minecraft
    There is no screen to be resumed matching minecraft.
    root@raspberrypi:~/minecraft#

    wo ist mein Fehler ?
    Caleus

    1. Hast du wirklich alles Schritt für Schritt gemacht? Auch das chmod Kommando usw? Sonst alles noch mal von vorne.

    2. Ja mehr mals sogahr, er deutet immer darauf hin das etwas in der start.sh nicht in ordnung ist der inhalt meiner start.sh ist wie folgt

      # !/bin/bash
      # James Chambers – V1.0 – March 24th 2018
      # Marc Tönsing – V1.2 – September 16th 2019
      # Minecraft Server low spec startup script using screen
      echo „Starting Minecraft server. To view window type screen -r minecraft.“
      echo „To minimize the window and let the server run in the background, press Ctrl+A then Ctrl+D“
      cd /home/pi/minecraft/
      /usr/bin/screen -dmS minecraft /usr/lib/jvm/java-8-openjdk-armhf/bin/java -jar -Xms2600M -Xmx2600M -XX:+UseG1GC -XX:+UnlockExperimentalVMOptions -XX:MaxGCPauseMillis=100 -XX:+DisableExplicitGC -XX:TargetSurvivorRatio=90 -XX:G1NewSizePercent=50 -XX:G1MaxNewSizePercent=80 -XX:G1MixedGCLiveThresholdPercent=35 -XX:+AlwaysPreTouch -XX:+ParallelRefProcEnabled -Dusing.aikars.flags=mcflags.emc.gs /home/pi/minecraft/paperclip.jar

      Caleus

  7. Hey, ich habe eine Frage: Ich wohne teils daheim und teils im Studentenwohnheim (besseres Internet als daheim), macht es mehr Sinn den Pi-Server im Wohnheim laufen zu lassen oder einfach daheim?

  8. Hallo ,
    welche Systeme können den Server nutzen? Xbox und PS4 funktionieren nicht.
    Deine Beschreibung gibt darüber keine Auskunft.
    Gruß Knut

    1. Danke für den Hinweis! Beide Artikel wurden entsprechend angepasst um fen Sachverhalt zu verdeutlichen

Schreib einen Kommentar

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

Diese Website zeigt Benutzerbilder über gravatar.com an.

Wie bekomme ich einen verifizierten Account? - Login