Anleitung: Minecraft 1.13.2 Server auf dem Raspberry Pi 3B+

Ich wollte seit langer Zeit wegen den geringen Kosten einen Minecraft Server auf dem neuen Raspberry Pi 3B+ 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 das Endziel beschrieben wird.

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.

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.

Welche Hardware benötigt man?

  1. Einen Raspberry Pi 3b oder den neuen 3b+
  2. Ein Netzteil für den Raspberry Pi (Nicht daran sparen!)
  3. Eine schnelle microSD Karte
  4. Ein Gehäuse für den Pi
  5. Ggf. ein Synology NAS (optional für Backups)

Welche Software wird benötigt?

  1. Raspberian Stretch 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

  1. Schreibt mit etcher die img-Datei von Raspberian Stretch 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-

Konfiguration Rasbperian

  1. Per Shell oder Putty mit SSH auf den Pi wechseln. Die IP des Pi sieht ihr in eurem Router unter Netzwerkgeräte. Das Passwort lautet „raspberry“. Wenn das geklappthat, dann haben wir den schwierigsten Teil hinter uns gelassen. Beispiel mit meiner IP:
    ssh pi@192.168.178.37
  2. Mit dem folgenden Befehl startet ihr das Rasperian Konfigurationstool. Dort unter Interfacing Options kann man unter SSH den Zugang aktivieren.
    sudo raspi-config
  3. 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 Commando-Zeile 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. qbnspjzhd8cvzk7y.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
Unsere Map ist mittlerweile über 150 MB groß und läuft wunderbar auf dem Pi

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. Den Inhalt für die Datei smb.conf habe ich mit ins das Repository auf GitHub gelegt.

sudo apt install samba
sudo nano /etc/samba/smb.conf
sudo smbpasswd -a pi
Dies ist nur ein minimaler Ausschnitt der Karte.

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. Jeder ist natürlich eingeladen mitzubauen: qbnspjzhd8cvzk7y.myfritz.net

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 3b+ 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.

