Minecraft ist eines der beliebtesten Spiele aller Zeiten. Es ist ein Sandbox-Videospiel, in dem Spieler unendliche Welten erkunden und verschiedene Strukturen bauen, von einfachen Häusern bis hin zu hoch aufragenden Wolkenkratzern.
Dieses Tutorial erklärt, wie man einen Minecraft-Server unter Ubuntu 20.04 erstellt. Wir verwenden Systemd, um den Minecraft-Server und mcrcon
auszuführen Dienstprogramm zum Verbinden mit der laufenden Instanz. Wir zeigen Ihnen auch, wie Sie einen Cronjob erstellen, der regelmäßige Server-Backups durchführt.
Voraussetzungen #
Laut der offiziellen Minecraft-Website werden 4 GB RAM als Mindestkonfiguration für ein typisches Setup empfohlen.
Installieren Sie die Pakete, die zum Erstellen von mcrcon
erforderlich sind Werkzeug:
sudo apt update
sudo apt install git build-essential
Java Runtime Environment wird installiert #
Minecraft erfordert Java 8 oder höher. Der Minecraft-Server benötigt keine grafische Benutzeroberfläche, daher installieren wir die Headless-Version von Java. Diese Version ist besser für Serveranwendungen geeignet, da sie weniger Abhängigkeiten hat und weniger Systemressourcen verbraucht.
Führen Sie den folgenden Befehl aus, um das Headless OpenJRE 11-Paket zu installieren:
sudo apt install openjdk-11-jre-headless
Überprüfen Sie die Installation, indem Sie die Java-Version drucken:
java -version
openjdk version "11.0.7" 2020-04-14
OpenJDK Runtime Environment (build 11.0.7+10-post-Ubuntu-3ubuntu1)
OpenJDK 64-Bit Server VM (build 11.0.7+10-post-Ubuntu-3ubuntu1, mixed mode, sharing)
Erstellen des Minecraft-Benutzers Nr.
Aus Sicherheitsgründen sollte Minecraft nicht unter dem Root-Benutzer ausgeführt werden. Wir erstellen einen neuen Systembenutzer und eine neue Gruppe mit dem Home-Verzeichnis /opt/minecraft
. Der Benutzer verfügt über die erforderlichen Mindestberechtigungen zum Ausführen des Minecraft-Servers:
sudo useradd -r -m -U -d /opt/minecraft -s /bin/bash minecraft
Wir werden kein Passwort für diesen Benutzer festlegen. Auf diese Weise kann sich der Benutzer nicht über SS anmelden und kann nicht kompromittiert werden. Um zu minecraft
zu wechseln Benutzer müssen Sie sich beim Server als Root oder Benutzer mit sudo-Berechtigungen anmelden.
Installation von Minecraft auf Ubuntu #
Bevor Sie mit der Installation beginnen, wechseln Sie zu minecraft
Benutzer:
sudo su - minecraft
Führen Sie den folgenden Befehl aus, um drei neue Verzeichnisse im Home-Verzeichnis des Benutzers zu erstellen:
mkdir -p ~/{backups,tools,server}
- Die
backups
Verzeichnis speichert Ihre Minecraft-Server-Backups. Sie können dieses Verzeichnis mit Ihrem entfernten Sicherungsserver synchronisieren. - Die
tools
Verzeichnis enthält denmcrcon
Client und das Backup-Skript. - Der
server
Verzeichnis enthält den eigentlichen Minecraft-Server und seine Daten.
Herunterladen und Kompilieren von mcrcon
#
RCON ist ein Protokoll, mit dem Sie sich mit den Minecraft-Servern verbinden und Befehle ausführen können. mcronis RCON-Client geschrieben in C.
Wir laden den Quellcode von GitHub herunter und erstellen den mcrcon
binär.
Klonen Sie Tiiffi/mcrcon
-Repository von GitHub in ~/tools/mcron
Verzeichnis:
git clone https://github.com/Tiiffi/mcrcon.git ~/tools/mcrcon
Wenn Sie fertig sind, wechseln Sie zum mcron
Verzeichnis und erstellen Sie das Dienstprogramm:
cd ~/tools/mcrcon
gcc -std=gnu11 -pedantic -Wall -Wextra -O2 -s -o mcrcon mcrcon.c
Überprüfen Sie nach Abschluss, dass mcrcon
wurde erfolgreich kompiliert, indem seine Version ausgegeben wurde:
./mcrcon -v
Die Ausgabe sieht in etwa so aus:
mcrcon 0.7.1 (built: Jun 23 2020 15:49:44) - https://github.com/Tiiffi/mcrcon
Bug reports:
tiiffi+mcrcon at gmail
https://github.com/Tiiffi/mcrcon/issues/
Minecraft-Server wird heruntergeladen #
Es gibt mehrere Minecraft-Server-Mods wie Craftbukkitor Spigot, mit denen Sie Funktionen (Plugins) auf Ihrem Server hinzufügen und die Servereinstellungen weiter anpassen und optimieren können.
In diesem Handbuch werden wir den neuesten offiziellen Vanilla-Minecraft-Server von Mojang installieren. Dieselben Anweisungen gelten für die Installation anderer Server-Mods.
Gehen Sie zur Minecraft-Download-Seite, um den Download-Link der Java-Archivdatei (JAR) des neuesten Minecraft-Servers zu erhalten. Zum Zeitpunkt des Schreibens ist die neueste Version 1.16
.
Laden Sie die JAR-Datei im ~/server
herunter Verzeichnis mit wget
:
wget https://launcher.mojang.com/v1/objects/a0d03225615ba897619220e256a266cb33a44b6b/server.jar -P ~/server
Minecraft-Server konfigurieren #
Sobald der Download abgeschlossen ist, wechseln Sie zum ~/server
Verzeichnis und starte den Minecraft-Server:
cd ~/server
java -Xmx1024M -Xms1024M -jar server.jar nogui
Beim ersten Start führt der Server einige Operationen aus, erstellt die server.properties
und eula.txt
Dateien und Stopps.
[17:35:14] [main/ERROR]: Failed to load properties from file: server.properties
[17:35:15] [main/WARN]: Failed to load eula.txt
[17:35:15] [main/INFO]: You need to agree to the EULA in order to run the server. Go to eula.txt for more info.
Um den Server auszuführen, müssen Sie der Minecraft-EULA zustimmen, wie in der obigen Ausgabe angegeben. Öffnen Sie die eula.txt
Datei und ändern Sie eula=false
zu eula=true
:
nano ~/server/eula.txt
~/server/eula.txteula=true
Schließen und speichern Sie die Datei.
Öffnen Sie als nächstes die server.properties
Datei und aktivieren Sie das rcon-Protokoll und setzen Sie das rcon-Passwort:
nano ~/server/server.properties
Suchen Sie die folgenden Zeilen und aktualisieren Sie ihre Werte wie unten gezeigt:
~/server/server.propertiesrcon.port=25575
rcon.password=strong-password
enable-rcon=true
Vergessen Sie nicht, das strong-password
zu ändern zu etwas Sichererem. Wenn Sie sich nicht von entfernten Standorten aus mit dem Minecraft-Server verbinden möchten, stellen Sie sicher, dass der rcon-Port von Ihrer Firewall blockiert wird. Hier können Sie auch die Standardeigenschaften des Servers anpassen. Weitere Informationen zu den Servereinstellungen finden Sie auf der Seite server.properties.
Systemd-Unit-Datei erstellen #
Anstatt den Minecraft-Server manuell zu starten, erstellen wir eine Systemd-Unit-Datei und führen Minecraft als Dienst aus.
Wechseln Sie zurück zu Ihrem sudo-Benutzer, indem Sie exit
eingeben .
Öffnen Sie Ihren Texteditor und erstellen Sie eine Datei namens minecraft.service
in /etc/systemd/system/
Verzeichnis:
sudo nano /etc/systemd/system/minecraft.service
Fügen Sie die folgende Konfiguration ein:
/etc/systemd/system/minecraft.service[Unit]
Description=Minecraft Server
After=network.target
[Service]
User=minecraft
Nice=1
KillMode=none
SuccessExitStatus=0 1
ProtectHome=true
ProtectSystem=full
PrivateDevices=true
NoNewPrivileges=true
WorkingDirectory=/opt/minecraft/server
ExecStart=/usr/bin/java -Xmx1024M -Xms1024M -jar server.jar nogui
ExecStop=/opt/minecraft/tools/mcrcon/mcrcon -H 127.0.0.1 -P 25575 -p strong-password stop
[Install]
WantedBy=multi-user.target
Ändern Sie den Xmx
und Xms
Flags gemäß Ihren Serverressourcen. Der Xmx
Flag definiert den maximalen Speicherzuweisungspool für eine Java Virtual Machine (JVM), während Xms
definiert den anfänglichen Speicherzuweisungspool. Stellen Sie außerdem sicher, dass Sie den richtigen rcon
verwenden Port und Passwort.
Speichern Sie die Datei und laden Sie die systemd-Manager-Konfiguration neu:
sudo systemctl daemon-reload
Sie können den Minecraft-Server jetzt starten, indem Sie Folgendes eingeben:
sudo systemctl start minecraft
Wenn Sie den Dienst zum ersten Mal starten, werden mehrere Konfigurationsdateien und -verzeichnisse generiert, einschließlich der Minecraft-Welt.
Überprüfen Sie den Dienststatus mit dem folgenden Befehl:
sudo systemctl status minecraft
● minecraft.service - Minecraft Server
Loaded: loaded (/etc/systemd/system/minecraft.service; disabled; vendor preset: enabled)
Active: active (running) since Tue 2020-06-23 17:48:44 UTC; 8s ago
Main PID: 1338035 (java)
Tasks: 15 (limit: 1074)
Memory: 465.3M
CGroup: /system.slice/minecraft.service
└─1338035 /usr/bin/java -Xmx1024M -Xms1024M -jar server.jar nogui
Aktivieren Sie schließlich, dass der Minecraft-Dienst beim Booten automatisch gestartet wird:
sudo systemctl enable minecraft
Firewall # anpassen
Ubuntu wird mit einem Firewall-Konfigurationstool namens UFW ausgeliefert. Wenn die Firewall auf Ihrem System aktiviert ist und Sie von außerhalb Ihres lokalen Netzwerks auf den Minecraft-Server zugreifen möchten, müssen Sie Port 25565
öffnen :
sudo ufw allow 25565/tcp
Backups konfigurieren #
In diesem Abschnitt erstellen wir ein Backup-Shell-Skript und einen Cronjob, um den Minecraft-Server automatisch zu sichern.
Wechseln Sie zu minecraft
:
sudo su - minecraft
Öffnen Sie Ihren Texteditor und erstellen Sie die folgende Datei:
nano /opt/minecraft/tools/backup.sh
Fügen Sie die folgende Konfiguration ein:
/opt/minecraft/tools/backup.sh#!/bin/bash
function rcon {
/opt/minecraft/tools/mcrcon/mcrcon -H 127.0.0.1 -P 25575 -p strong-password "$1"
}
rcon "save-off"
rcon "save-all"
tar -cvpzf /opt/minecraft/backups/server-$(date +%F-%H-%M).tar.gz /opt/minecraft/server
rcon "save-on"
## Delete older backups
find /opt/minecraft/backups/ -type f -mtime +7 -name '*.gz' -delete
Speichern Sie die Datei und machen Sie das Skript ausführbar:
chmod +x /opt/minecraft/tools/backup.sh
Erstellen Sie als Nächstes einen Cron-Job, der einmal am Tag automatisch zu einer festgelegten Zeit ausgeführt wird.
Öffnen Sie die Crontab-Datei, indem Sie Folgendes eingeben:
crontab -e
Um das Backup-Skript jeden Tag um 23:00 Uhr auszuführen, fügen Sie die folgende Zeile ein:
0 23 * * * /opt/minecraft/tools/backup.sh
Zugriff auf die Minecraft-Konsole #
Um auf die Minecraft-Konsole zuzugreifen, verwenden Sie mcrcon
Nützlichkeit. Sie müssen den Host, den rcon-Port und das rcon-Passwort angeben und den -t
verwenden Schalter, der mcrcon
aktiviert Terminalmodus:
/opt/minecraft/tools/mcrcon/mcrcon -H 127.0.0.1 -P 25575 -p strong-password -t
Logged in. Type "Q" to quit!
>
Stellen Sie beim Zugriff auf die Minecraft-Konsole von einem entfernten Standort aus sicher, dass der rcon-Port nicht blockiert ist.
Wenn Sie sich regelmäßig mit der Minecraft-Konsole verbinden, erstellen Sie einen Bash-Alias, anstatt diesen langen Befehl einzugeben.