redhat:other-redhat:minecraft:minecraft-server-redhat

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.

  • Fertig installiertes CentOS 7 / RHEL 7 System
  • Minimum 4096MB verbaute / zugewiesene RAM!
  • Putty Client

Installation der benötigten Pakete:

# yum -y update
# yum -y install vim screen wget java-1.8.0-openjdk.x86_64

Freischalten der benötigten Firewall Rule:

# firewall-cmd --zone=public --permanent --add-port=25565/tcp
# firewall-cmd --reload

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

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 beendenCTRL + a dann d drücken!


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

  • redhat/other-redhat/minecraft/minecraft-server-redhat.txt
  • Last modified: 2017/10/05 12:38
  • by michael