Ein Minecraft-Server für die Kids auf einem Raspberry Pi

Ein Minecraft-Server auf einem Raspberry Pi
Ein Minecraft-Server auf einem Raspberry Pi

Das Open-World-Spiel Minecraft ist ja bei vielen Kids seit Jahren ein Dauerthema. So natürlich auch bei unseren Kindern, die zunächst nur auf unseren iPads oder dem Apple TV mit der Pocket Edition spielen durften. Dort haben sie ihre Welten gebaut. Große Häuser, Villen, ganze Dörfer und alles was so dazu gehört. So wie bei vielen anderen Spielen auch, habe ich zwar immer ein Auge darauf, was die Kids da so machen, aber wirklich auskennen tue ich mich da nicht. Spawnen, Creeper, Enderdrache, Cheats, Skins, Mods, das sind so Begriffe, die hier täglich fallen. Ihr kennt das...

Wie ich dann aber bald lernen durfte, ist die Pocket Edition nur eine abgespeckte Variante, mit der man im Kreativmodus zwar eigene Welten bauen, oder im Überlebensmodus Welten erkunden, Dinge sammeln oder gegen Monster kämpfen kann. Aber in der „richtigen“ Minecraft-Version – der Java-Edition – die man auf dem PC installieren muss, kann man natürlich viel mehr machen. Man kann Mods installieren oder in der Forge-Version weitere Funktionen oder Cheats nutzen. Nun ja, die Kids kennen sich da deutlich besser aus, als ich...

Gemeinsam mit Freunden spielen

Natürlich kam irgendwann der Wunsch auf, auch mal mit Freunden zusammen spielen zu dürfen. Das geht in der Pocket Edition sogar recht einfach, wenn sich alle im gleichen WLAN befinden. Dazu hatte ich zeitweise sogar ein gesondertes Gäste-WLAN in unserem UniFi-System eingerichtet, in dem sich die eingeloggten Geräte gegenseitig sehen können (In unserem normalen Gäste-Netz ist diese Funktion natürlich deaktiviert). Und so konnten die Freunde mit ihren Smartphones oder Tablets gemeinsam Minecraft „zocken“.

Aber das ging eben nur, wenn die Freunde zu Besuch waren. Außerhalb unseres WLANs ging das natürlich nicht. Hierzu müsste man sich auf einem Server einloggen, von denen es haufenweise im Internet gibt. Eine Option, die wir – und auch die anderen Eltern – natürlich nicht erlauben. Dabei ist ja nicht kontrollierbar, wer sich da noch alles so auf einem öffentlichen Server herumtreibt.

Ein eigener Minecraft-Server

Bleibt also nur noch die Möglichkeit, einen eigenen Minecraft-Server einzurichten. Der Hauptvorteil dabei ist natürlich, dass ich dann die volle Kontrolle darüber habe, wer sich auf dem Server einloggen darf. So einen Server könnte man natürlich auf dem PC der Kinder oder auf der NAS installieren. Aber viel naheliegender ist doch ein kleiner Raspberry Pi, der als reiner Minecraft-Server fungiert. Dieser läuft somit komplett autark im lokalen Netz und kann die anderen Geräte nicht beeinträchtigen. Außerdem kann dieser sogar bedenkenlos über die Firewall freigegeben werden, sodass sich auch die Freunde der Kinder von extern dort einloggen können.

Was benötigt man dazu?

Wie ich schon im meinem Artikel zum Pi-hole geschrieben habe, benötigt man natürlich einen Raspberry Pi, eine Micro-SD-Karte (16GB) und ein USB-Netzteil. Es gibt auch komplette Starter-Kits, die alles Notwendige enthalten. Für die Erstinstallation braucht man außerdem einmalig einen Monitor und eine USB-Tastatur. Danach wird der RasPi headless betrieben und man kann man sich per SSH über die Konsole einloggen. Ich will jetzt hier nicht näher darauf eingehen, auf der Raspberry-Pi-Website gibt es viele Anleitungen was genau zu tun ist. Es genügt übrigens die Raspbian-Version ohne Desktop – auch Raspbian Stretch Lite genannt.

Der Raspberry Pi sollte dann noch so konfiguriert werden, dass dieser die maximale Leistung für Minecraft zur Verfügung stellt. Dazu reduziert man in der Pi-Konfigurationsdatei den Speicher der GPU, denn die wird ja nicht benötigt. Außerdem kann man den Port der SD-Karte auf maximale Geschwindigkeit setzen (Overclocking):

sudo nano /boot/config.txt

Dort fügt man am Ende der Datei folgende Zeilen ein:

