Minecraft-Server einrichten: Von der Java-Version bis zum laufenden Server
Die konkreten Schritte nach der Softwarewahl: Java, JAR und EULA bis zu den wichtigsten Ersteinstellungen in server.properties, für Windows und Linux getrennt durchgegangen.
Die Software-Entscheidung ist gefallen? Dann geht's hier weiter: die konkreten Schritte vom ersten Download bis zum laufenden Server, für Windows und Linux getrennt durchgegangen. Am Beispiel Paper, für die anderen Varianten gilt dasselbe Prinzip, nur der Dateiname der JAR ändert sich. Falls die Entscheidung noch aussteht, welche Software überhaupt zu dir passt: Vanilla, Spigot, Paper & Co. im Vergleich.
Server starten: Java, JAR und die EULA
Egal für welche Software du dich entscheidest, der erste Start läuft in denselben Schritten ab, nur die konkreten Befehle unterscheiden sich zwischen Windows und Linux, deshalb einmal komplett getrennt durch. Am Beispiel Paper, für die anderen Varianten gilt dasselbe Prinzip, nur der Dateiname der JAR ändert sich.
Windows
- Java-Version prüfen. In der Eingabeaufforderung oder PowerShell
java -versioneingeben. Für 26.2 muss dort Java 25 stehen, sonst bricht der Server später mitUnsupportedClassVersionErrorab. - Java 25 installieren, falls nötig. Am schnellsten per winget in PowerShell:
winget install --id EclipseAdoptium.Temurin.25.JDK -e
Alternativ die MSI-Datei manuell von adoptium.net (Bereich Temurin, Version 25) laden und ausführen, im Setup unter „Custom Setup" die Punkte „Add to PATH" und „Set JAVA_HOME variable" aktiviert lassen, sonst findet die Konsolejavaspäter nicht. Nach der Installation die Eingabeaufforderung einmal schließen und neu öffnen, sonst greift die aktualisierte PATH-Variable in der laufenden Sitzung noch nicht. Sind mehrere Java-Versionen parallel installiert, wählst du über die Reihenfolge der Pfade in der Umgebungsvariable PATH aus, welche als Standard läuft, beziehungsweise indem duJAVA_HOMEauf die gewünschte Version zeigen lässt, praktisch, wenn auf derselben Maschine noch ein älterer Server mit einer anderen Minecraft-Version läuft. - Ordner anlegen. Ein eigener, leerer Ordner pro Server, nicht mehrere Versionen wild durcheinander in einem Verzeichnis, sonst wird das spätere Update unnötig fehleranfällig. Per PowerShell:
New-Item -ItemType Directory -Path C:\minecraft\mein-server
und danachcd C:\minecraft\mein-server, oder den Ordner einfach im Explorer anlegen. - Server-JAR herunterladen. Am unkompliziertesten: die offizielle Downloadseite papermc.io/downloads/paper im Browser öffnen und die JAR für 26.2 direkt in den vorbereiteten Ordner speichern. Ein Hinweis für alte Anleitungen im Netz: PaperMC hat seinen Downloaddienst inzwischen auf eine neue API namens „Fill" (fill.papermc.io) umgestellt, die alte api.papermc.io wird schrittweise abgeschaltet, ein händisch aus einem älteren Tutorial kopierter API-Link funktioniert deshalb möglicherweise nicht mehr, die Downloadseite selbst zeigt immer den aktuell gültigen Link. Alternativ per PowerShell, wenn du den Link von der Seite kopiert hast:
Invoke-WebRequest -Uri "<kopierter Link>" -OutFile paper.jar
Bei Vanilla lädst du dieserver.jaranalog direkt von minecraft.net. Bei Fabric läuft es über einen eigenen Installer statt einer fertigen JAR, herunterladen von fabricmc.net, danachjava -jar fabric-installer.jar server -mcversion 26.2 -downloadMinecraftausführen, das baut den passenden Server-Loader zusammen. - Ersten Testlauf starten. Im Server-Ordner:
java -Xms2G -Xmx2G -jar paper-26.2-XXX.jar --nogui
(die konkrete Build-Nummer aus dem Dateinamen ersetzt dasXXX).-Xms/-Xmxlegen die minimale und maximale Speicherzuweisung der Java Virtual Machine fest, 2 GB reichen für den ersten Test, die passende Größe für den Dauerbetrieb hängt von Spielerzahl und Plugins ab.--noguiunterdrückt die grafische Server-Oberfläche. Dieser erste Start bricht bewusst sofort wieder ab und legt nur die Grunddateien an, darunterserver.properties,eula.txtund die Ordnerlogsundworld. - EULA akzeptieren. Rechtsklick auf
eula.txt→ Öffnen mit → Editor, dorteula=falsezueula=trueändern und speichern. Ohne diesen Schritt verweigert der Server jeden weiteren Start, das ist keine Fehlfunktion, sondern von Mojang bewusst so eingebaut: Mit der Zeile bestätigst du aktiv, den Minecraft End User License Agreement gelesen zu haben und zu akzeptieren. - Server tatsächlich starten. Denselben Befehl wie in Schritt 5 erneut ausführen, oder praktischer: eine Datei
start.batim Server-Ordner anlegen mit dem Inhalt@echo off java -Xms2G -Xmx2G -jar paper-26.2-XXX.jar --nogui pause
Ein Doppelklick startet den Server danach direkt,pausehält das Fenster offen, falls er sofort mit einem Fehler abbricht, sonst verschwindet die Meldung mit dem Fenster. Der Server generiert jetzt die Welt, das dauert je nachview-distanceund Hardware einen Moment, und öffnet danach den Netzwerkport, standardmäßig 25565. AmDone-Eintrag in der Konsole erkennst du, wann er tatsächlich bereit ist und Verbindungen annimmt. - Firewall und lokaler Test. Beim ersten Start blendet Windows normalerweise von selbst ein Fenster der Windows-Defender-Firewall ein und fragt, ob
java.exein privaten und/oder öffentlichen Netzwerken kommunizieren darf. Für ein Heimnetz beide Häkchen bei „Private Netzwerke" setzen und mit „Zugriff zulassen" bestätigen, bei „Öffentliche Netzwerke" (Café, Hotel-WLAN) lieber nicht.Manchmal taucht dieses Fenster aber gar nicht erst auf, zum Beispiel wenn es aus Versehen weggeklickt wurde oder der Server über eine geplante Aufgabe im Hintergrund startet. In dem Fall bleibt der Port zu, ohne dass du eine Fehlermeldung siehst, von außen kommt einfach niemand rein. Die Regel lässt sich auch von Hand nachtragen, entweder über die grafische Oberfläche oder per Befehl:
Über die Oberfläche: Windows-Taste drücken, „Windows Defender Firewall" eingeben und öffnen, dort links auf „Erweiterte Einstellungen", danach „Eingehende Regeln" und rechts „Neue Regel...". Als Regeltyp „Port" wählen, „TCP" und bei den lokalen Ports gezielt 25565 eintragen, danach „Verbindung zulassen" und die Regel für alle drei Profile (Domäne, Privat, Öffentlich) übernehmen, ihr könnt sie später jederzeit wieder löschen.
Über die Kommandozeile: Eingabeaufforderung oder PowerShell als Administrator öffnen (Rechtsklick auf das Symbol → „Als Administrator ausführen", ohne diesen Schritt meldet Windows einen Berechtigungsfehler), dann:
netsh advfirewall firewall add rule name="Minecraft Server" dir=in action=allow protocol=TCP localport=25565
Das trägt dieselbe Regel wie über die Oberfläche ein, nur in einer Zeile.Verbinde dich danach zunächst selbst über
localhostbeziehungsweise127.0.0.1, bevor du die Adresse an andere weitergibst. Läuft der Server auf einer Maschine im eigenen Heimnetz, kommt jetzt noch die Portweiterleitung am Router dazu, ohne die ist er von außen schlicht nicht erreichbar. Ob der Port danach tatsächlich auch von draußen erreichbar ist, lässt sich mit einem Portchecker wie canyouseeme.org von einem Gerät außerhalb des eigenen Netzwerks gegenprüfen, etwa vom Handy über mobile Daten statt WLAN, bevor die Adresse an andere rausgeht.
Linux
- Java-Version prüfen. Im Terminal
java -versioneingeben. Für 26.2 muss dort Java 25 stehen, sonst bricht der Server später mitUnsupportedClassVersionErrorab. - Java 25 installieren, falls nötig. Auf Ubuntu 25.04/25.10 liegt das Paket bereits in den offiziellen Quellen:
sudo apt update && sudo apt install openjdk-25-jdk
Auf Ubuntu 24.04 LTS und älter führt Ubuntu Java 25 noch nicht in den Standardquellen, hier über das Repository von Eclipse Temurin (Adoptium) installieren:sudo apt install -y wget apt-transport-https gpg wget -qO - https://packages.adoptium.net/artifactory/api/gpg/key/public | gpg --dearmor | sudo tee /etc/apt/trusted.gpg.d/adoptium.gpg > /dev/null echo "deb https://packages.adoptium.net/artifactory/deb $(awk -F= '/^VERSION_CODENAME/{print $2}' /etc/os-release) main" | sudo tee /etc/apt/sources.list.d/adoptium.list sudo apt update sudo apt install temurin-25-jdkSind mehrere Java-Versionen parallel installiert, wählst du mitsudo update-alternatives --config javaaus, welche als Standard läuft, praktisch, wenn auf derselben Maschine noch ein älterer Server mit einer anderen Minecraft-Version läuft. - Ordner anlegen. Ein eigener, leerer Ordner pro Server, nicht mehrere Versionen wild durcheinander in einem Verzeichnis, sonst wird das spätere Update unnötig fehleranfällig:
mkdir -p ~/minecraft/mein-server && cd ~/minecraft/mein-server
- Server-JAR herunterladen. Am unkompliziertesten: die offizielle Downloadseite papermc.io/downloads/paper im Browser öffnen und die JAR für 26.2 direkt in den vorbereiteten Ordner speichern. Ein Hinweis für alte Anleitungen im Netz: PaperMC hat seinen Downloaddienst inzwischen auf eine neue API namens „Fill" (fill.papermc.io) umgestellt, die alte api.papermc.io wird schrittweise abgeschaltet, ein händisch aus einem älteren Tutorial kopierter API-Link funktioniert deshalb möglicherweise nicht mehr, die Downloadseite selbst zeigt immer den aktuell gültigen Link. Läuft der Server headless ohne Browser, Downloadlink auf der Seite per Rechtsklick kopieren, dann
curl -o paper.jar "<kopierter Link>"
oderwget -O paper.jar "<kopierter Link>". Bei Vanilla lädst du dieserver.jaranalog direkt von minecraft.net. Bei Fabric läuft es über einen eigenen Installer statt einer fertigen JAR, herunterladen von fabricmc.net, danachjava -jar fabric-installer.jar server -mcversion 26.2 -downloadMinecraftausführen, das baut den passenden Server-Loader zusammen. - Ersten Testlauf starten. Im Server-Ordner:
java -Xms2G -Xmx2G -jar paper-26.2-XXX.jar --nogui
(die konkrete Build-Nummer aus dem Dateinamen ersetzt dasXXX). Dieser erste Start bricht bewusst sofort wieder ab und legt nur die Grunddateien an, darunterserver.properties,eula.txtund die Ordnerlogsundworld. - EULA akzeptieren. Datei mit einem Texteditor öffnen, zum Beispiel
nano eula.txt, dorteula=falsezueula=trueändern und speichern. Ohne diesen Schritt verweigert der Server jeden weiteren Start, das ist keine Fehlfunktion, sondern von Mojang bewusst so eingebaut: Mit der Zeile bestätigst du aktiv, den Minecraft End User License Agreement gelesen zu haben und zu akzeptieren. - Server tatsächlich starten. Denselben Befehl wie in Schritt 5 erneut ausführen, oder praktischer: ein kleines Startskript anlegen, zum Beispiel mit
nano start.sh. Dort dieselbe Zeile eintragen wie beim Testlauf:java -Xms2G -Xmx2G -jar paper-26.2-XXX.jar --nogui
Speichern mit Strg+O, dann Enter zum Bestätigen des Dateinamens, danach Strg+X zum Verlassen von nano. Jetzt gibt es die Dateistart.sh, aber Linux behandelt neue Dateien standardmäßig nur als Text, nicht als ausführbares Programm, das ist der eine Punkt, an dem sich Linux von Windows unterscheidet. Diesen Befehl einmalig ausführen, um das zu ändern:chmod +x start.sh
Das schaltet die Datei von „nur lesbar" auf „ausführbar" um. Ab jetzt reicht./start.sh, um den Server zu starten.Ein Punkt kommt unter Linux noch dazu, wenn der Server auf einem gemieteten Server per SSH läuft: Schließt du das SSH-Fenster, beendet sich normalerweise auch der Serverprozess darin, Fenster und Programm gehören erstmal zusammen. Für den Dauerbetrieb brauchst du deshalb ein kleines Zusatzprogramm namens
screen, es lässt dein Terminal-Fenster im Hintergrund weiterlaufen, auch wenn du dich ausloggst. Falls es fehlt:sudo apt install screen. Die Bedienung in drei Schritten:screen -S minecraftöffnet eine neue, benannte Sitzung, „minecraft" ist dabei frei gewählt und dient nur der Wiedererkennung.- Darin ganz normal
./start.shausführen, der Server startet wie gewohnt, du siehst die Konsole live. - Die Tastenkombination Strg+A, kurz loslassen, dann D drücken, verlässt die Sitzung wieder, ohne sie zu beenden. Der Server läuft danach unsichtbar im Hintergrund weiter, auch nach dem Schließen der SSH-Verbindung.
Willst du später wieder reinschauen, etwa um einen Befehl direkt in die Serverkonsole einzugeben, holst du die Sitzung mit
screen -r minecraftzurück. Der Server generiert nach dem Start die Welt, das dauert je nachview-distanceund Hardware einen Moment, und öffnet danach den Netzwerkport, standardmäßig 25565. AmDone-Eintrag in der Konsole erkennst du, wann er tatsächlich bereit ist und Verbindungen annimmt. - Firewall und lokaler Test. Ubuntu bringt mit
ufw(Uncomplicated Firewall) ein eigenes Firewall-Werkzeug mit, das aber nicht bei jeder Installation automatisch aktiv ist. Das vorangestelltesudobedeutet dabei jeweils, den Befehl mit Administratorrechten auszuführen, gefragt wirst du dabei nach deinem eigenen Benutzerpasswort, nicht nach einem separaten Admin-Passwort.Mit
sudo ufw statussiehst du, woran du bist: Steht dort „Status: inactive", ist keine weitere Aktion nötig, der Port ist offen. Steht dort „active", muss der Minecraft-Port erst explizit erlaubt werden, sonst blockt die Firewall eingehende Verbindungen:sudo ufw allow 25565/tcp
Reihenfolge beachten: Aktivierst du ufw dabei gerade zum ersten Mal selbst, unbedingt in dieser Reihenfolge vorgehen: zuerst den SSH-Zugang erlauben, erst danach die Firewall einschalten.
sudo ufw allow OpenSSH sudo ufw enable
Diese Reihenfolge ist kein Detail, das sich auch weglassen ließe: Schaltest du ufw zuerst ein, ohne SSH vorher erlaubt zu haben, blockiert die Firewall im selben Moment auch die Verbindung, über die du gerade eingeloggt bist, du sperrst dich damit selbst aus. Bei einem gemieteten Server kommst du dann in aller Regel nur noch über die Rescue-Konsole im Kundenpanel des Hosters wieder rein, mit der richtigen Reihenfolge oben lässt sich das komplett vermeiden.
Zum Schluss prüfen, ob es geklappt hat: Ein erneutes
sudo ufw statussollte25565/tcpjetzt als „ALLOW" auflisten. Bei manchen Hostern kommt zusätzlich eine eigene, vorgeschaltete Cloud-Firewall im Kundenpanel dazu, etwa bei Hetzner Cloud, die unabhängig von ufw eigene Regeln braucht. Bleibt der Port trotz offener ufw-Regel von außen unerreichbar, lohnt sich als Nächstes ein Blick genau dorthin.Verbinde dich danach zunächst selbst über
localhostbeziehungsweise127.0.0.1, bevor du die Adresse an andere weitergibst. Läuft der Server auf einer Maschine im eigenen Heimnetz, kommt jetzt noch die Portweiterleitung am Router dazu, ohne die ist er von außen schlicht nicht erreichbar. Ob der Port danach tatsächlich auch von draußen erreichbar ist, lässt sich mit einem Portchecker wie canyouseeme.org von einem Gerät außerhalb des eigenen Netzwerks gegenprüfen, etwa vom Handy über mobile Daten statt WLAN, bevor die Adresse an andere rausgeht.
Wer über ein Hosting-Panel wie Pterodactyl oder Crafty geht, muss diese Schritte in aller Regel nicht händisch ausführen, dort läuft ein Großteil davon über vorbereitete Eggs oder Server-Typen automatisch, inklusive Java-Versionswahl und JAR-Download. Trotzdem lohnt es sich zu wissen, was im Hintergrund passiert, spätestens wenn beim Update auf eine neue Minecraft-Version etwas nicht wie erwartet läuft.
Die wichtigsten Ersteinstellungen in server.properties
Die server.properties liegt neben der JAR-Datei und wird beim Start eingelesen, jede Änderung braucht einen Neustart des Servers, damit sie greift. Ein paar Werte solltest du dir direkt nach dem ersten Start ansehen, nicht erst, wenn etwas schiefläuft.
- online-mode. Regelt, ob sich nur Spieler mit einem echten, gekauften Minecraft-Account verbinden dürfen. Der Standardwert
truesollte für praktisch jeden Server so bleiben,online-mode=falseöffnet den Server für beliebige, nicht verifizierte Accounts und ist nur in speziellen Proxy-Setups mit eigener Authentifizierung sinnvoll, sonst ein offenes Einfallstor für Account-Spoofing. - white-list. Aktiviert eine Positivliste erlaubter Spieler. Für einen geschlossenen Freundeskreis ist das oft die einfachste Zugangskontrolle, ganz unabhängig von tieferer Server-Absicherung, die ein eigenes Thema ist (dazu mehr in der Checkliste zum Server-Hardening).
- view-distance und simulation-distance. Der Standardwert von
view-distanceliegt bei 10 Chunks,simulation-distancemeist niedriger angesetzt. Beide Werte bestimmen viel stärker über die spürbare Performance als etwa die reine Spielerzahl. Auf begrenzter Hardware oder bei mehr als ein paar gleichzeitigen Spielern lohnt sich ein Blick auf niedrigere Werte, 6 bis 8 beiview-distanceist ein gängiger Kompromiss zwischen Sichtweite und Ruckelfreiheit. Höher zu gehen bringt selten spürbaren Mehrwert, kostet aber überproportional Leistung. - difficulty und gamemode. Reine Geschmackssache fürs Spielerlebnis, technisch unkritisch. Für den Einstieg:
normalals Schwierigkeit undsurvivalals Modus sind der unauffälligste Startpunkt, von dem aus ihr euch bei Bedarf nach oben oder unten anpasst. - spawn-protection. Schützt einen Bereich um den Weltspawn vor Veränderungen durch Spieler ohne Operator-Rechte. Der Standardwert schützt einen kleinen Radius, in Solo- oder Freundesrunden oft überflüssig, auf offeneren Community-Servern ein sinnvoller Basisschutz gegen Spawn-Griefing.
- enable-command-block. Standardmäßig deaktiviert, und das aus gutem Grund: Command-Blocks können mit den richtigen Befehlen erheblichen Schaden anrichten, wenn sie in falsche Hände geraten. Nur aktivieren, wenn ihr wisst, wofür, und wer Zugriff bekommt.
- enable-query (optional). Für die reine Anzeige in der Multiplayer-Liste im Client oder den meisten Server-Listen-Portalen braucht es das gar nicht, dafür reicht das seit Minecraft 1.7 eingebaute Server List Ping über den ohnehin offenen TCP-Port.
enable-query=trueschaltet zusätzlich das ältere, an GameSpy4/UT3 angelehnte Query-Protokoll ein (nicht zu verwechseln mit dem A2S-Protokoll aus der Source-Engine-Welt, das ist ein anderes System), das manche Listen-Portale wie NameMC oder minecraft-server.eu für ausführlichere Statistiken abfragen, etwa die volle Spielerliste. Das Protokoll läuft über UDP, standardmäßig auf demselben Portwert wieserver-port, lässt sich überquery.portaber auch getrennt setzen. Wichtig dabei: Die Firewall-Regel von oben hat bislang nur TCP erlaubt, für Query muss zusätzlich eine UDP-Regel für denselben Port rein, unter Linux zum Beispielsudo ufw allow 25565/udp, unter Windows dieselbe GUI-Regel oder derselbenetsh-Befehl wie zuvor, nur mitprotocol=UDPstatt TCP. Ohne diese zusätzliche Freigabe bleibt die Abfrage trotz aktivierter Option unbeantwortet.
Die Firewall-Regel für den Minecraft-Port sorgt nur dafür, dass der Server überhaupt erreichbar ist, mit eigentlicher Absicherung hat das noch wenig zu tun. Was darüber hinaus sinnvoll ist, SSH-Härtung, Fail2ban gegen automatisierte Login-Versuche und Co., ist bewusst nicht Thema dieses Artikels, weil es unabhängig vom Gameserver selbst gilt und in der Sicherheits-Checkliste ausführlicher behandelt wird.
Was als Nächstes wichtig wird, hängt davon ab, wo euer Server läuft: Auf einem gemieteten Root-Server lohnt sich vor dem produktiven Start noch ein Blick in die Grundabsicherung, auf einer eigenen Maschine zusätzlich in die Portweiterleitung am Router. Und sobald mehr als ein Server oder mehrere Leute Zugriff auf die Verwaltung bekommen sollen, wird ein Panel wie Pterodactyl oder Crafty schnell zur echten Arbeitserleichterung gegenüber der reinen Konsole.
Lieber direkt fertig eingerichtet?
Ich installiere Server-Software, Grundkonfiguration und Portweiterleitung für dich, inklusive Funktionstest und persönlicher Einweisung — 69 €, einmalig.
Server-Setup anfragen