Minecraft je jednou z nejpopulárnějších her všech dob. Je to sandboxová videohra o umisťování bloků a dobrodružstvích.
V tomto tutoriálu projdeme kroky potřebné k instalaci a konfiguraci serveru Minecraft na CentOS 7. 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 naplánovat automatické zálohování serveru pomocí úlohy Cron.
Předpoklady #
Uživatel, pod kterým jste přihlášeni, musí mít oprávnění sudo, aby mohl instalovat balíčky.
Nainstalujte balíčky potřebné k sestavení mcrcon
nástroj:
sudo yum install git
sudo yum group install "Development Tools"
Instalace Java Runtime Environment #
Minecraft vyžaduje Java 8 nebo vyšší. Protože Minecraft Server nepotřebuje grafické uživatelské rozhraní, nainstalujeme bezhlavou verzi openjdk. 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ů.
Instalace Java je docela jednoduchá, stačí spustit:
sudo yum install java-1.8.0-openjdk-headless
Ověřte instalaci vytištěním verze Java:
java -version
openjdk version "1.8.0_191"
OpenJDK Runtime Environment (build 1.8.0_191-b12)
OpenJDK 64-Bit Server VM (build 25.191-b12, mixed mode)
Vytváření uživatele Minecraftu #
Spouštění služeb jako Minecraft pod uživatelem root se z bezpečnostních důvodů nedoporučuje.
Vytvoříme nový systémový uživatel a skupina minecraft
s domovským adresářem /opt/minecraft
na kterém bude spuštěn server Minecraft:
sudo useradd -r -m -U -d /opt/minecraft -s /bin/bash minecraft
Pro tohoto uživatele nebudeme nastavovat heslo. Toto je dobrý bezpečnostní postup, protože tento uživatel se nebude moci přihlásit přes SSH. Chcete-li přejít na minecraft
musíte být přihlášeni k serveru jako root nebo uživatel s právy sudo.
Instalace Minecraftu na CentOS #
Před zahájením procesu instalace se ujistěte, že jste přepnuli na userminecraft
:
sudo su - minecraft
Vytvořte tři nové adresáře v domovském adresáři uživatele pomocí následujícího příkazu:
mkdir -p ~/{backups,tools,server}
backups
adresář bude ukládat zálohu vašeho serveru. Později můžete tento adresář synchronizovat se vzdáleným záložním serverem.tools
adresář bude ukládatmcrcon
klient a zálohovací skript.server
adresář bude obsahovat skutečný Minecraft server a jeho data.
Stažení 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 vestavěný v C.
Stáhneme si zdrojový kód z GitHubu a vytvoříme mcrcon
binární.
Začněte přechodem do ~/tools
a naklonujte Tiiffi/mcrcon
úložiště z GitHubu pomocí následujícího příkazu:
cd ~/tools && git clone https://github.com/Tiiffi/mcrcon.git
Jakmile je úložiště naklonováno, přejděte do jeho adresáře:
cd ~/tools/mcrcon
Sestavte mcrcon
pomocí kompilátoru GCC:
gcc -std=gnu11 -pedantic -Wall -Wextra -O2 -s -o mcrcon mcrcon.c
Po dokončení otestujte zadáním:
./mcrcon -h
Výstup bude vypadat nějak takto:
Usage: mcrcon [OPTIONS]... [COMMANDS]...
Sends rcon commands to Minecraft server.
Option:
-h Print usage
-H Server address
-P Port (default is 25575)
-p Rcon password
-t Interactive terminal mode
-s Silent mode (do not print received packets)
-c Disable colors
-r Output raw packets (debugging and custom handling)
-v Output version information
Server address, port and password can be set using following environment variables:
MCRCON_HOST
MCRCON_PORT
MCRCON_PASS
Command-line options will override environment variables.
Rcon commands with arguments must be enclosed in quotes.
Example:
mcrcon -H my.minecraft.server -p password "say Server is restarting!" save-all stop
mcrcon 0.6.1 (built: May 19 2019 23:39:16)
Report bugs to tiiffi_at_gmail_dot_com or 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 tomto tutoriálu nainstalujeme nejnovější oficiální vanilkový Minecraft server Mojang.
Nejnovější archivní soubor Java serveru Minecraft (JAR) je k dispozici ke stažení ze stránky pro stahování Minecraftu.
V době psaní tohoto článku je nejnovější verze 1.14.1
. Než budete pokračovat dalším krokem, měli byste zkontrolovat stránku stahování, zda neobsahuje novou verzi.
Spusťte následující wget
příkaz ke stažení souboru jar Minecraft v ~/server
adresář:
wget https://launcher.mojang.com/v1/objects/ed76d597a44c5266be2a7fcd77a8270f1f0bc118/server.jar -P ~/server
Konfigurace serveru Minecraft #
Přejděte na ~/server
adresář a spusťte server Minecraft:
cd ~/server
java -Xmx1024M -Xms512M -jar server.jar nogui
Když server spustíte poprvé, provede některé operace a vytvoří server.properties
a eula.txt
soubory a zastávky.
[14:33:44] [main/ERROR]: Failed to load properties from file: server.properties
[14:33:45] [main/WARN]: Failed to load eula.txt
[14:33:45] [main/INFO]: You need to agree to the EULA in order to run the server. Go to eula.txt for more info.
Abyste mohli server provozovat, musíte souhlasit s Minecraft EULA. Otevřete eula.txt
soubor a změňte eula=false
na eula=true
:
nano ~/server/eula.txt
~/server/eula.txt#By changing the setting below to TRUE you are indicating your agreement to our EULA (https://account.mojang.com/documents/minecraft_eula).
#Sun May 19 23:41:45 PDT 2019
eula=true
Zavřete a uložte soubor.
Dále otevřete server.properties
povolte protokol rcon a nastavte heslo rcon:
nano ~/server/server.properties
Vyhledejte následující řádky a aktualizujte jejich hodnoty, jak je uvedeno 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 možných nastaveních naleznete na stránce server.properties.
Vytváření souboru systémové jednotky #
Pro spuštění Minecraftu jako služby vytvoříme nový soubor jednotky Systemd.
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/
:
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 -Xms512M -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 a zavřete soubor a upozorněte systemd, že jsme vytvořili nový soubor jednotky:
sudo systemctl daemon-reload
Nyní můžete spustit server Minecraft spuštěním:
sudo systemctl start minecraft
Při prvním spuštění služby 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: disabled)
Active: active (running) since Sun 2019-05-19 23:49:18 PDT; 9min ago
Main PID: 17356 (java)
CGroup: /system.slice/minecraft.service
└─17356 /usr/bin/java -Xmx1024M -Xms512M -jar server.jar nogui --noconsole
Povolte automatické spuštění služby Minecraft při spouštění:
sudo systemctl enable minecraft
Úprava brány firewall #
Pokud je váš server chráněn firewallem pro přístup k serveru Minecraft z vnějšku vaší místní sítě, musíte otevřít port 25565
:
sudo firewall-cmd --permanent --zone=public --add-port=25565/tcp
sudo firewall-cmd --reload
Konfigurace záloh #
V této sekci vytvoříme záložní skript a cronjob pro automatické zálohování serveru Minecraft.
Začněte přepnutím na minecraft
uživatel:
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
Udělejte skript spustitelný vydáním následujícího chmod
příkaz:
chmod +x /opt/minecraft/tools/backup.sh
Otevřete soubor crontab a vytvořte cronjob, který se bude spouštět jednou denně automaticky v pevně stanovený čas:
crontab -e
Záložní skript spustíme každý den ve 23:00:
0 23 * * * /opt/minecraft/tools/backup.sh
Přístup ke konzole Minecraft #
Pro přístup do Minecraft Console můžete použít mcrcon
utility.
Syntaxe je následující, 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!
>
Pokud se pravidelně připojujete ke konzoli Minecraft, místo psaní tohoto dlouhého příkazu byste měli vytvořit bash alias.