gpu_mem=16
dtparam=sd_overclock=100

Nach einem Reboot steht dem Minecraft-Server dann die maximale Leistung des Raspberry Pis zur Verfügung.

Die Installation des Minecraft-Servers

Wenn der Raspberry Pi grundsätzlich eingerichtet ist, dann muss natürlich der Server installiert werden. Dazu findet man online diverse Anleitungen auf ganz unterschiedlicher Basis. Ich habe zunächst versucht einen Server auf Basis von Cuberite zu installieren, was aber irgendwie nicht so richtig funktioniert hat.

Bei der weiteren Recherche bin ich dann auf den recht Resourcenschonenen Spigot-Ableger Paper gestoßen. James A Chambers hat dazu ein tolles Script geschrieben, mit dem die Installation aller notwendigen Komponenten voll automatisch abläuft. Das hat bei mir wunderbar funktioniert. Und so gehts:

wget -O SetupMinecraft.sh https://raw.githubusercontent.com/TheRemote/RaspberryPiMinecraft/master/SetupMinecraft.sh
chmod +x SetupMinecraft.sh
./SetupMinecraft.sh

Nach der Installation befindet sich der Server dann im Verzeichnis „~/minecraft“ und kann das erste Mal gestartet werden:

~/minecraft/start.sh

Damit läuft der Server im Hintergrund. Auf die Konsole des Servers gelangt man mit:

screen -r minecraft

Der Start dauert ein wenig, aber danach kann man in der Konsole durch Eingabe von help die verfügbaren Befehle aufrufen. Die Konsole verlässt man durch die Eingabe von Strg+A und dann Strg+D, der Server läuft dann im Hintergrund weiter. Die Eingabe von stop oder Strg+C beendet bzw. stoppt den Server.

Die weitere Konfiguration des Minecraft-Servers

Die Grundkonfiguration des Minecraft-Servers sollte dann noch etwas angepasst werden. Insbesondere die Aktivierung der Whitelist und ein Limit für die Anzahl der Spieler halte ich für wichtig. Auch die Kids hatten noch ein paar Wünsche, wie sie den Server nutzen wollen. Dazu muss die Datei server.properties editiert werden:

nano ~/minecraft/server.properties

Ich habe in erster Linie folgende Einträge geändert:

view-distance=8
enable-command-block=true
enforce-whitelist=true
max-players=5
pvp=false
white-list=true
op-permission-level=3

Ein vollständige Übersicht aller Servereinstellungen findet Ihr übrigens im Minecraft-Wiki. Wenn man die Änderungen vorgenommen hat, muss der Minecraft-Server natürlich beendet und neu gestartet werden.

Portweiterleitung

Der Minecraft-Server ist damit einsatzbereit. Zumindest im lokalen Netz. Damit die Freunde der Kids sich auch von extern auf dem Server einloggen können, muss im Router allerdings noch eine Portweiterleitung auf die IP-Adresse des Minecraft-Servers eingerichtet werden. Der Standardport ist 25565, bei Bedarf könnte dieser aber in der server.properties geändert werden.

Whitelist – Wer darf mitspielen?

Außerdem müssen die Spieler natürlich in die Whitelist eingetragen werden, so können sich nur die Spieler mit dem Server verbinden, die dort eingetragen sind. Damit habe ich also die volle Kontrolle, mit wem meine Kids online spielen. Man benötigt lediglich den Spielernamen und kann diesen über die Minecraft-Konsole mit folgendem Befehl eintragen:

whitelist add {spielername}

Operator-Status

Ganz stolz sind meine Kids natürlich, dass sie auf dem Server den Operator-Status haben. Damit können sie z.B. Befehlsblöcke editieren und Cheat-Befehle ausführen. Das Operator-Level habe ich in der server.properties übrigens auf 3 gesetzt. Damit können sie alles machen, außer den Server zu stoppen. Zunächst müssen sie natürlich in die Whitelist eingetragen werden und können dann ganz einfach zum Operator gemacht werden:

op {spielername}

Bestehende Welten auf den Server hochladen

Der Server ist nun in Betrieb, allerdings nur mit einer neuem und leeren Standard-Welt. Damit die Kinder auch auf dem Server in ihren bereits offline erstellten Welten spielen und darin weiter bauen können, müssen diese vom PC auf den Server kopiert werden. Die aktuelle Welt ist in der server.properties festgelegt:

level-name=world

Dabei ist „world“ das Verzeichnis im „~/minecraft“ Ordner. Nach dem ersten Start des Minecraft-Servers werden noch die Ordner „world_nether“ und „world_the_end“ angelegt. Eine Welt besteht also aus den folgenden drei Verzeichnissen:

