Ich wollte seit langer Zeit wegen den geringen Kosten einen Minecraft Server 1.16 auf dem neuen Raspberry Pi 4 mit 4 GB (günstig kaufen) installieren. So ein Server muss stabil 24 Stunden am Tag durchgängig laufen, damit man damit Spaß haben kann. Deswegen habe ich diese Anleitung 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.
Inhaltsverzeichnis
- Kompatibilität der Minecraft Clients mit den Servern
- Welche Minecraft-Version wird unterstützt?
- Spigot, Bukkit, Vanilla oder Paper?
- Welche Hardware benötigt man?
- Welche Software wird benötigt?
- Anleitung Schritt für Schritt
- Wie optimiere ich die Leistung des Servers?
- Wie aktualisiere ich den Server?
- Wie starte ich eine alte Version von Minecraft?
- Der Server läuft stabil
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.
Client | Bedrock Server | Java Server |
---|---|---|
Android | ✅ | ❌ |
iOS | ✅ | ❌ |
XBOX ONE | ✅ | ❌ |
Nintendo Switch | ❌ | ❌ |
PS4 | ✅ | ❌ |
XBOX 360 | ❌ | ❌ |
PS3 | ❌ | ❌ |
Windows 7/8/10 Java | ❌ | ✅ |
Windows 10 Bedrock | ✅ | ❌ |
Linux | ❌ | ✅ |
macOS | ❌ | ✅ |
Welche Minecraft-Version wird unterstützt?
Diese Version für den Raspberry Pi in diesem Artikel funktioniert nur für die aktuelle JAVA-Version von Minecraft für Mac und PC. 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.
Spigot, Bukkit, Vanilla oder Paper?
Der Spigot-Fork „Paper“ dient als Grundlage. 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 normaler Minecraft-Server mit der jeweils aktuellen Version von Minecraft. In diesem Artikel beschreibe ich wie man auf dem 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?
- Einen Raspberry Pi 4 mit 4 GB RAM – günstig kaufen
- Ein USB-C Netzteil für den Pi4 – nicht sparen!
- Eine schnelle (!) micro SD-Karte – auch nicht sparen!
- Ein schönes Gehäuse für den Pi4 – günstig kaufen
- Optional: ein Synology NAS für Backups – kaufen
Welche Software wird benötigt?
- Raspberry Pi OS Lite (Betriebssystem für den Pi)
- etcher (Tool zum Schreiben von SD Karten)
- Die Shell (beim Mac dabei) oder PuTTY für Windows.
Anleitung Schritt für Schritt
Der Weg zum eigenen Server auf dem Raspberry Pi ist simpel. Einfach jeden Schritt genau durchlesen oder das Video anschauen. Da jeder Raspberry Pi absolut gleich ist, sollte jeder Schritt genau so bei euch umsetzbar sein. Zudem haben viele andere Menschen es auf diesem Wege ebenso hinbekommen.
Schritt 1: Schreiben der MicroSD Karte und SSH aktivieren
- Schreibt mit etcher die img-Datei von Raspberry Pi OS Lite auf die SD-Karte.
- Legt eine leere Datei namens ssh per Computer auf die SD-Karte in der Partition „boot“. Das aktiviert den SSH Zugang.
- Die MicroSD Karte in den Pi einstecken und diesen per Netzwerkkabel ins lokale Netzwerk hängen. Den Pi an den Strom anschließen.
Schritt 2: 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 immer noch Probleme gibt, habt ihr entweder vergessen, SSH zu aktivieren oder das Netzwerkkabel steht nicht drin oder hat keine Verbindung.
Schritt 3: 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
Schritt 3: Installation von 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 Minecraft Paper 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
Schritt 4: Starten und Optimieren des Servers
Der Server kann nun direkt gestartet werden. Das Script das fü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 dem Nano-Editor:
sudo nano /boot/config.txt
Diese Zeilen kommen ganz ans Ende dieser Datei:
gpu_mem=16
Schritt 5: Minecraft Server konfigurieren
Es gibt eine Datei in ~/minecraft/server.properties. Dort habe ich vorerst die Anzahl der Spieler auf 3 gesetzt und die Whitelist 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

Schritt 6: Freigeben des Servers über das Internet
Ich nutze eine Fritzbox. Dort kann man unter den Einstellungen Internet > Freigaben -> Portfreigaben 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 > Portfreigabe den Port „25565“ freigeben. Das bedeutet, dass der Port von außen an dieses interne Gerät weitergereicht wird.
Die MyFritz-URL ist dann die Server-Adresse, die man in Minecraft einträgt. (z.B. qbnsepjzhd8cvzk7y.myfritz.net) Ohne http und ohne Portnummer am Ende.
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.
Schritt 7: 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 mit 3-4 Spielern laufen performant auf dem Raspberry Pi 4
Optional: Serverneustart nach 12 Stunden
Meine Erfahrung mit Minecraft Servern ist, dass man sie zur Sicherheit regelmäßig sauber neu startet. 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.
Optional: Konfiguration Samba-Server für Backups
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

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
Selbst der Raspberry Pi 4 ist keine Server-CPU. Wer mehr Leistung möchte, sollte vielleicht über einen Minecraft-Server auf einem Synology NAS nachdenken.
Java-Parameter einstellen
Wer einen Raspberry Pi 4 mit mehr als 1 GB 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 4 GB 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 weitergehen 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.