81 Antworten auf „Anleitung: Minecraft 1.13.2 Server auf dem Raspberry Pi 3B+“

  1. Mir geht es speziell um die Player UUID´s.
    Ich würde diese gerne regelmäßig gesichert haben, aber nicht immer überschrieben werden. Ist dies möglich?
    Da ich kein NAS oder ähnliches habe würde ich dies gerne über einen USB Stick der im PI steckt realisieren.

    Mein Problem ist, das ich echt nicht der Linux Fachmann bin.
    Könntest Du mir hierbei behilflich sein?

    Grüße Danny

    1. Du kannst dir überall die java-dateien für die anderen Spigot-Versionen herunterladen und sie anstelle der anderen .jar in den Ordner kopieren(ich empfehle dir MobaXterm dafür).

  2. danke für die tolle Arbeit. Ich bitte um Korrektur eines Tippfehlers:
    Mit STRG+A und dann STRG-G verlässt man den Screen dann wieder.
    –> soll heissen:
    Mit STRG+A und dann STRG-D verlässt man den Screen dann wieder.

  3. Muss man in den Server Properties die Myfritz Adresse eintragen? Wenn ja, bei mir sieht sie etwas anders aus, z.B. „raspberrypi.xxxxxxxxxxxxxxxx.myfritz.net“

    und bei der myfritz freigabe wird nach einem Schema gefragt, was soll ich da eintragen?

    Danke und Gruß

    1. Ne, da ist was falsch bei dir. Guck dir nochmal genau die Anleitung oben an. Du bist denke ich an der falschen Stelle wenn Du vor der MyFritz-Adresse noch den Gerätenamen hast.

  4. ich habe es jetzt mehrmals probiert und dieser fehler kommt dabei raus
    hast du da eine idee ?

    pi@raspberrypi:~ $ cd ~/minecraft
    pi@raspberrypi:~/minecraft $ ./start.sh
    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
    ./start.sh: Zeile 8: /usr/bin/screen: Datei oder Verzeichnis nicht gefunden

    1. hi
      ich habe es nochmal probiert und es hat geklappt.
      bloß stürtzt er jetzt immer ab könnte wohl am Model des Raspberry liegen ist bloß das b Model. kann man das irgend ändern?

    2. Ist es eine leere,neue Karte? Oder hast du eine 200 MB Karte importiert? Der Rasberry Pi 3 sollte das locker packen wenn die Karte leer ist.

  5. hi
    ich habe es mal wieder probiert euer script macht das ja schon fast perfekt
    ich starte das ./SetupMinecraft.sh und es geht los, dann kommt die farge nach der mhz zahl und dann noch die beschrenkung der grafikkarte als nächstes kommt ein neustart den er macht da hat er aber noch keinen ordner angelegt.
    und mit was mache ich den weiter ? nochmal mit der ./SetupMinecraft.sh oder mit was anderes?

  6. habe ich gemacht sogar opa habe ich es testen lassen er startet nicht mit dem raspi die rote fehlermeldung ist normal sagt ihr ?
    fehlt in der crontab -e noch ein eintrag da steht bloß der reboot von vier uhr früh drin.

  7. [01:08:20] [Paper Watchdog Thread/ERROR]: app//net.minecraft.server.v1_13_R2.FluidTypeFlowing.a(FluidTypeFlowing.java:310)
    [01:08:20] [Paper Watchdog Thread/ERROR]: app//net.minecraft.server.v1_13_R2.FluidTypeFlowing.a(FluidTypeFlowing.java:201)
    [01:08:20] [Paper Watchdog Thread/ERROR]: app//net.minecraft.server.v1_13_R2.FluidTypeFlowing.a(FluidTypeFlowing.java:166)
    [01:08:20] [Paper Watchdog Thread/ERROR]: app//net.minecraft.server.v1_13_R2.FluidTypeFlowing.a(FluidTypeFlowing.java:515)
    [01:08:20] [Paper Watchdog Thread/ERROR]: app//net.minecraft.server.v1_13_R2.Fluid.a(SourceFile:56)
    [01:08:20] [Paper Watchdog Thread/ERROR]: app//net.minecraft.server.v1_13_R2.WorldServer.a(WorldServer.java:665)
    [01:08:20] [Paper Watchdog Thread/ERROR]: app//net.minecraft.server.v1_13_R2.WorldServer$$Lambda$1673/18510267.accept(Unknown Source)
    [01:08:20] [Paper Watchdog Thread/ERROR]: app//net.minecraft.server.v1_13_R2.TickListServer.a(TickListServer.java:85)
    [01:08:20] [Paper Watchdog Thread/ERROR]: app//net.minecraft.server.v1_13_R2.WorldServer.q(WorldServer.java:657)
    [01:08:20] [Paper Watchdog Thread/ERROR]: app//net.minecraft.server.v1_13_R2.WorldServer.doTick(WorldServer.java:296)
    [01:08:20] [Paper Watchdog Thread/ERROR]: app//net.minecraft.server.v1_13_R2.MinecraftServer.b(MinecraftServer.java:1083)
    [01:08:20] [Paper Watchdog Thread/ERROR]: app//net.minecraft.server.v1_13_R2.DedicatedServer.b(DedicatedServer.java:439)
    [01:08:20] [Paper Watchdog Thread/ERROR]: app//net.minecraft.server.v1_13_R2.MinecraftServer.a(MinecraftServer.java:938)
    [01:08:20] [Paper Watchdog Thread/ERROR]: app//net.minecraft.server.v1_13_R2.MinecraftServer.run(MinecraftServer.java:836)
    [01:08:20] [Paper Watchdog Thread/ERROR]: java.base@9-Raspbian/java.lang.Thread.run(Thread.java:844)
    [01:08:20] [Paper Watchdog Thread/ERROR]: ——————————
    [01:08:20] [Paper Watchdog Thread/ERROR]: — DO NOT REPORT THIS TO PAPER – THIS IS NOT A BUG OR A CRASH —
    [01:08:20] [Paper Watchdog Thread/ERROR]: ——————————

Schreibe 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