Minecraft è uno dei giochi più popolari di tutti i tempi. È un videogioco sandbox in cui i giocatori esplorano mondi infiniti e costruiscono diverse strutture, da semplici case a imponenti grattacieli.
Questo tutorial spiega come creare un server Minecraft su Ubuntu 20.04. Useremo Systemd per eseguire il server Minecraft e mcrcon
utilità per la connessione all'istanza in esecuzione. Ti mostreremo anche come creare un cronjob che esegua backup regolari del server.
Prerequisiti #
Secondo il sito ufficiale di Minecraft, si consigliano 4 GB di RAM come configurazione minima per una configurazione tipica.
Installa i pacchetti richiesti per compilare mcrcon
strumento:
sudo apt update
sudo apt install git build-essential
Installazione di Java Runtime Environment #
Minecraft richiede Java 8 o versioni successive. Il server Minecraft non ha bisogno di un'interfaccia utente grafica, quindi installeremo la versione headless di Java. Questa versione è più adatta per le applicazioni server poiché ha meno dipendenze e utilizza meno risorse di sistema.
Eseguire il comando seguente per installare il pacchetto OpenJRE 11 headless:
sudo apt install openjdk-11-jre-headless
Verifica l'installazione stampando la versione 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)
Creazione utente Minecraft #
Per motivi di sicurezza, Minecraft non dovrebbe essere eseguito con l'utente root. Creeremo un nuovo utente e gruppo di sistema con la directory home /opt/minecraft
. L'utente avrà le autorizzazioni minime necessarie per eseguire il server Minecraft:
sudo useradd -r -m -U -d /opt/minecraft -s /bin/bash minecraft
Non imposteremo una password per questo utente. In questo modo, l'utente non potrà accedere tramite SSH e non potrà essere compromesso. Per passare a minecraft
utente, dovrai accedere al server come root o utente con privilegi sudo.
Installazione di Minecraft su Ubuntu #
Prima di iniziare con il processo di installazione, passa a minecraft
utente:
sudo su - minecraft
Eseguire il comando seguente per creare tre nuove directory all'interno della directory home dell'utente:
mkdir -p ~/{backups,tools,server}
- I
backups
directory memorizzerà i backup del tuo server Minecraft. Puoi sincronizzare questa directory sul tuo server di backup remoto. - Gli
tools
directory conterrà ilmcrcon
client e lo script di backup. - Il
server
la directory conterrà il server Minecraft effettivo e i suoi dati.
Download e compilazione di mcrcon
#
RCON è un protocollo che permette di connettersi ai server Minecraft ed eseguire comandi. client mcronis RCON scritto in C.
Scaricheremo il codice sorgente da GitHub e costruiremo il mcrcon
binario.
Clona il Tiiffi/mcrcon
repository da GitHub al ~/tools/mcron
directory:
git clone https://github.com/Tiiffi/mcrcon.git ~/tools/mcrcon
Al termine, passa a mcron
directory e compilare l'utilità:
cd ~/tools/mcrcon
gcc -std=gnu11 -pedantic -Wall -Wextra -O2 -s -o mcrcon mcrcon.c
Una volta completato, verifica che mcrcon
è stato compilato correttamente stampando la sua versione:
./mcrcon -v
L'output sarà simile a questo:
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/
Download del server Minecraft #
Esistono diverse mod del server Minecraft come Craftbukkitor Spigot che ti consente di aggiungere funzionalità (plugin) sul tuo server e personalizzare ulteriormente e modificare le impostazioni del server.
In questa guida, installeremo l'ultimo server Minecraft vaniglia ufficiale di Mojang. Le stesse istruzioni si applicano per l'installazione di altre mod del server.
Vai alla pagina di download di Minecraft per ottenere il link per il download dell'ultimo file di archivio Java (JAR) del server Minecraft. Al momento della scrittura, l'ultima versione è 1.16
.
Scarica il file jar nel ~/server
directory con wget
:
wget https://launcher.mojang.com/v1/objects/a0d03225615ba897619220e256a266cb33a44b6b/server.jar -P ~/server
Configurazione del server Minecraft #
Una volta completato il download, passa al ~/server
directory e avvia il server Minecraft:
cd ~/server
java -Xmx1024M -Xms1024M -jar server.jar nogui
Quando viene avviato per la prima volta, il server esegue alcune operazioni, crea le server.properties
e eula.txt
file e fermate.
[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.
Per eseguire il server, devi accettare l'EULA di Minecraft, come indicato dall'output sopra. Apri il eula.txt
file e cambia eula=false
a eula=true
:
nano ~/server/eula.txt
~/server/eula.txteula=true
Chiudi e salva il file.
Quindi, apri server.properties
file e abilitare il protocollo rcon e impostare la password rcon:
nano ~/server/server.properties
Individua le seguenti righe e aggiorna i loro valori, come mostrato di seguito:
~/server/server.propertiesrcon.port=25575
rcon.password=strong-password
enable-rcon=true
Non dimenticare di modificare la strong-password
a qualcosa di più sicuro. Se non vuoi connetterti al server Minecraft da postazioni 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 impostazioni del server, visita la pagina server.properties.
Creazione del file Systemd Unit #
Invece di avviare manualmente il server Minecraft, creeremo un file di unità Systemd ed eseguiremo Minecraft come servizio.
Torna al tuo utente sudo digitando exit
.
Apri il tuo editor di testo e crea un file chiamato minecraft.service
nel /etc/systemd/system/
directory:
sudo nano /etc/systemd/system/minecraft.service
Incolla la seguente configurazione:
/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
Modifica il Xmx
e Xms
flag in base alle risorse del tuo server. Il Xmx
flag definisce il pool di allocazione di memoria massimo per una JVM (Java virtual machine), mentre Xms
definisce il pool di allocazione della memoria iniziale. Inoltre, assicurati di utilizzare il rcon
corretto porta e password.
Salva il file e ricarica la configurazione di systemd manager:
sudo systemctl daemon-reload
Ora puoi avviare il server Minecraft digitando:
sudo systemctl start minecraft
La prima volta che avvii il servizio, verranno generati diversi file e directory di configurazione, incluso il mondo Minecraft.
Verifica 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 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
Infine, abilita l'avvio automatico del servizio Minecraft all'avvio:
sudo systemctl enable minecraft
Regolazione del firewall #
Ubuntu viene fornito con uno strumento di configurazione del firewall chiamato UFW. Se il firewall è abilitato sul tuo sistema e desideri accedere al server Minecraft dall'esterno della tua rete locale, devi aprire la porta 25565
:
sudo ufw allow 25565/tcp
Configurazione dei backup #
In questa sezione creeremo uno script di shell di backup e cronjob per eseguire automaticamente il backup del server Minecraft.
Passa a 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:
/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
Salva il file e rendi eseguibile lo script:
chmod +x /opt/minecraft/tools/backup.sh
Quindi, crea un processo cron che verrà eseguito automaticamente una volta al giorno a un'ora prestabilita.
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
Accesso alla console Minecraft #
Per accedere alla Console di Minecraft, usa il mcrcon
utilità. È necessario specificare l'host, la porta rcon, la password rcon e utilizzare -t
interruttore che abilita il mcrcon
modalità terminale:
/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 Minecraft da una postazione remota, assicurati che la porta rcon non sia bloccata.
Se ti connetti regolarmente alla console di Minecraft, invece di digitare questo lungo comando, crei un alias bash.