Wie hoch ist die CPU-Last?
Während der Bedrock-Server sehr genügsam ist und selten über 5 % CPU Last verursacht, sorgt der Paper-Server schnell für 25 % und mehr CPU-Last. Da der Java-Server eine Single-Thread-Anwendung ist, wird bei einer Quad-Core-CPU wie in dem Synology DS1019+ (kaufen) nur ein Viertel der vorhandenen Leistung genutzt. Bei mir geht die Leistung manchmal auch auf über 35 % CPU-Last. Das liegt entweder am Boost-Mode der CPU oder daran, dass der Paper-Server neben dem Haupt-Thread noch andere Dinge berechnet.
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 Server?
Wenn Du eine alte Version des Scriptes heruntergeladen hast, dann führe folgende Befehle über ssh aus auf dem pi:
# Ab ins Minecraft Verzeichnis
cd ~/minecraft
# Diese wget Befehle laden die aktuellen Versionen der Scripte von git
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
wget -O start_lowspec.sh https://raw.githubusercontent.com/mtoensing/RaspberryPiMinecraft/master/start_lowspec.sh
# Die Scripte brauchen Rechte um ausführbar zu sein
chmod +x restart.sh start.sh start_lowspec.sh
# Nun können wir mit dem restart Script den Pi neustarten.
./restart.sh
# nach eine Neustart können wir den Server starten.
./start.sh
Diese Befehle laden die aktuelle Version des Skriptes runter und starten den Server neu und laden die aktuelle Version (z.Z. 1.16.2) runter. Wenn das nicht hilft, dann ist das nächste Kapitel die Lösung.

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.

Dort kann man nun eine Installation anlegen mit einer älteren Version und diese beim Starten auswählen.
Der Server läuft stabil
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 4 GB ist ideal für dieses Projekt und aktuell günstig zu haben. Wem die Leistung des Raspberry Pi nicht reicht, der nutzt einfach meine Anleitung für einen Minecraft-Server auf einem Synology NAS.
Bedanke dich mit einer Spende
Mein Artikel hat dir geholfen? Dann gibt mir einen Kaffee aus:
Hallo Marc
Die Einrichtung des Servers hat dank deiner Anleitung super geklappt. Der Raspi4 läuft nun auch schon ein paar Tage. Seit heute allerdings zeigt er an das es eine neue PAPERMC Version gibt. Wie kann ich das updaten?
Melden
Ach. Mist. Wer lesen kann ist klar im Vorteil. Ich habe es gefunden….
Melden
Bräuchte eine kurze hilfe wo und wie ich die Einstellungen (schwierigkeitsgrad, Cheats, player zu OPs machen) einer bereits erstellten welt in dem Server änder und die änderunge wirken lasse.
das ändern der einträge in server.properties zeigt keine Wirkung
besten Dank
Melden
Sollten sie aber. Dann YouTube Video nochmal genau verfolgen. Dann klappt das auch.
Melden
hat mitlerweile geklappt,
jetzt was komplizierteres.
Ich habe den Server auf nem Pi4 laufen und habe mich gefragt, ob es nicht möglich wäre über die GPIO verschieden LEDs anzuschließen und diese anzusteuern so lange bestimmte Spieler meinem Server beigetreten sind.
Die Grundfrage ist welche Möglichkeiten habe ich ohne das Spiel zu starten von außen zu sehen ob und welche Spieler gerade meinen Server nutzen.
Wenn du hier ein paar links als denkanstoß hättest wäre ich dir sehr dankbar, ich scheine derzeit noch nicht zielführende Begriffe zu googlen.
Melden
Moin,
also ich würde es über einen Webservice machen und nicht über die Pins. Schau mal mein MCMonitor:
Das kann man auslesen und dann etwas danach steuern. Letztendlich schreibe ich eine API auf meinen Server und mache so was Ähnliches damit:
Melden
hey,
dumme frage aber ich will nur wissen ob man dann irgendwie mods auf den Server laden kann(vllt mit forge) und wie das gehen würde.
Melden
Geht. Einfach Tutorials dafür anschauen. Das ist ein normaler Minecraft Server.
Melden
Guten Tag,
ich wollte mir auch einen Raspberry Pi 4 holen und einen MC Server daraus machen. Habe mir einen mit 8GB RAM geholt und alle Schritte verfolgt. Wollte dann dem Server im start.sh anstatt 2400, 6500 zuweisen was aber nicht funktioniert. Habe auch andere Werte ausprobiert aber alles über 2400 hat nicht funktioniert. Würde mich über schnelle Hilfe freuen.
Vielen Dank im Vorraus
Melden
Solange ein 64-Bit Rasbian OS nicht stable ist, wird das nichts bringen. Du kannst aktuell nur 3 GB nutzen. Sobald das alles stabil ist, passe ich die Anleitung und Scripte an. ich bin nur kein Fan davon, einfach dem Server 8 GB zu geben aber alles andere stürzt dann permanent ab.
Melden
Okey, jagut, 2400 sind aber immernoch keine 3GB :o
Ich habe noch eine andere frage bzg der Freigabe. Ich habe dies auch genauso gemacht wie vorgeschrieben, kann aber momentan nur selbst auf den Server, Freunde sind zur Whitelist hinzugefügt aber kommen trotzdem nicht drauf.
Melden
Nein, aber ein bisschen Platz braucht das Linux auch, oder? =)
Zu dem Thema gibt es oben eine Anleitung wie man von außen draufkommt.
Melden
Wo oben? Ich finde nichts :c
Melden
Freigeben des Servers über das Internet.
In diesem Zusammenhang beachte auch den letzten Punkt des Artikels. ;-) Ich trinke gerne Espresso.
Melden
Also ich habe das mit der myfritz URL auch gemacht, ich kann nur über die IP-Adresse drauf und meine Freunde über garnichts von beiden
Melden
Tja, Anleitung nicht befolgt. Firewall irgendwo an wo sie nicht an sein darf. Das funktioniert.
Melden