English version of this article is now available.

Achtung! Diese Anleitung bezieht sich auf den Code in meinem GitHub Repository. Bitte keine Fragen zu dem Repository von TheRemote stellen. Das heißt: Nur die Links hier im Artikel nutzen. Sonst kann ich nicht helfen.

Ich wollte seit langer Zeit wegen den geringen Kosten einen Minecraft Server auf dem neuen Raspberry Pi 4 (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.

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 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

  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-

Konfiguration Raspbian

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 geklappt hat, dann haben wir den schwierigsten Teil hinter uns gelassen. Beispiel mit meiner IP:

ssh pi@192.168.178.37

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

sudo apt install samba
sudo smbpasswd -a pi
sudo nano /etc/samba/smb.conf

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.

[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.

Leistung des Server optimieren

Bei mir erschien seit Minecraft 1.14 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.

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/lib/jvm/java-8-openjdk-armhf/bin/java -jar  -Xms2800M -Xmx2800M /home/pi/minecraft/paperclip.jar

Wer noch weiter gehen will, kann zusätzliche diese Parameter nutzen:

/usr/bin/screen -dmS minecraft /usr/lib/jvm/java-8-openjdk-armhf/bin/java -jar  -Xms2800M -Xmx2800M -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

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

159 Kommentare

  1. habe ich alles aus probiert es ist ein 3B+ den ich jetzt habe.
    wen das er den neustart macht was muss ich dann machen? wieder mit setup anfangen?

  2. andere karte hat nichts gebracht .
    so der server wird wohl ordentlich installiert und starte ja auch beim ersten mal aber wen der raspi dann nochmal gestartet wird fährt minecraft nicht mit hoch.

    1. Nein ich dachte das macht er von alleine das hat er mach doch gefragt bei der Installation oder?

    2. Ok. Ich denke, ich weiß was schief läuft. Ich habe oben in meinem Artikel nun mein Setup-Script eingebaut. TheRemote, von dem ich das Script übernommen, hatte seinen Teil angepasst. Nun verweist mein Blogartikel wieder auf mein Script.

      Kurz und knapp: Bitte nochmal einrichten mit dem Teil unter „Das Script installiert Java 9 und den aktuellen Paper Minecraft Server.“ Aber diesmal habe ich oben den Setup-Schnippsel zurück auf meine Version geändert. Die neue Version nutzt services statt crontab. Das mag alles funktionieren aber dafür kann ich natürlich keinen Support übernehmen. Probier es bitte nochmal. =)

    3. So, ich habe nun alles mal auf einem RP3 (kein +) getestest anhand von meiner Anleitung. Läuft wunderbar.

  3. Funktioniert alles wunderbar, was ist denn die normale CPU bzw RAM Auslastung für so einen frisch installierten Minecraft Server?

    1. Am Anfang nach reboot sehr, sehr hoch. Nach 5 min sehr geringe cpu Auslastung mit 66% RAM Auslastung. Beim Generien von chunks kann die cpu wegen io wait sehr hoch werden und auch crashen.

    2. Das der RAM mit der zeit ins unendliche steigt und auf swap ausweicht ist normal?
      Uptime: 1:30 Ram voll swap 180 MB
      3 Leute spielen.. 2 Lokal und 1 ausm Netz sofern das wichtig ist..
      CPU dümpelt bei ~50% herrum also so weit ok.

      Ist meine erste derartige Spielerei, deswegen die vielleicht blöden Fragen, sorry…

    3. Ja, leider. Deswegen habe ich meinen auch alle 12h neugestartet. Stürzt er denn ab?

    4. Nein abstürzen tut er nicht, ich hab swap jetzt auf einen USB Stick ausgelagert, funktioniert reibungslos bisher, es bleibt auch bei den 180MB Swap, selbst nach 5 Stunden zu 3. am Server.

      Wenn ich deine restart.sh kopiere und z.b. restart2.sh nenne und am Ende statt reboot -> shutdown rein schreibe und im crontab eine Zeit definiere für die restart2.sh dann würde das theoretisch funktionieren oder? In der Nacht wird der Server nicht genutzt und es kann dem Pi nicht schaden ein paar Stunden zu pausieren denk ich.

      Von mir übrigens nochmal ein großes Lob für die Anleitung und den Support!!

  4. Die Installation hat super funktioniert und lief ca. einen Monat lang sehr gut. Danke dafür! Wir haben übrigens die swap vergrößert um die anfänglichen Abstürze nach ein paar Stunden Servernutzung erfolgreich zu vermeiden.

    Jetzt wollte ich mal die whitelist aktivieren weil wir zunehmend Fremde auf unserem „privaten“ 2-Personen-survival-PvE-server haben.
    Problem: nach “ ./start.sh“ funktioniert „screen -r minecraft“ nicht mehr. Direkt nach der Server-Installation hatte das noch mehrfach zuverlässig funktioniert, seitdem habe ich das nicht mehr genutzt.
    Fehlermeldung: „There is no screen to be resumed matching minecraft.“
    Ohne eine Server-Kommandozeile weiß ich nicht wie ich die whitelist anschalten und mit unseren Namen/UUIDs füttern soll. Das händische Aktivieren der whitelist in den server.properties und Eintragen der UUIDs und Spielernamen in der whitelist.json führte leider nicht zum Ziel.
    Auch würde ich uns gerne mal offiziell zu OPs machen. Geht jetzt wohl auch nicht mehr so einfach… :(

    Ich habe den Server daher erneut nach Deiner Anleitung auf einer weiteren µSD-Karte aufgesetzt und leider wieder exakt das selbe Problem, diesmal direkt von Beginn an.
    „screen -r minecraft“ nach dem Serverstart gibt die oben genannte Fehlermeldung.
    Geht das noch jemandem so? Hat hier jemand einen workaround?
    Würde mich sehr über Lösungsvorschläge freuen.

    1. Hey Felix!
      Mir geht es genauso…
      Marc könnte sich ja mal um uns kümmern :D

      LG

  5. Hallo Marc

    erst mal danke für die Scrips und das Tutorial

    ich habe eine kleine frage. ist es irgendwie möglich per script oder comand den server herunterzufahren ohne reboot. ich wollte mein raspberry herunterfahren da ich in der nächsten zeit weder ich noch meine freunde auf dem Server spielen werden. ich konnte jedoch das raspberry nicht herunterfahren, da der server noch lief.

    1. Lohnt sich meiner Meinung nach nicht den Pi runterzufahren. Einfach laufen lassen bei dem bisschen Strom.

  6. Grüß euch,

    erstmal vielen dank für Anleitung, voll gelungen.

    Nur leider bekomme ich bei dem Befehl

    screen -r minecraft folgende Antwort:

    There is no screen to be resumed matching minecraft.

    Hab die Anleitung Schritt für Schritt verfolgt

    Bin ein absoluter Noob in Unix :) Könntet ihr mir bitte helfen

    1. Ich habe dasselbe Problem…
      Bei mir steht:
      $ ./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
      $ screen -r minecraft
      There is no screen to be resumed matching minecraft.

      Ich als etwas erfahren in Unix muss anmerken: Der start.sh shell script schliesst sich direkt nach dem herausgeben der Meldung, dass der Server gestartet sei…

      LG

    2. @Alpha
      Bitte mal direkt auf der Shell die Befehle aus dem start.sh Script eingeben:

      Zuerst ins Verzeichnis wechseln:
      cd /home/pi/minecraft/

      Und dann MC starten:
      /usr/bin/screen -dmS minecraft /usr/lib/jvm/java-9-openjdk-armhf/bin/java -jar -Xms800M -Xmx800M /home/pi/minecraft/paperclip.jar

      Was passiert da? Sagt er, Java ist nicht installiert?

    3. login as: pi
      pi@10.0.0.1’s password:
      Linux raspberrypi 4.14.79-v7+ #1159 SMP Sun Nov 4 17:50:20 GMT 2018 armv7l

      The programs included with the Debian GNU/Linux system are free software;
      the exact distribution terms for each program are described in the
      individual files in /usr/share/doc/*/copyright.

      Debian GNU/Linux comes with ABSOLUTELY NO WARRANTY, to the extent
      permitted by applicable law.

      SSH is enabled and the default password for the ‚pi‘ user has not been changed.
      This is a security risk – please login as the ‚pi‘ user and type ‚passwd‘ to set a new password.

      pi@raspberrypi:~ $ sudo dpkg-reconfigure tzdata

      Current default time zone: ‚Europe/Vienna‘
      Local time is now: Tue Mar 19 19:01:46 CET 2019.
      Universal Time is now: Tue Mar 19 18:01:46 UTC 2019.

      pi@raspberrypi:~ $ wget -O SetupMinecraft.sh toensing/RaspberryPiMinecraft/master/SetupMinecraft.sh
      –2019-03-19 19:01:53– Minecraft/master/SetupMinecraft.sh
      Resolving raw.githubusercontent.com (raw.githubusercontent.com)… 151.101.12.13 3
      Connecting to raw.githubusercontent.com (raw.githubusercontent.com)|151.101.12.1 33|:443… connected.
      HTTP request sent, awaiting response… 200 OK
      Length: 1908 (1.9K) [text/plain]
      Saving to: ‘SetupMinecraft.sh’

      SetupMinecraft.sh 100%[===================>] 1.86K –.-KB/s in 0s

      2019-03-19 19:01:54 (17.8 MB/s) – ‘SetupMinecraft.sh’ saved [1908/1908]

      pi@raspberrypi:~ $ chmod +x SetupMinecraft.sh
      pi@raspberrypi:~ $ ./SetupMinecraft.sh
      put setaf 5Minecraft Server installation script by James Chambers – V1.0
      Latest version always at put s gr0
      put setaf 5Installing latest Java OpenJDK 9… put sgr0
      Reading package lists… Done
      Building dependency tree
      Reading state information… Done
      The following additional packages will be installed:
      ca-certificates-java java-common libavahi-client3 libcups2 liblcms2-2
      libnspr4 libnss3 libxi6 libxrender1 libxtst6 openjdk-9-jre-headless
      x11-common
      Suggested packages:
      default-jre cups-common liblcms2-utils openjdk-9-demo openjdk-9-source
      fonts-dejavu-extra fonts-ipafont-gothic fonts-ipafont-mincho
      ttf-wqy-microhei | ttf-wqy-zenhei fonts-indic
      The following NEW packages will be installed:
      ca-certificates-java java-common libavahi-client3 libcups2 liblcms2-2
      libnspr4 libnss3 libxi6 libxrender1 libxtst6 openjdk-9-jdk-headless
      openjdk-9-jre-headless x11-common
      0 upgraded, 13 newly installed, 0 to remove and 0 not upgraded.
      Need to get 108 MB of archives.
      After this operation, 248 MB of additional disk space will be used.
      Get:1 stretch/main armhf openjdk-9-jre-hea dless armhf 9~b181-4~bpo9+rpt1 [106 MB]
      Get:4 stretch/main armhf libcups2 armhf 2.2.1-8+deb9u2 [273 kB]
      Get:5 stretch/main armhf liblcms2- 2 armhf 2.8-4+deb9u1 [118 kB]
      Get:7 stretch/main armhf libnss3 a rmhf 2:3.26.2-1.1+deb9u1 [946 kB]
      Err:12 stretch/main armhf ca-certificat es-java all 20170531+nmu1
      404 Not Found [IP: 93.93.128.193 80]
      Get:2 stretch/main armhf java-common al l 0.58 [13.5 kB]
      Get:3 stretch/main armhf libavahi-clien t3 armhf 0.6.32-2 [51.3 kB]
      Get:6 stretch/main armhf libnspr4 armhf 2:4.12-6 [94.8 kB]
      Get:8 stretch/main armhf libxi6 armhf 2 :1.7.9-1 [77.8 kB]
      Get:9 stretch/main armhf libxrender1 ar mhf 1:0.9.10-1 [29.9 kB]
      Get:10 stretch/main armhf x11-common al l 1:7.7+19 [251 kB]
      Get:11 stretch/main armhf libxtst6 armh f 2:1.2.3-1 [26.3 kB]
      Get:13 stretch/main armhf openjdk-9-jdk-he adless armhf 9~b181-4~bpo9+rpt1 [326 kB]
      Fetched 108 MB in 47s (2,284 kB/s)
      E: Failed to fetch ficates-java/ca-certificates-java_20170531+nmu1_all.deb 404 Not Found [IP: 93. 93.128.193 80]
      E: Unable to fetch some archives, maybe run apt-get update or try with –fix-mis sing?
      put setaf 5Installing screen… put sgr0
      Reading package lists… Done
      Building dependency tree
      Reading state information… Done
      Suggested packages:
      byobu | screenie | iselect
      The following NEW packages will be installed:
      screen
      0 upgraded, 1 newly installed, 0 to remove and 0 not upgraded.
      Need to get 547 kB of archives.
      After this operation, 922 kB of additional disk space will be used.
      Get:1 stretch/main armhf screen armhf 4 .5.0-6 [547 kB]
      Fetched 547 kB in 0s (1,035 kB/s)
      Selecting previously unselected package screen.
      (Reading database … 34605 files and directories currently installed.)
      Preparing to unpack …/screen_4.5.0-6_armhf.deb …
      Unpacking screen (4.5.0-6) …
      Processing triggers for install-info (6.3.0.dfsg.1-1+b1) …
      Processing triggers for systemd (232-25+deb9u6) …
      Processing triggers for man-db (2.7.6.1-2) …
      Setting up screen (4.5.0-6) …
      Processing triggers for systemd (232-25+deb9u6) …
      put setaf 5Creating minecraft server directory… put sgr0
      put setaf 5Getting latest Paper Minecraft server… put sgr0
      –2019-03-19 19:03:15–
      Resolving papermc.io (papermc.io)… 104.25.249.102, 104.25.250.102, 2606:4700:2 0::6819:fa66, …
      Connecting to papermc.io (papermc.io)|104.25.249.102|:443… connected.
      HTTP request sent, awaiting response… 200 OK
      Length: 44164274 (42M) [application/zip]
      Saving to: ‘paperclip.jar’

      paperclip.jar 100%[===================>] 42.12M 2.14MB/s in 19s

      2019-03-19 19:03:34 (2.24 MB/s) – ‘paperclip.jar’ saved [44164274/44164274]

      put setaf 5Building the Minecraft server… put sgr0
      ./SetupMinecraft.sh: line 31: java: command not found
      put setaf 5Accepting the EULA… put sgr0
      put setaf 5Grabbing start.sh from repository… put sgr0
      –2019-03-19 19:03:38– Minecraft/master/start.sh
      Resolving raw.githubusercontent.com (raw.githubusercontent.com)… 151.101.112.1 33
      Connecting to raw.githubusercontent.com (raw.githubusercontent.com)|151.101.112. 133|:443… connected.
      HTTP request sent, awaiting response… 200 OK
      Length: 466 [text/plain]
      Saving to: ‘start.sh’

      start.sh 100%[===================>] 466 –.-KB/s in 0s

      2019-03-19 19:03:38 (3.98 MB/s) – ‘start.sh’ saved [466/466]

      put setaf 5Grabbing restart.sh from repository… put sgr0
      –2019-03-19 19:03:38– Minecraft/master/restart.sh
      Resolving raw.githubusercontent.com (raw.githubusercontent.com)… 151.101.112.1 33
      Connecting to raw.githubusercontent.com (raw.githubusercontent.com)|151.101.112. 133|:443… connected.
      HTTP request sent, awaiting response… 200 OK
      Length: 1170 (1.1K) [text/plain]
      Saving to: ‘restart.sh’

      restart.sh 100%[===================>] 1.14K –.-KB/s in 0s

      2019-03-19 19:03:39 (10.6 MB/s) – ‘restart.sh’ saved [1170/1170]

      put setaf 5Enter a name for your server put sgr0
      Server Name: Private Server
      put setaf 5Setup is complete. To run the server go to the minecraft directory a nd type ./start.sh
      Don’t forget to set up port forwarding on your router. The default port is 2556 5 put sgr0
      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 th en Ctrl+D
      pi@raspberrypi:~/minecraft $ sudo nano /boot/config.txt
      pi@raspberrypi:~/minecraft $ screen -r minecraft
      There is no screen to be resumed matching minecraft.
      pi@raspberrypi:~/minecraft $

    4. Hab jetzt mal die SD Karte mit 16 GB gegen eine SSD getauscht, nicht das die Größe ein Problem ist.

      Habe auch mal

      sudo apt-get update und sudo apt-get upgrade ausgeführt und dann erst die Anleitung, leider selbes Ergebnis.

      Wenn ich den folgende Befehl ausführe

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

      Da passiert nix außer dass das Terminal eine neue Zeile kommt wo ich wieder Befehle eingeben kann.

      Hab einen Raspberry 3 B ohne + ;)

    5. Sorry ich meinte:

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

    6. Wenn das nicht geht bitte mal:

      java -jar -Xms800M -Xmx800M /home/pi/minecraft/paperclip.jar

    7. Da kommt folgendes:

      pi@raspberrypi:~/minecraft $ /usr/lib/jvm/java-9-openjdk-armhf/bin/java -jar -Xm s800M -Xmx800M /home/pi/minecraft/paperclip.jar
      Downloading original jar…
      Exception in thread „main“ java.lang.ExceptionInInitializerError
      at java.base/javax.crypto.JceSecurityManager.(JceSecurityManager .java:65)
      at java.base/javax.crypto.Cipher.getConfiguredPermission(Cipher.java:261 1)
      at java.base/javax.crypto.Cipher.getMaxAllowedKeyLength(Cipher.java:2633 )
      at java.base/sun.security.ssl.CipherSuite$BulkCipher.isUnlimited(CipherS uite.java:602)
      at java.base/sun.security.ssl.CipherSuite$BulkCipher.(CipherSuite. java:574)
      at java.base/sun.security.ssl.CipherSuite$BulkCipher.(CipherSuit e.java:460)
      at java.base/sun.security.ssl.CipherSuite.(CipherSuite.java:1074 )
      at java.base/sun.security.ssl.SSLContextImpl.getApplicableSupportedCiphe rSuiteList(SSLContextImpl.java:354)
      at java.base/sun.security.ssl.SSLContextImpl.access$100(SSLContextImpl.j ava:42)
      at java.base/sun.security.ssl.SSLContextImpl$AbstractTLSContext. (SSLContextImpl.java:590)
      at java.base/java.lang.Class.forName0(Native Method)
      at java.base/java.lang.Class.forName(Class.java:292)
      at java.base/java.security.Provider$Service.getImplClass(Provider.java:1 848)
      at java.base/java.security.Provider$Service.newInstance(Provider.java:18 24)
      at java.base/sun.security.jca.GetInstance.getInstance(GetInstance.java:2 36)
      at java.base/sun.security.jca.GetInstance.getInstance(GetInstance.java:1 64)
      at java.base/javax.net.ssl.SSLContext.getInstance(SSLContext.java:168)
      at java.base/javax.net.ssl.SSLContext.getDefault(SSLContext.java:99)
      at java.base/javax.net.ssl.SSLSocketFactory.getDefault(SSLSocketFactory. java:123)
      at java.base/javax.net.ssl.HttpsURLConnection.getDefaultSSLSocketFactory (HttpsURLConnection.java:335)
      at java.base/javax.net.ssl.HttpsURLConnection.(HttpsURLConnection. java:292)
      at java.base/sun.net. .(Ht tpsURLConnectionImpl.java:86)
      at java.base/sun.net. (Handler.j ava:62)
      at java.base/sun.net. (Handler.j ava:57)
      at java.base/java.net.URL.openConnection(URL.java:1051)
      at java.base/java.net.URL.openStream(URL.java:1117)
      at com.destroystokyo.paperclip.Paperclip.run(Paperclip.java:83)
      at com.destroystokyo.paperclip.Main.main(Main.java:14)
      Caused by: java.lang.SecurityException: Can not initialize cryptographic mechani sm
      at java.base/javax.crypto.JceSecurity.(JceSecurity.java:118)
      … 28 more
      Caused by: java.lang.SecurityException: Couldn’t parse jurisdiction policy files in: unlimited
      at java.base/javax.crypto.JceSecurity.setupJurisdictionPolicies(JceSecur ity.java:355)
      at java.base/javax.crypto.JceSecurity.access$000(JceSecurity.java:73)
      at java.base/javax.crypto.JceSecurity$1.run(JceSecurity.java:109)
      at java.base/javax.crypto.JceSecurity$1.run(JceSecurity.java:106)
      at java.base/java.security.AccessController.doPrivileged(Native Method)
      at java.base/javax.crypto.JceSecurity.(JceSecurity.java:105)
      … 28 more

      Bei dem anderen Befehl kommt :

      pi@raspberrypi:~/minecraft $ java -jar -Xms800M -Xmx800M /home/pi/minecraft/paperclip.jar
      -bash: java: command not found

    8. Bitte mal eine andere SD Karte nutzen und dann Befehl ausprobieren, bei dem oben die JAVA Fehler kommen. Da stimmt etwas ganz und gar nicht. Da es bei anderen Leuten läut, würde ich sagen, dass es daran liegt.

    9. Hallo Marc, tolle Anleitung – pefekt zu folgen!

      Aber ich habe gestern auch frisch installiert, und bekomme auch die java security exception. Ist da was am server code falsch?

    10. Habs gefunden: Man muss AUF JEDEN Fall vor ./SetupMinecraft.sh die Locales richtig erzeugen lassen in raspi-config, sonst klappt die Installation von openjdk nicht.
      Außerdem bekomme ich bei der Installation zwischendurch die Meldung

      Running hooks in /etc/ca-certificates/update.d…

      Error: missing `client‘ JVM at `/usr/lib/jvm/java-9-openjdk-armhf/lib/client/libjvm.so‘.
      Please install or use the JRE or JDK that contains these missing components.
      E: /etc/ca-certificates/update.d/jks-keystore exited with code 1.
      done.
      Errors were encountered while processing:
      ca-certificates-java
      openjdk-9-jre-headless:armhf
      openjdk-9-jdk-headless:armhf
      E: Sub-process /usr/bin/dpkg returned an error code (1)

      Bin noch auf der Suche nach einer Lösung…

    11. Hier ist sie!

      openjdk-9 ist für Rapsberrypi offiziell nicht unterstützt („Default ist Version 8“), wird aber von SetupMinecraft.sh installiert. Siehe hier:

      Lösung:
      Nach wget … und vor dem Aufruf von SetupMinecraft.sh:

      nano SetupMinecraft.sh
      und Zeile
      sudo apt-get install openjdk-9-jdk-headless -y
      ändern in
      sudo apt-get install openjdk-8-jdk-headless -y

      Wenn man schon mitten drin ist: sudo apt remove java-9-openjdk, das Verzeichnis mit rm -rf minecraft wieder löschen (Daten vorher retten?).

      Dies behebt hoffentlich auch den Fehler mit „screen -r minecraft“ => „Fenster existiert nicht“ von Felix, Anti Predator und Antistatiker.
      Toitoitoi, viel Erfolg! Meiner brummt jetzt…

    12. Hi Erich,

      ich habe das mal im Repository geändert.

      Könnte mal jemand verifizieren ob nun alles geht? Ich habe gerade keinen Pi frei. Ich teste das dann ggf. nächste Woche.

  7. Hallo Marc,
    vielen Dank dir für diese Anleitung.
    Meinst du man könnte Dich bitten dein Server als Save Game für einen Privaten Server zum Download zur verfügung zustellen ? Wäre ein tolle Sache.

    1. Hi,

      Was meinst du genau? Die Map? Also die kann man gerne direkt auf unserem Server spielen. Für den Pi ist sie Mittlerweile auch zu groß

  8. So, ich habe die Anleitung nun nochmal selber auf einem neuen Raspberry Pi ausprobiert und angepasst. Sie funktioniert nach wie vor.

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