~/minecraft/world
~/minecraft/world_nether
~/minecraft/world_the_end

Wenn man also nun die Welt, die bisher auf dem PC erstellt wurde, auf dem Server nutzen will, dann muss man den Inhalt des Ordners „world“ mit den Daten der Welt vom PC ersetzen. Und die beiden anderen Verzeichnisse sollte man dann am besten ebenfalls leeren.

Besser ist es allerdings, wenn man einen neuen Ordner, z.B. „Meine Welt“ anlegt und diesen in der server.properties einträgt:

level-name=Meine Welt

Nach dem Neustart des Minecraft-Servers wird dann diese Welt geladen. So kann man man auch weitere Welten auf dem Server ablegen und über den Eintrag in der server.properties festlegen, welche Welt gestartet werden soll.

Wechsel der Welt und automatischer Neustart

Leider ist das ja doch etwas umständlich und daher arbeite ich gerade noch an einer Lösung, wie man das etwas komfortabler machen kann. Z.B. mit einem Webinterface, über das man die gewünschte Welt auswählt und die dann den Server neu startet.

Die Welt könnten die Kids ja bei Bedarf sogar noch selber austauschen. Dazu wäre nur ein Samba-Server (smbd) notwendig und man würde das World-Verzeichnis als Windows-Freigabe öffnen. Aber der Server lässt sich eben nur über die Konsole starten und da lasse ich meine Kids nicht dran.

Ich halte Euch auf dem Laufenden...

