Anleitung: Minecraft 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.

wget -O SetupMinecraft.sh https://raw.githubusercontent.com/TheRemote/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-G 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-e.sh 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.

Mittlerweile wurden meine Änderungen  von James in seine Scripte  übernommen.  Die könnt ihr direkt benutzen.

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.

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

    1. Kopiere das einfach in den „minecraft“ Ordner im Home-Verzeichnis. In der crontab kannst du dann den Inhalt von der Datei „crontab-e“ kopieren.

      Dort gibt es den Befehl „reboot“ der auf das restart.sh zeigt. Das wird dann so beim Reboot ausgeführt.

    2. Mein Problem ist, dass durch das etcher tool meine SD Karte in 2 Partitionen aufgeteilt wurde und Windows nur auf die eine aktiv zugreifen kann.

      Gibt es dafür eine Lösung und wenn ja, würde der Server dann auch automatisch updaten z.B. auf Version 1.3? Weil gerade läuft er noch auf 1.12.2.

    3. Etcher legt eigentlich nie zwei Partitionen an. Und nein, es gibt noch keine 1.3er Version von Paper, dem Server der hier genutzt wird. Das dauert auch ggf. noch eine Weile. Das ist aber gar nicht schlimm weil die Clients auch alte Versionen starten können.

      Aber wenn Version 1.3 freigegeben ist von Paper würde er sich automatisch aktualisieren.

    4. Gibt es einen code den ich im pi verwenden könnte, der den automatischen serverneustart einfügt? Ich kenn mich mit Linux Befehlen leider nicht so gut aus

    5. Ich habe den Teil mit der crontab nun mit in den Artikel aufgenommen. Bei Fragen einfach melden – oder auf unseren Server kommen. ;-)

  1. Also auf meinem Raspberry PI 3b waren schon 5-6 Leute gleichzeitig on und alles wurde sehr gut verkraftet! Vielen Dank für dieses tolle Tutorial! :)
    Ich habe alledings eine Frage: Wie kann man Paper updaten?

    1. Paper sollte sich beim Neustart über die Datei „restart.sh“ jedesmal aktualisieren. Geht es dir um die unterstützte Version von Paper von maximal 1.12.2 von Minecraft? Also ich glaube, dass Paper aktuell (noch) kein Minecraft 1.13 unterstützt.

  2. Hallo Marc,

    ich habe Dein Tutorial wie beschrieben befolgt, doch leider funktioniert der start des Servers nicht richtig.
    Sofern ich im Ordner Minecraft die start.sh ausführe (Über Putty) kommt folgende Rückmeldung:

    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

    Soweit so gut.
    Nach dem Befehl: screen -r minecraft
    kommt: There is no screen to be resumed matching minecraft.

    In den server.properties wurde lediglich der Servername und modt angelegt.

    Was mache ich falsch?
    Kannst Du mir bei diesem Problem helfen?

    MFG
    Danny

    1. kurzes update:
      anscheinend wurde bei der Installation Java nicht installiert. Nachdem ich dies nun separat nachinstalliert habe, funktioniert auch der Server.

      Grüße Danny

  3. habe es probiert leider scheitert es kann es am neuen raspbian lite liegen wäre es möglich die anleitung nochmal zu überarbeiten ich halte mich total an das tutorial leider scheitert es ich weiß nicht warum

  4. 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
    pi@raspberrypi:~/minecraft $ screen -r minecraft.
    There is no screen to be resumed matching minecraft..

    was kann das sein genau an diesem Punkt scheitert es per Putty sehe auch nicht wie der Server startet ist doch komisch

    1. Konkret heißt das, bitte diesen Befehl direkt ausführen:

      cd /home/pi/minecraft/

      /usr/lib/jvm/java-9-openjdk-armhf/bin/java -jar -Xms800M -Xmx800M /home/pi/minecraft/paperclip.jar

    1. Dann nochmal in der Antleitung gucken was bei der Installation von Java falsch gelaufen ist.
      Geht „java“ denn ohne den Pfad als Befehl? Finde mal heraus wo Java installiert ist.

  5. Es lag an der SD Karte, es wurde beim ersten Start kein resize gemacht, so das kein Speicher auf der root Partition frei war, so konnt das System auch die JAR-Dateien nicht schreiben. Mit Hilfe der raspi-config den resize nachgeholt und schwups ging das ganze auch. Achso, vielleicht noch mit zu erwähnen, aktuelles Image nutzen, das was Jens da genutzt hat war vom 27.6.18 gewesen und konnt nicht mehr geupdated werden.

  6. Hallo,

    ich habe aktuell das Problem, das das Profil (UUID) eines Kollegen plötzlich nicht mehr geladen werden kann.
    Es fing damit an, das das System abgestürzt ist. Im Log stand:

    [09:26:20] [Server thread/WARN]: name moved too quickly! -0.33875568731872363,0.0,-25.173485756213893
    [09:26:51] [Server thread/WARN]: Name moved wrongly!

    Anschließend wurde der Server neu gestartet und dann kam halt:

    [10:08:06] [User Authenticator #1/INFO]: UUID of player Name is xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx
    [10:08:09] [Server thread/WARN]: Failed to load player data for Name
    [10:08:09] [Server thread/INFO]: Name[/xxx.xxx.xxx.xxx:10028] logged in with entity id 137 at ([world]-248.5, 68.0, 252.5)
    [10:08:33] [Server thread/INFO]: Name lost connection: Disconnected
    [10:08:34] [Server thread/INFO]: Name left the game

    Nun hat er nichts mehr. Im Ordner minecraft/world/playerdata ist nur die UUID mit dem „nackten“ Character. Speichert das System evtl. eine Sicherung an einem anderen Speicherort?

    Oder kann ich irgendwie sein altes Profil wieder herstellen?

  7. Falls das nicht gehen sollte, könntest Du mir helfen, das einmal am Tag die Player UUIDs gesichert werden per cron?

    Vielen Dank.

    P.S: Ansonsten läuft der Server seit Wochen mega gut auf meinem Raspi

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