Minecraft je jednou z nejpopulárnějších her všech dob. Je to sandboxová videohra, kde hráči prozkoumávají nekonečné světy a staví různé stavby od jednoduchých domů až po tyčící se mrakodrapy.
Tento tutoriál vysvětluje, jak vytvořit server Minecraft na Ubuntu 20.04. Ke spuštění serveru Minecraft a mcrcon
použijeme Systemd nástroj pro připojení k běžící instanci. Také vám ukážeme, jak vytvořit cronjob, který provádí pravidelné zálohování serveru.
Předpoklady #
Podle oficiálních stránek Minecraftu se jako minimální konfigurace pro typické nastavení doporučuje 4GB RAM.
Nainstalujte balíčky potřebné k sestavení mcrcon
nástroj:
sudo apt update
sudo apt install git build-essential
Instalace Java Runtime Environment #
Minecraft vyžaduje Java 8 nebo vyšší. Minecraft Server nepotřebuje grafické uživatelské rozhraní, takže nainstalujeme bezhlavou verzi Javy. Tato verze je vhodnější pro serverové aplikace, protože má méně závislostí a využívá méně systémových prostředků.
Spuštěním následujícího příkazu nainstalujte balíček OpenJRE 11 bez hlavy:
sudo apt install openjdk-11-jre-headless
Ověřte instalaci vytištěním verze Java:
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)
Vytváření uživatele Minecraftu #
Z bezpečnostních důvodů by Minecraft neměl být spuštěn pod uživatelem root. Vytvoříme nový systémový uživatel a skupinu s domovským adresářem /opt/minecraft
. Uživatel bude mít minimální potřebná oprávnění ke spuštění serveru Minecraft:
sudo useradd -r -m -U -d /opt/minecraft -s /bin/bash minecraft
Tomuto uživateli nenastavíme heslo. Tímto způsobem se uživatel nebude moci přihlásit přes SSH a nemůže být ohrožen. Chcete-li přejít na minecraft
uživatel, budete se muset přihlásit k serveru jako root nebo uživatel s právy sudo.
Instalace Minecraftu na Ubuntu #
Před zahájením procesu instalace přepněte na minecraft
uživatel:
sudo su - minecraft
Spusťte následující příkaz k vytvoření tří nových adresářů v domovském adresáři uživatele:
mkdir -p ~/{backups,tools,server}
backups
adresář bude ukládat zálohy vašeho serveru Minecraft. Tento adresář můžete synchronizovat se vzdáleným záložním serverem.tools
adresář bude obsahovatmcrcon
klient a zálohovací skript.server
adresář bude obsahovat skutečný Minecraft server a jeho data.
Stahování a kompilace mcrcon
#
RCON je protokol, který vám umožňuje připojit se k serverům Minecraft a provádět příkazy. Klient mcronis RCON napsaný v C.
Stáhneme si zdrojový kód z GitHubu a vytvoříme mcrcon
binární.
Naklonujte Tiiffi/mcrcon
úložiště z GitHubu do ~/tools/mcron
adresář:
git clone https://github.com/Tiiffi/mcrcon.git ~/tools/mcrcon
Po dokončení přepněte na mcron
adresář a sestavte nástroj:
cd ~/tools/mcrcon
gcc -std=gnu11 -pedantic -Wall -Wextra -O2 -s -o mcrcon mcrcon.c
Po dokončení ověřte, že mcrcon
byl úspěšně zkompilován vytištěním jeho verze:
./mcrcon -v
Výstup bude vypadat nějak takto:
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/
Stahování serveru Minecraft #
Existuje několik modulů serveru Minecraft, jako je Craftbukkitor Spigot, které vám umožňují přidávat funkce (pluginy) na váš server a dále upravovat a vylepšovat nastavení serveru.
V této příručce nainstalujeme nejnovější oficiální vanilkový Minecraft server Mojang. Stejné pokyny platí pro instalaci dalších serverových modů.
Přejděte na stránku pro stahování Minecraftu a získejte odkaz ke stažení nejnovějšího archivního souboru Java serveru Minecraft (JAR). V době psaní tohoto článku je nejnovější verze 1.16
.
Stáhněte si soubor jar v ~/server
adresář s wget
:
wget https://launcher.mojang.com/v1/objects/a0d03225615ba897619220e256a266cb33a44b6b/server.jar -P ~/server
Konfigurace serveru Minecraft #
Po dokončení stahování přepněte na ~/server
adresář a spusťte server Minecraft:
cd ~/server
java -Xmx1024M -Xms1024M -jar server.jar nogui
Při prvním spuštění server provede některé operace, vytvoří server.properties
a eula.txt
soubory a zastávky.
[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.
Chcete-li spustit server, musíte souhlasit s Minecraft EULA, jak je uvedeno ve výstupu výše. Otevřete eula.txt
soubor a změňte eula=false
na eula=true
:
nano ~/server/eula.txt
~/server/eula.txteula=true
Zavřete a uložte soubor.
Dále otevřete server.properties
a povolte protokol rcon a nastavte heslo rcon:
nano ~/server/server.properties
Vyhledejte následující řádky a aktualizujte jejich hodnoty, jak je znázorněno níže:
~/server/server.propertiesrcon.port=25575
rcon.password=strong-password
enable-rcon=true
Nezapomeňte změnit strong-password
na něco bezpečnějšího. Pokud se nechcete k serveru Minecraft připojovat ze vzdálených míst, ujistěte se, že port rcon je blokován vaším firewallem. Zde můžete také upravit výchozí vlastnosti serveru. Další informace o nastavení serveru naleznete na stránce server.properties.
Vytváření souboru systémové jednotky #
Místo ručního spouštění serveru Minecraft vytvoříme soubor jednotky Systemd a spustíme Minecraft jako službu.
Přepněte zpět na uživatele sudo zadáním exit
.
Otevřete textový editor a vytvořte soubor s názvem minecraft.service
v /etc/systemd/system/
adresář:
sudo nano /etc/systemd/system/minecraft.service
Vložte následující konfiguraci:
/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
Upravte Xmx
a Xms
příznaky podle zdrojů vašeho serveru. Xmx
příznak definuje maximální fond přidělení paměti pro virtuální stroj Java (JVM), zatímco Xms
definuje počáteční fond alokace paměti. Také se ujistěte, že používáte správný rcon
port a heslo.
Uložte soubor a znovu načtěte konfiguraci správce systému:
sudo systemctl daemon-reload
Nyní můžete spustit server Minecraft zadáním:
sudo systemctl start minecraft
Při prvním spuštění služba vygeneruje několik konfiguračních souborů a adresářů, včetně světa Minecraftu.
Zkontrolujte stav služby pomocí následujícího příkazu:
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
Nakonec povolte automatické spuštění služby Minecraft při spouštění:
sudo systemctl enable minecraft
Úprava brány firewall #
Ubuntu se dodává s konfiguračním nástrojem brány firewall s názvem UFW. Pokud je ve vašem systému povolena brána firewall a chcete mít přístup k serveru Minecraft zvenčí místní sítě, musíte otevřít port 25565
:
sudo ufw allow 25565/tcp
Konfigurace záloh #
V této sekci vytvoříme záložní skript shellu a cronjob pro automatické zálohování serveru Minecraft.
Přepněte na minecraft
:
sudo su - minecraft
Otevřete textový editor a vytvořte následující soubor:
nano /opt/minecraft/tools/backup.sh
Vložte následující konfiguraci:
/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
Uložte soubor a vytvořte spustitelný skript:
chmod +x /opt/minecraft/tools/backup.sh
Dále vytvořte úlohu cron, která se bude spouštět jednou za den automaticky v pevně stanovený čas.
Otevřete soubor crontab zadáním:
crontab -e
Chcete-li spouštět zálohovací skript každý den ve 23:00, vložte následující řádek:
0 23 * * * /opt/minecraft/tools/backup.sh
Přístup ke konzole Minecraft #
Pro přístup do Minecraft Console použijte mcrcon
užitečnost. Musíte zadat hostitele, port rcon, heslo rcon a použít -t
přepínač, který povolí mcrcon
terminálový režim:
/opt/minecraft/tools/mcrcon/mcrcon -H 127.0.0.1 -P 25575 -p strong-password -t
Logged in. Type "Q" to quit!
>
Při přístupu ke konzole Minecraft ze vzdáleného umístění se ujistěte, že port rcon není blokován.
Pokud se pravidelně připojujete ke konzoli Minecraft, místo psaní tohoto dlouhého příkazu vytvoříte bash alias.