Bisher 24 Kommentare
  1. Karl

    Karl

     

    8. Dezember 2018, 01:10 Uhr

    Hi,
    tolles Projekt, was du da für deine Kids machst. :)
    Minecraft ist eine tolle Sache, in die man viel Zeit reinstecken kann und auch ein echt sehenswertes Ergebnis hervorbringen kann. Man muss nur verdammt aufpassen, dass man nicht zu viel Zeit reinsteckt - eigene Erfahrung. :P

    Wenn du dich dazu überreden kannst, das Projekt auf einer x86 Plattform statt einem Raspberry laufen zu lassen, oder vielleicht Exagear für deinen Raspberry hast, gibt es ein Web-Interface namens "Multicraft". :)

    Was mehrere Welten betrifft, sofern du Bukkit, Spigot oder Paper nutzt, dann solltest du dir mal das Plugin Multiverse anschauen. ;)

    Wenn du zu der ganzen Geschichte Fragen hast, kannst du mich gerne mal per Mail anschreiben. Kenne mich ganz gut mit der Angelegenheit aus. ^^

    Gruß Karl

  2. Thomas Mielke

    8. Dezember 2018, 02:32 Uhr

    @Karl: Danke für den Hinweis. Schaue ich mir mal an.

  3. Dr. Allcome

    Dr. Allcome

     

    16. Februar 2019, 23:58 Uhr

    Sehr geehrter Herr Mielke,

    unser Dank für den Artikel und die links zu den Skripten.
    Unser Raspberry PI 2B läuft ganz OK nach dem abfolgen ihrer Beschreibung.

    Ab und an bleibt der Java Process hängen bei zu hoher last.
    Dies scheint mit der Speicherauslastung zusammen zu hängen.
    Möglicherweise auch damit, dass wir gerade nur eine ältere 8GB Speicherkarte einsetzten und das sd-overclocking nicht funktioniert.

    Unser Dank.

    In Zukunft werden wir vielleicht auf potentere Hardware umsteigen.

    Mit freundlichem Gruß,

    Dr. Allcome

  4. Tom

    Tom

     

    10. März 2019, 19:03 Uhr

    Wow, genau nach so was habe ich gesucht. Tolle Beschreibung.
    Nachdem ich meinen Kids dann mitteilte was ich vorhabe, war meine Enttäuschung jedoch groß, da sie Minecraft auf der Wii U spielen und somit nicht auf Servern (in eigenen Netzwerk) spielen können.
    Trotzdem habe ich etwas gelernt und werde es auf meinem Raspi Webserver anwenden. das Overclocking der SD-Karte. Mal sehen was es bringt.
    Gruß und viel Spaß Spielen
    T.

  5. Karsten

    Karsten

     

    11. Mai 2019, 10:24 Uhr

    Klasse Anleitung. Läuft bei mir seit Monaten ohne Probleme auf dem 3+. ist noch was in Richtung 1.14 geplant bzw. Vielleicht schon in der Mache?

  6. Thomas Mielke

    11. Mai 2019, 13:23 Uhr

    @Karsten: Der Pi läuft hier auch ohne Probleme. Aber wie das so ist bei den Kids, sobald etwas endlich da ist, ist das Interesse auch schnell wieder weg. In der letzten Zeit langweilt sich der Minecraft-Pi hier also eher. Daher habe ich auch noch keine weiteren Updates gemacht...

  7. jeff darvy

    jeff darvy

     

    19. Mai 2019, 15:31 Uhr

    is it possible to downgrade the server to 1.13.2? because I'd like to use dynamap jar.

    best regards

    jeff d

  8. Chris

    Chris

     

    31. Mai 2019, 00:49 Uhr

    für die erst installation kann man natürlich auch ohne monitor und tastatur/maus machen.

    - win32diskimager
    - Raspian img datei

    nachdem man mit dem win32diskimager die image installiert hat öffnet man die boot partition und erstell darin eine "ssh" text datei und fertig danach in den RPi starten und z.B über Putty einloggen

    falls relevant und überhaupt noch aktuell ist dieses thema

  9. Tankul

    Tankul

     

    24. Juni 2019, 02:24 Uhr

    Hallo und danke für die super Beschreibung.
    Es hat alles super geklappt und der Server läuft.
    nur hab ich das Problem das ich zwar jetzt einen laufenden Server
    habe, doch leider gar nicht spielen kann. Wenn ich die IP Adresse etc
    bei Mincraft eingebe findet er zwar den Server aber er sagt das
    er zu alt ist. Was mach ich nun? Kann ich nen Minecraft launcher irgendwie
    downgraden?

  10. Thomas Mielke

    24. Juni 2019, 08:08 Uhr

    @Tankul: Die Version des Clients muss mit der Version des Servers übereinstimmen. Ansonsten funktioniert das nicht. Du musst also vermutlich eine ältere Version des Minecraft-Clients verwenden.

  11. Tankul

    Tankul

     

    25. Juni 2019, 23:56 Uhr

    Schönen guten Abend und danke für die
    schnelle Antwort. ist schon mega lange her
    das ich mich mit Minecraft beschäftigt habe
    aber alles hat so geklappt wie beschrieben und nun läuft alles.
    Allerdings hat das ganze nun noch 2 weitere fragen aufgeworfen
    bei der ich trotz recherche nicht mehr weiter weiß. Und zwar wie mache ich den Server jetzt für meine Freunde außerhalb meines Netzwerks sichtbar und wie funktioniert die ganze sache mit dem World edit? Er schlägt mir in der console zwar die Befehle vor, führt sie aber nicht aus.

    Vielen dank schonmal
    l.g Tankul

  12. Thomas Mielke

    26. Juni 2019, 00:43 Uhr

    @Tankul: Wie ich oben bereits beschrieben habe, musst Du zunächst eine Portweiterleitung auch Port 25565 einrichten. Wie das in Deinem Router funktioniert, musst Du bitte in der entsprechenden Doku nachschauen. Wenn von außen auf Deinen Server zugegriffen werden soll, dann geht das über die öffentliche IP-Adresse die Dein Provider Dir zugewiesen hat. Die kannst Du in Deinem Router einsehen oder z.B. mit MyIP.com herausfinden. Am besten richtest Du Dir aber über einen DynDNS-Dienst eine dynamische Domain-Adresse ein. Dein Router kann Deine IP-Adresse dort automatisch aktualisieren.

  13. Dennis

    Dennis

     

    27. Juli 2019, 13:59 Uhr

    Hallo,

    die Installation läuft 1a und der Server läuft.
    Jetzt stehe ich allerdings vor dem Problem, daß meine Kids weder mit der Windows 10 Edition, noch mit der PS4/XBOX One Version einloggen können.

    Muss ich auf dem PI noch etwas einstellen??
    Auf zwei unterschiedlichen Windows Servern können alle einloggen. Wollte nur einen Kauf eines festen PC‘s als Server vermeiden. Mein Laptop brauche ich halt auf der Arbeit und da kam mir der PI gerade recht.

    Firewall habe ich am Laptop testweise deaktiviert. Kupfernetzwerk, anstatt wlan probiert. Am Router vorbei ein eigenes Netzwerk aufgebaut.......

    LG

  14. Thomas Mielke

    27. Juli 2019, 14:13 Uhr

    @Dennis: Ich kenne Deine lokale Netzwerk-Konfiguration nicht, grundsätzlich ist der Login aber nur mit der Minecraft Java Edition möglich. Und es muss sich auch um die gleiche Version (Client/Server) handeln. Die Windows 10 (Pocket Edition) funktioniert nicht mit dem Server.

  15. Marco

    15. August 2019, 20:38 Uhr

    Hallo,

    der Server lief dank der tollen Anleitung recht schnell. Vielen Dank!!! Habe dann versucht dem Server von nem' anderen Pi aus beizutreten. Dort ist der Pi Edition Client installiert. Leider wird der Server nicht gefunden. Ich vermute die Pi Edition ist nicht zu dem Server kompatibel, oder?

  16. Thomas Mielke

    15. August 2019, 21:37 Uhr

    @Marco: Ich denke, dass die Pi Edition genauso wie die Pocket Edition oder Windows 10 Editon nicht mit dem Server kompatibel sind. Dazu braucht man die Java Edition.

  17. Janis

    25. Oktober 2019, 04:58 Uhr

    Wir haben suchen momentan eine Möglichkeit einen Java Server laufen zulassen, ohne viel Geld zu investieren.
    Denkst du dieser Server läuft auf einem RPI-4 4GB gut oder ist da mehr ein Rock PI oder eine NUC empfehlenswerter?
    http://heldendesbildschirms.dynv6.net:8123/#
    https://timings.aikar.co/?id=03ba7338fa0f4e7ca8d4e0616de18b16
    Bis jetzt gibt es nur Contabo und Netcup usw, als Auswahl. :/
    Wir möchten ungerne auf die Plugins verzichten, weil diese notwendig sind um die Chunks anderer Spieler zu schützen.
    Aus diesem Grund ist die C++ Variante leider nicht nutzbar.
    Welche Erfahrungen hast du mit der Java Paper Edition gemacht?
    Auf YouTube schaut das ja nicht so schön aus.

  18. Thomas Mielke

    25. Oktober 2019, 09:27 Uhr

    @Janis: Der Raspberry Pi 4 mit 4GB ist schon sehr leistungsfähig. Ob der aber für Euer Vorhaben ausreicht kann ich Dir leider auch nicht sagen.

  19. Sören

    Sören

     

    15. November 2019, 12:59 Uhr

    Hi, super Anleitung...
    hat bis auf eine Sache alles geklappt...

    Nachdem ich die nano ~/minecraft/server.properties wie empfohlen bearbeitet habe, den Server neu gestartet habe... komme ich nicht mehr drauf?!

    Die Whitelist einträge werden mit "That player does not exist
    " geblockt?!


    Wie komm ich da rein?

    MfG

  20. Thomas Mielke

    15. November 2019, 13:27 Uhr

    @Sören: Hast Du denn die korrekten Spielernamen auf die Whitelist gesetzt?

    whitelist add {spielername}
  21. Sören

    Sören

     

    16. November 2019, 13:55 Uhr

    [11:28:32 INFO]: FCM_Mine[/xxx] logged in with entity id 2 at ([world]-xxx)


    > whitelist add {FCM_Mine}
    [12:54:13 INFO]: That player does not exist

  22. Thomas Mielke

    16. November 2019, 13:56 Uhr

    @Sören: Du musst den Spielernamen natürlich ohne die geschweiften Klammern { } angeben. Die sind nur der Hinweis, dass das ein Platzhalter ist...

  23. Sören

    Sören

     

    16. November 2019, 14:05 Uhr

    man bin ich ´n Depp... das war es!

    Danke... !

    Was sagst du zu den Server Lags in der Version 14.4 ?!

    Angeblich soll das helfen, aber leider weiß ich nicht wie man das installiert...

    https://www.spigotmc.org/resources/limitpillagers-fix-outpost-spawns-and-more.69733/

  24. Thomas Mielke

    16. November 2019, 15:08 Uhr

    @Sören: Ich habe mich ehrlich gesagt schon etwas länger nicht mehr mit dem Server beschäftigt, weil die Kids inzwischen etwas das Interesse verloren haben...

Dein Kommentar?

Menschlich? Dann gib bitte die 5 Zeichen genau so ein, wie Du sie in der Grafik lesen kannst. Keine 5 Zeichen? Erzeuge einfach einen neuen Code.

Gravatar:

Wenn Du möchtest, dass Dein Bild neben Deinem Kommentar erscheint, dann melde Dich einfach bei Gravatar an.

Nutzungshinweise:

Dein Kommentar erscheint nicht automatisch, sondern wird erst nach einer Prüfung manuell freigeschaltet. Ich behalte mir vor alle Kommentare zu löschen, die

  • rassistische, sexistische oder gewaltverherrlichende Inhalte haben,
  • zu kriminellen Aktionen aufrufen oder diese verteidigen,
  • beleidigende Inhalte besitzen,
  • Werbung für Dritte darstellen oder deren Inhalte einem Link auf fremde Angebote gleichkommt.