Introduzione
Minecraft è uno dei giochi più popolari di tutti i tempi. È un videogioco sandbox, che consente ai suoi giocatori di esplorare mondi infiniti e costruire di tutto, dalle semplici case ai grandi grattacieli.
Questo tutorial copre l'installazione e la configurazione di Minecraft Server su Ubuntu 18.04. Useremo Systemd per eseguire il server Minecraft e l'utilità mcrcon
per la connessione all'istanza in esecuzione. Ti mostreremo anche come creare un cronjob che esegue backup regolari del server.
Le stesse istruzioni valgono per Ubuntu 16.04 e qualsiasi distribuzione basata su Ubuntu, inclusi Linux Mint e Elementary OS.
Prerequisiti
L'utente che ha effettuato l'accesso deve disporre dei privilegi di sudo per poter installare i pacchetti.
Installa i pacchetti richiesti per compilare lo strumento mcrcon
:
sudo apt update
sudo apt install git build-essential
Installare Java Runtime Environment
Minecraft richiede Java 8 o versioni successive. Poiché il server Minecraft non necessita di un'interfaccia utente grafica, installeremo la versione headless di JRE. Questa versione è più adatta per le applicazioni server poiché ha meno dipendenze e utilizza meno risorse di sistema.
Installa il pacchetto OpenJRE 8 senza testa eseguendo:
sudo apt install openjdk-8-jre-headless
Verifica l'installazione stampando la versione java:
java -version
openjdk version "1.8.0_242"
OpenJDK Runtime Environment (build 1.8.0_242-8u242-b08-0ubuntu3~18.04-b08)
OpenJDK 64-Bit Server VM (build 25.242-b08, mixed mode)
Creare l'utente Minecraft
Per motivi di sicurezza, Minecraft non deve essere eseguito con l'utente root. Noi creare un nuovo utente di sistema e di gruppo con la home directory /opt/minecraft
che verrà eseguito il server Minecraft:
sudo useradd -r -m -U -d /opt/minecraft -s /bin/bash minecraft
Non imposteremo una password per questo utente. Questa è una buona pratica di sicurezza perché questo utente non sarà in grado di accedere tramite SSH. Per passare all'utente minecraft
dovrai accedere al server come root o utente con privilegi sudo.
Installare Minecraft su Ubuntu
Prima di iniziare con il processo di installazione, assicurati di passare all'utente minecraft
.
sudo su - minecraft
Eseguire il comando seguente per creare tre nuove directory all'interno della home directory dell'utente:
mkdir -p ~/{backups,tools,server}
- La directory
backups
memorizzerà il backup del server. Successivamente è possibile sincronizzare questa directory con il server di backup remoto. - La directory
tools
memorizzerà il clientmcrcon
e lo script di backup. - La directory
server
conterrà l'attuale server Minecraft e i suoi dati.
Download e compilazione di mcrcon
RCON è un protocollo che ti consente di connetterti ai server Minecraft ed eseguire comandi. mcron è un client RCON incorporato in C.
Scaricheremo il codice sorgente da GitHub e creeremo il binario mcrcon
.
Inizia navigando nella directory ~/tools
e clona il repository Tiiffi/mcrcon
da GitHub usando il seguente comando:
cd ~/tools && git clone https://github.com/Tiiffi/mcrcon.git
Al termine della clonazione, passare alla directory del repository con il comando cd:
cd ~/tools/mcrcon
Inizia la compilazione dell'utility mcrcon
digitando:
gcc -std=gnu11 -pedantic -Wall -Wextra -O2 -s -o mcrcon mcrcon.c
Una volta completato, puoi testarlo digitando:
./mcrcon -h
L'output sarà simile al seguente:
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/
Download di Minecraft Server
Esistono diverse mod del server Minecraft come Craftbukkit o Spigot che ti consentono di aggiungere funzionalità (plugin) sul tuo server e personalizzare ulteriormente e modificare le impostazioni del server. In questa guida, installeremo l'ultimo server Minecraft vanilla ufficiale di Mojang.
Il file di archivio Java (JAR) del server Minecraft più recente è disponibile per il download dalla pagina di download di Minecraft.
Al momento della scrittura, l'ultima versione è 1.52.2
. Prima di continuare con il passaggio successivo, è necessario controllare la pagina di download per una nuova versione.
Esegui il comando wget
seguente per scaricare il file jar di Minecraft nella directory ~/server
:
wget https://launcher.mojang.com/v1/objects/bb2b6b1aefcd70dfd1892149ac3a215f6c636b07/server.jar -P ~/server
Configurare Minecraft Server
Una volta completato il download, entra nella directory~/server
e avvia il server Minecraft:
cd ~/server
java -Xmx1024M -Xms512M -jar server.jar nogui
Quando si avvia il server per la prima volta esegue alcune operazioni e crea i file server.properties
e eula.txt
.
[14:32:27] [main/ERROR]: Failed to load properties from file: server.properties
[14:32:27] [main/WARN]: Failed to load eula.txt
[14:32:27] [main/INFO]: You need to agree to the EULA in order to run the server. Go to eula.txt for more info.
Come si può vedere dall'output sopra, per eseguire il server è necessario accettare l'EULA di Minecraft. Apri il file eula.txt
e modifica eula=false
in eula=true
:
nano ~/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).
#Sat Feb 15 14:32:27 CET 2020
eula=true
Successivamente, è necessario modificare il file server.properties
per abilitare il protocollo rcon e impostare la password rcon. Apri il file usando il tuo editor di testo:
nano ~/server/server.properties
Individua le seguenti righe e aggiorna i loro valori come mostrato di seguito:
rcon.port=25575
rcon.password=strong-password
enable-rcon=true
Non dimenticare di cambiare strong-password
in qualcosa di più sicuro. Se non vuoi connetterti al server Minecraft da posizioni remote, assicurati che la porta rcon sia bloccata dal tuo firewall.
Mentre sei qui, puoi anche regolare le proprietà predefinite del server. Per ulteriori informazioni sulle possibili impostazioni, visitare la pagina server.properties .
Creare il file di unità Systemd
Per eseguire Minecraft come servizio creeremo un nuovo file di unità Systemd.
Torna all'utente sudo digitando exit
:
exit
Apri il tuo editor di testo e crea un file chiamato minecraft.service
in /etc/systemd/system/
:
sudo nano /etc/systemd/system/minecraft.service
Incolla la seguente configurazione:
[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
Modificare i flag Xmx
e in Xms
base alle risorse del server. Il flag Xmx
definisce il pool di allocazione di memoria massimo per una macchina virtuale Java (JVM), mentre Xms
definisce il pool di allocazione di memoria iniziale. Inoltre, assicurati di utilizzare la porta rcon
e la password corrette .
Salvare e chiudere il file e ricaricare la configurazione del gestore di sistema:
sudo systemctl daemon-reload
Ora puoi avviare il server Minecraft eseguendo:
sudo systemctl start minecraft
La prima volta che avvierai il servizio genererà diversi file e directory di configurazione incluso il mondo Minecraft.
Controlla lo stato del servizio con il seguente comando:
sudo systemctl status minecraft
● minecraft.service - Minecraft Server
Loaded: loaded (/etc/systemd/system/minecraft.service; disabled; vendor preset: enabled)
Active: active (running) since Sat 2020-02-15 14:34:46 CET; 3s ago
Main PID: 6014 (java)
Tasks: 10 (limit: 2298)
CGroup: /system.slice/minecraft.service
└─6014 /usr/bin/java -Xmx1024M -Xms512M -jar server.jar nogui
Infine, abilita il servizio Minecraft per essere avviato automaticamente all'avvio:
sudo systemctl enable minecraft
Regolare il firewall
Se il tuo server è protetto da un firewall e desideri accedere al server Minecraft dall'esterno della tua rete locale, devi aprire la porta 25565
.
Per consentire il traffico sulla porta Minecraft predefinita 25565
, digitare il comando seguente:
sudo ufw allow 25565/tcp
Configurare il backup
In questa sezione, creeremo uno script della shell di backup e cronjob per eseguire automaticamente il backup del server Minecraft.
Inizia passando all'utente minecraft
:
sudo su - minecraft
Apri il tuo editor di testo e crea il seguente file:
nano /opt/minecraft/tools/backup.sh
Incolla la seguente configurazione:
#!/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_%R).tar.gz /opt/minecraft/server
rcon "save-on"
## Delete older backups
find /opt/minecraft/backups/ -type f -mtime +7 -name '*.gz' -delete
Salvare il file e rendere eseguibile lo script eseguendo il comando chmod
seguente:
chmod +x /opt/minecraft/tools/backup.sh
Quindi, crea un cron job che verrà eseguito una volta al giorno automaticamente a un orario fisso.
Apri il file crontab digitando:
crontab -e
Per eseguire lo script di backup ogni giorno alle 23:00, incolla la seguente riga:
0 23 * * * /opt/minecraft/tools/backup.sh
Salva e chiudi il file.
Accedere alla console di Minecraft
Verificare lo stato della creazione del server di Minecraft con il seguente comando:
sudo systemctl status minecraft
Dovresti ricevere un messaggio di ouput simile al seguente:
...
Feb 15 14:38:01 TEST-SERVER-1 java[6014]: [14:38:01] [Server-Worker-1/INFO]: Preparing spawn area: 98%
Feb 15 14:38:02 TEST-SERVER-1 java[6014]: [14:38:02] [Server-Worker-1/INFO]: Preparing spawn area: 99%
Attendi che l'area di spwn sia pronta al 100%.
Per accedere alla console di Minecraft è possibile utilizzare l'utility mcrcon
. La sintassi è la seguente, è necessario specificare l'host, la porta rcon, la password rcon e utilizzare lo switch -t
che abilita la modalità terminale mcrcon
:
/opt/minecraft/tools/mcrcon/mcrcon -H 127.0.0.1 -P 25575 -p strong-password -t
Logged in. Type "Q" to quit!
>
Quando accedi alla console di Minecraft da una posizione remota, assicurati che la porta rcon non sia bloccata.
Se ti connetti regolarmente alla console di Minecraft, invece di digitare questo comando lungo dovresti creare un alias bash.
Conclusione
Hai installato correttamente il server Minecraft sul tuo sistema Ubuntu 18.04 e impostato un backup giornaliero.