Come creare un server Minecraft su un VPS o server dedicato
Questa guida spiega come installare e configurare un server Minecraft Java Edition sul tuo VPS o server dedicato Linux.
Ordina un Server
Per ospitare il tuo server Minecraft, HostMyServers offre diverse opzioni ottimizzate per il gaming:
- VPS Performance - Ideale per server di gioco
- VPS NVMe - Ottimo rapporto qualità/prezzo
- Server Dedicati Eco - Per server con molti giocatori
- Server Dedicati Performance - Prestazioni massime per grandi server
Prerequisiti
- Accesso SSH come root o utente con privilegi sudo
- Sistema Debian/Ubuntu aggiornato
- Minimo 2 GB di RAM (4 GB consigliati per 10+ giocatori)
- Porta 25565 accessibile (TCP)
- Connessione internet stabile
Configurazione richiesta
| Numero di giocatori | RAM minima | RAM consigliata |
|---|---|---|
| 1-5 | 1 GB | 2 GB |
| 5-10 | 2 GB | 4 GB |
| 10-20 | 4 GB | 6 GB |
| 20+ | 6 GB | 8 GB+ |
Aggiornamento del sistema
sudo apt update && sudo apt upgrade -y
Installazione di Java
Minecraft 1.17+ richiede Java 17 come minimo. Per le versioni recenti (1.20+), Java 21 è consigliato.
Installare Java 21 (consigliato)
sudo apt install -y openjdk-21-jdk
Verificare l'installazione
java --version
Dovresti vedere un output simile a:
openjdk 21.0.x 2024-xx-xx
OpenJDK Runtime Environment (build 21.0.x+xx-xx)
OpenJDK 64-Bit Server VM (build 21.0.x+xx-xx, mixed mode, sharing)
Creazione di un utente dedicato
Per motivi di sicurezza, non eseguire mai il server come root. Crea un utente dedicato:
sudo adduser --system --home /opt/minecraft --shell /bin/bash minecraft
Installazione degli strumenti necessari
sudo apt install -y screen wget curl unzip
- screen: mantiene il server attivo dopo la disconnessione SSH
- wget/curl: per scaricare file
- unzip: per estrarre archivi
Download del server Minecraft
Connettiti come utente minecraft
sudo -u minecraft bash
cd /opt/minecraft
mkdir server
cd server
Scarica il server ufficiale
Ottieni il link dell'ultima versione da minecraft.net/download/server poi:
wget -O server.jar https://piston-data.mojang.com/v1/objects/XXXXXXX/server.jar
Sostituisci l'URL con il link ufficiale della versione desiderata.
Accettazione dell'EULA
Devi accettare il contratto di licenza di Minecraft:
echo "eula=true" > eula.txt
Primo avvio
Avvia il server per la prima volta per generare i file di configurazione:
java -Xms1G -Xmx2G -jar server.jar nogui
Parametri di memoria:
-Xms1G: memoria iniziale (1 GB)-Xmx2G: memoria massima (2 GB)nogui: disabilita l'interfaccia grafica
Ferma il server con stop o Ctrl+C dopo il primo avvio.
Configurazione del server
Modifica il file server.properties secondo le tue esigenze:
nano server.properties
Impostazioni importanti
# Porta del server (predefinita: 25565)
server-port=25565
# Numero massimo di giocatori
max-players=20
# Modalità di gioco (survival, creative, adventure, spectator)
gamemode=survival
# Difficoltà (peaceful, easy, normal, hard)
difficulty=normal
# Messaggio visualizzato nella lista dei server
motd=Il mio Server Minecraft
# Distanza di rendering (ridurre se lag)
view-distance=10
# Attivare la whitelist
white-list=false
# Modalità online (verifica account Mojang)
online-mode=true
# Attivare il PvP
pvp=true
# Protezione spawn (raggio in blocchi)
spawn-protection=16
Configurazione del firewall
Apri la porta Minecraft nel firewall:
Con UFW
sudo ufw allow 25565/tcp
sudo ufw reload
Con iptables
sudo iptables -A INPUT -p tcp --dport 25565 -j ACCEPT
sudo iptables-save | sudo tee /etc/iptables/rules.v4
Avvio con screen
Per mantenere il server attivo dopo la disconnessione SSH:
Avviare il server in screen
screen -S minecraft
cd /opt/minecraft/server
java -Xms1G -Xmx2G -jar server.jar nogui
Staccare la sessione
Premi Ctrl+A poi D per staccare la sessione.
Tornare alla sessione
screen -r minecraft
Elencare le sessioni
screen -ls
Configurazione come servizio systemd
Per l'avvio automatico al boot del server:
Creare il file di servizio
sudo nano /etc/systemd/system/minecraft.service
Contenuto del file:
[Unit]
Description=Minecraft Java Server
After=network.target
[Service]
User=minecraft
WorkingDirectory=/opt/minecraft/server
ExecStart=/usr/bin/java -Xms1G -Xmx2G -jar /opt/minecraft/server/server.jar nogui
ExecStop=/bin/kill -SIGINT $MAINPID
Restart=on-failure
RestartSec=20
StandardInput=null
[Install]
WantedBy=multi-user.target
Attivare e avviare il servizio
sudo systemctl daemon-reload
sudo systemctl enable minecraft.service
sudo systemctl start minecraft.service
Comandi di gestione
# Verificare lo stato
sudo systemctl status minecraft.service
# Fermare il server
sudo systemctl stop minecraft.service
# Riavviare il server
sudo systemctl restart minecraft.service
# Vedere i log
sudo journalctl -u minecraft.service -f
Gestione del server
Comandi console utili
Una volta connesso alla console del server (tramite screen):
| Comando | Descrizione |
|---|---|
stop | Ferma il server correttamente |
save-all | Salva il mondo |
list | Mostra i giocatori connessi |
op <giocatore> | Dà i diritti admin a un giocatore |
deop <giocatore> | Rimuove i diritti admin |
kick <giocatore> | Espelle un giocatore |
ban <giocatore> | Banna un giocatore |
whitelist add <giocatore> | Aggiunge un giocatore alla whitelist |
whitelist remove <giocatore> | Rimuove un giocatore dalla whitelist |
gamemode <modalità> <giocatore> | Cambia la modalità di gioco |
difficulty <livello> | Cambia la difficoltà |
Ottimizzazione delle prestazioni
Script di avvio ottimizzato
Crea uno script di avvio con flag ottimizzati:
nano /opt/minecraft/server/start.sh
#!/bin/bash
cd /opt/minecraft/server
java -Xms2G -Xmx4G \
-XX:+UseG1GC \
-XX:+ParallelRefProcEnabled \
-XX:MaxGCPauseMillis=200 \
-XX:+UnlockExperimentalVMOptions \
-XX:+DisableExplicitGC \
-XX:+AlwaysPreTouch \
-XX:G1NewSizePercent=30 \
-XX:G1MaxNewSizePercent=40 \
-XX:G1HeapRegionSize=8M \
-XX:G1ReservePercent=20 \
-XX:G1HeapWastePercent=5 \
-XX:G1MixedGCCountTarget=4 \
-XX:InitiatingHeapOccupancyPercent=15 \
-XX:G1MixedGCLiveThresholdPercent=90 \
-XX:G1RSetUpdatingPauseTimePercent=5 \
-XX:SurvivorRatio=32 \
-XX:+PerfDisableSharedMem \
-XX:MaxTenuringThreshold=1 \
-jar server.jar nogui
Rendi lo script eseguibile:
chmod +x /opt/minecraft/server/start.sh
Ridurre il lag
In server.properties:
# Ridurre la distanza di rendering
view-distance=8
# Ridurre la distanza di simulazione
simulation-distance=6
# Limitare le entità
max-tick-time=60000
Backup automatico
Script di backup
sudo nano /opt/minecraft/backup.sh
#!/bin/bash
BACKUP_DIR="/opt/minecraft/backups"
SERVER_DIR="/opt/minecraft/server"
DATE=$(date +%Y-%m-%d_%H-%M-%S)
mkdir -p $BACKUP_DIR
# Backup del mondo
tar -czf $BACKUP_DIR/world_$DATE.tar.gz -C $SERVER_DIR world world_nether world_the_end
# Eliminare i backup più vecchi di 7 giorni
find $BACKUP_DIR -name "world_*.tar.gz" -mtime +7 -delete
echo "Backup completato: world_$DATE.tar.gz"
chmod +x /opt/minecraft/backup.sh
Pianificare il backup
sudo crontab -e
Aggiungi:
# Backup giornaliero alle 4 del mattino
0 4 * * * /opt/minecraft/backup.sh
Connessione al server
I giocatori possono connettersi utilizzando:
- Indirizzo:
IP_DEL_TUO_SERVERotuo_dominio.com - Porta:
25565(predefinita)
In Minecraft: Multiplayer → Aggiungi server → Inserisci l'indirizzo
In caso di problemi
Il server non si avvia
- Controlla i log:
tail -f /opt/minecraft/server/logs/latest.log - Verifica che Java sia installato:
java --version - Verifica che l'EULA sia accettato:
cat eula.txt
I giocatori non riescono a connettersi
- Verifica che la porta 25565 sia aperta:
sudo ufw status - Verifica che il server sia in esecuzione:
sudo systemctl status minecraft.service - Testa la porta:
nc -zv IP_SERVER 25565
Problemi di prestazioni
- Aumenta la RAM allocata (
-Xmx) - Riduci
view-distanceinserver.properties - Usa Paper o Spigot invece del server vanilla per migliori prestazioni