Minecraftserver mit PaperMC unter Proxmox
Moin!
Diesmal ein kleines How-To zum Thema Minecraft.
Was Minecraft ist, brauche ich wahrscheinlich keinem zu erklären, daher lasse ich das einfach mal sein.
Wir bedienen uns dafür bei PaperMC. PaperMC ist eine Alternative zum offiziellen Server von Mojang. Es ist deutlich ressourcensparender und bringt eine einfache sowie unkomplizierte Unterstützung für Mods mit sich. Es ist sogar noch Ressourcen sparender als Spigot. Des Weiteren ist es in der Lage, erweiterte Settings zu konfigurieren.
Wir benötigen dazu:
- LXC Container
- Portweiterleitung im Router
- Domain / Dynamisches DNS
Wie immer starten wir mit der Verbindung zum Server. Dort angekommen updaten wir die Paketlisten und installieren benötigte Pakete.
sudo apt update && sudo apt upgrade -y && sudo apt install screen software-properties-common -y
Minecraft fordert seit Version 1.18 Java 17 für den Serverbetrieb. Damit wir immer die aktuellste Version verwenden, erweitern wir unser Repository um die Paketquellen von Amazon. Danach führen wir ein Update der Paketlisten durch und installieren Java 17.
sudo wget -O- https://apt.corretto.aws/corretto.key | sudo apt-key add -
sudo add-apt-repository 'deb https://apt.corretto.aws stable main'
sudo apt-get update && sudo apt-get install -y java-17-amazon-corretto-jdk
Im nächsten Schritt erstellen wir einen User für den Minecraft Server und logen in den neu angelegten User um. Dann legen wir für die zu verwendende Version ein neues Verzeichnis an. So können wir mehrere Versionen auf einem Server speichern und behalten den Überblick.
sudo adduser --disabled-login minecraft
su minecraft
mkdir minecraft_1.19.3
cd minecraft_1.19.3
Jetzt laden wir uns die Serversoftware PaperMC runter.
curl -o paper-1.19.3-386.jar https://api.papermc.io/v2/projects/paper/versions/1.19.3/builds/386/downloads/paper-1.19.3-386.jar
Danach legen wir ein Startscript an, um den Server starten zu können. Diese sämtlichen Parameter optimieren den laufenden Betrieb des Servers und funktionieren bis etwa 10 GiB Arbeitsspeicher Zuweisung. Wichtig! Ihr solltet immer etwa 1,5 GiB RAM für das Betriebssystem übrig haben. Sprich bei 10 GiB RAM solltet Ihr dem MC Server etwa 8,5 GiB zuweisen. Ihr könnt die genaue Funktion einzelner Parameter hier nachlesen.
nano start.sh
screen -AmdS minecraft java -Xms7G -Xmx7G -XX:+UseG1GC -XX:+ParallelRefProcEnabled -XX:MaxGCPauseMillis=200 -XX:+UnlockExperimentalVMOptions -XX:+DisableExplicitGC -XX:+AlwaysPreTouch -XX:G1NewSizePercent=30 -XX:G1MaxNewSizePercent=40 -XX:G1HeapRegionSize=8M -XX:G1ReservePercent=20 -XX:G1HeapWastePercent=5 -XX:G1MixedGCCountTarget=4 -XX:InitiatingHeapOccupancyPercent=15 -XX:G1MixedGCLiveThresholdPercent=90 -XX:G1RSetUpdatingPauseTimePercent=5 -XX:SurvivorRatio=32 -XX:+PerfDisableSharedMem -XX:MaxTenuringThreshold=1 -jar /home/minecraft/minecraft_1.19.3_papermc/paper-1.19.3-386.jar
Zusätzlich legen wir noch ein Stoppscript an, um den Server, auch wieder ohne in den Screen springen zu müssen, stoppen zu können.
nano stopp.sh
screen -r minecraft -X quit
Die Scripte sind zum aktuellen Zeitpunkt noch nicht ausführbar. Dies können wir mit dem folgenden Befehl ändern.
chmod +x start.sh stop.sh
Wer möchte, dass der Server automatisch startet, sollte dies als Cronjob im Crontab anlegen. Damit wir sicher gehen können, dass der Container auch bereit ist, setzen wir noch einen Delay mit in den Startbefehl.
crontab -e
@reboot sleep 15 && cd /home/minecraft/minecraft_1.18.1/ && ./start.sh
Nun erstellen wir die „eula.txt“, um die Nutzungsbedingungen zu akzeptieren.
nano eula.txt
eula=true
Ist dies erledigt, könnt ihr den Server starten. Wenn der Dienst startet, werden alle benötigten Configdatein generiert. Ist die start.sh ausgeführt, könnt ihr mit dem screen Befehl in das Fenster des Servers springen. Solltet ihr es verlassen wollen, müsst ihr erst STRG + A drücken und danach D betätigen.
./start.sh
screen -r
Wir müssen noch ein paar Einstellungen in der „server.properties“ ändern. Dazu beenden wir den Dienst und setzten den „stop“ Befehl in der Server Konsole ab.
stop
Ist der Server beendet, fangen wir mit der Configdatei an. Der Parameter für den server-port ändere ich aus Sicherheitsgründen immer auf einen anderen Port. Ihr könnt, wenn ihr eine Domain besitzt oder ein Dynamisches DNS nutzt, anstatt der IP die DNS/DynDNS angeben.
nano server.properties
motd=Eure Serverbeschreibung
max-players=AnzahlDerSpieler
server-ip=IP.Addresse.des.Containers / Domain/Dynamische DNS
server-port=55555
white-list=true
snooper-enabled=false
In der bukkit.yml, spigot.yml und paper.yml können noch weitere Settings angepasst werden. Im vorherigen Step haben wir die Whitelist aktiviert. Um euch mit dem Server verbinden zu können, müsst ihr euren Minecraftnamen auf die Whitelist eintragen. Dies könnt ihr am besten in der Konsole des Servers erledigen. Anschließend solltet ihr euren Minecraftuser Operatorrechte verpassen.
./start.sh
whitelist add username
op username
Zum Schluss müsst ihr noch in eurem Router die Portweiterleitung auf die IP des Containers und den Port, den ihr in der „server.properties“ konfiguriert habt, erstellen. Nun öffnet ihr Minecraft und verbindet euch auf eure öffentliche IP oder Domain / Dynamisches DNS in Verbindung mit dem Port. Das sollte so aussehen: deinedomain.tld:55555
Simsalabim der Server ist fertig!
Grüße gehen aus dem Archiv!