Installation eines Minecraft Servers
Im folgenden, wird ein neuer Minecraft Server mit standartmässig 4096MB RAM
aufgesetzt, welches genug sein sollte, um etwa für bis zu 100 Spieler zu reichen. Denn überflüssigen Speicher, kann man jedoch später auch für komplexe Mods nutzen, falls nicht so viele Spieler geplant sind.
Voraussetzungen
- Fertig installiertes CentOS 7 / RHEL 7 System
Minimum 4096MB verbaute / zugewiesene RAM!
- Putty Client
Installation von Minecraft
System Vorbereitungen
Installation der benötigten Pakete:
# yum -y update # yum -y install vim screen wget java-1.8.0-openjdk.x86_64
Konfiguration Firewalld Rules
Freischalten der benötigten Firewall Rule:
# firewall-cmd --zone=public --permanent --add-port=25565/tcp # firewall-cmd --reload
Minecraft Installieren / Einrichten
Einrichten des Minecraft Environments, unter separatem Minecraft System-User:
# adduser -r mcuser # mkdir /opt/minecraft # cd /opt/minecraft # wget -O minecraft_server.jar https://s3.amazonaws.com/Minecraft.Download/versions/1.12.1/minecraft_server.1.12.1.jar # chmod +x /opt/minecraft/minecraft_server.jar # echo "eula=true" > eula.txt
Einrichten des Server-start Skripts
# vim /opt/minecraft/start_server.sh
#! /bin/bash SERVER_BIN=minecraftd cd /opt/minecraft if [ "$(screen -ls | grep $SERVER_BIN)" ] then echo $SERVER_BIN is already running.. else screen -dmS $SERVER_BIN java -Xmx2048M -Xms2048M -jar minecraft_server.jar nogui echo $SERVER_BIN is now alive! fi
Berechtigungen korrekt setzen und den Server starten!:
# chmod +x /opt/minecraft/start_server.sh # chown -R mcuser:mcuser /opt/minecraft # ./start_server.sh
Automatischer Server-Start nach reboot
Damit nun der Minecraft-Server, auch nach einem reboot des Systems wieder automatisch startet, erstellen wir hier einen neuen cronetab eintrag, der dies bei jedem Reboot für uns erledigt: (Achtung !!! Bei einem öffentlichen Minecraft Server sollte es aus Sicherheitstechnischen Gründen nicht root sein, der per crontab der screen startet!)
# vim /etc/crontab
SHELL=/bin/bash PATH=/sbin:/bin:/usr/sbin:/usr/bin MAILTO=root # For details see man 4 crontabs # Example of job definition: # .---------------- minute (0 - 59) # | .------------- hour (0 - 23) # | | .---------- day of month (1 - 31) # | | | .------- month (1 - 12) OR jan,feb,mar,apr ... # | | | | .---- day of week (0 - 6) (Sunday=0 or 7) OR sun,mon,tue,wed,thu,fri,sat # | | | | | # * * * * * user-name command to be executed @reboot root /opt/minecraft/start_server.sh
Wenn nun bis hier alles geklappt hat, ist die Grundlage des neuen Minecraft Server fertig! Für die Client Authentifizierung mit einem gehackten Client, weiter unten schauen! :)
Debugging: Um für Debugging-zwecke auf die Server Console zu verbinden, wird folgendermassen vorgegangen:
screen -r minecraftd
Server Console anschliessend verlassen, ohne den Server zu beenden → CTRL + a dann d drücken!
Mit gehacktem Client online auf eigenen Server zugreifen
Um nun auf den eigenen Server, ohne offizielle Authentifizierung über die Entwickler-Server darauf zuzugreifen, muss als erstes in der server.properties der Wert “online-mode=” auf false gesetzt werden!
Beispiel einer korrekt angepassten “server.properties”:
# cat /opt/minecraft/server.properties
#Minecraft server properties #Mon Aug 28 07:03:36 CEST 2017 max-tick-time=60000 generator-settings= force-gamemode=false allow-nether=true gamemode=0 enable-query=false player-idle-timeout=0 difficulty=1 spawn-monsters=true op-permission-level=4 pvp=true snooper-enabled=true level-type=DEFAULT hardcore=false enable-command-block=false max-players=60 network-compression-threshold=256 resource-pack-sha1= max-world-size=29999984 server-port=25565 server-ip= spawn-npcs=true allow-flight=false level-name=world view-distance=10 resource-pack= spawn-animals=true white-list=false generate-structures=true online-mode=false max-build-height=256 level-seed= prevent-proxy-connections=false use-native-transport=true motd=A Genoni Server - 2017 enable-rcon=false