Vai al contenuto
Multigaming

Installare un server Multigaming

Questa guida generica prepara una macchina Linux (Ubuntu o Debian) o Windows Server per ospitare qualsiasi server di gioco: scelta dell'host, utente non root, chiavi SSH, firewall, fail2ban, SteamCMD, Docker, servizio systemd, monitoraggio e backup. Servono 1-2 ore; poi segui la guida all'installazione del tuo gioco.

Ultimo aggiornamento: 09/10/2026

Questa guida generica prepara una macchina Linux (Ubuntu o Debian) o Windows Server per ospitare qualsiasi server di gioco: scelta dell'host, utente non root, chiavi SSH, firewall, fail2ban, SteamCMD, Docker, servizio systemd, monitoraggio e backup. Servono 1-2 ore; poi segui la guida all'installazione del tuo gioco.

Installazione passo dopo passo

  1. Scegli host e piano (vedi «Scegliere un host») e ordina un VPS o dedicato con Ubuntu LTS o Debian stable.

  2. Collegati via SSH con l'account root fornito e aggiorna il sistema.

  3. Crea un utente non root con sudo; non eseguire mai un server di gioco come root.

  4. Installa la tua chiave SSH pubblica e disattiva l'accesso root e con password.

  5. Attiva il firewall ufw: nega tutto in ingresso, consenti SSH e poi le porte del gioco.

  6. Installa fail2ban per bloccare i ripetuti tentativi di accesso SSH.

  7. Installa SteamCMD (giochi Steam) o Docker (immagini della community) in base al gioco.

  8. Installa il server di gioco con la guida del tuo gioco e apri le sue porte (strumento «Verificatore di porte»).

  9. Crea un servizio systemd (o una sessione tmux) per avviare e riavviare automaticamente il server.

  10. Configura monitoraggio (log, risorse) e backup pianificati e testati.

Scegliere host e piano

  • VPS (da pochi euro al mese): sufficiente per un piccolo server; verifica che la CPU non sia troppo condivisa, perché la maggior parte dei giochi dipende da un core veloce.
  • Dedicato: per più server o molti slot; scegli SSD/NVMe e una buona frequenza CPU.
  • Criteri: posizione vicina ai giocatori (latenza), protezione anti-DDoS inclusa, traffico illimitato o quota sufficiente, firewall di rete («security group»), snapshot, supporto. Stima le risorse con il «Calcolatore di risorse del server».

Primo accesso e utente non root

Sostituisci 203.0.113.10 con l'IP del tuo server e gameadmin con il nome che preferisci:

ssh [email protected]
apt update && apt upgrade -y
adduser gameadmin
usermod -aG sudo gameadmin

Chiavi SSH e hardening di sshd

Sul tuo computer: ssh-keygen -t ed25519 poi ssh-copy-id [email protected]. Prova l'accesso con chiave in un secondo terminale PRIMA di disattivare le password, poi crea /etc/ssh/sshd_config.d/99-hardening.conf (Ubuntu 22.04+, Debian 12):

# /etc/ssh/sshd_config.d/99-hardening.conf
PermitRootLogin no
PasswordAuthentication no
PubkeyAuthentication yes

# Apply: sudo sshd -t && sudo systemctl reload ssh

Firewall ufw

Consenti SSH prima di attivare ufw per non restare chiuso fuori. Poi aggiungi le porte del tuo gioco (esempio FiveM: 30120 TCP e UDP; le porte di ogni gioco sono nel Verificatore di porte; lo strumento «Regole firewall» genera i comandi). Replicale nel firewall di rete dell'host (OVH, Hetzner, Scaleway…: «security group»).

sudo ufw default deny incoming
sudo ufw default allow outgoing
sudo ufw allow OpenSSH
sudo ufw allow 30120/tcp
sudo ufw allow 30120/udp
sudo ufw enable
sudo ufw status verbose

fail2ban

fail2ban banna temporaneamente gli indirizzi che falliscono ripetutamente l'accesso. Crea /etc/fail2ban/jail.local (non modificare jail.conf):

# sudo apt install fail2ban
# /etc/fail2ban/jail.local
[sshd]
enabled = true
maxretry = 5
findtime = 10m
bantime = 1h

# sudo systemctl enable --now fail2ban
# sudo fail2ban-client status sshd

SteamCMD (giochi Steam)

Installazione manuale dall'archivio ufficiale di Valve (come gameadmin, non root). Sostituisci APPID con l'ID del server dedicato del tuo gioco (vedi SteamDB o la guida del gioco). Alcuni server richiedono un account Steam invece di «anonymous»: consulta la documentazione del gioco.

sudo apt install -y lib32gcc-s1 curl ca-certificates
mkdir -p ~/steamcmd && cd ~/steamcmd
curl -sqL "https://steamcdn-a.akamaihd.net/client/installer/steamcmd_linux.tar.gz" | tar zxvf -
./steamcmd.sh +force_install_dir ~/server +login anonymous +app_update APPID validate +quit

Docker (immagini della community)

Lo script di convenienza di Docker va bene per i test; in produzione segui l'installazione da repository apt su docs.docker.com. Dopo l'aggiunta al gruppo docker occorre riconnettersi. I container pubblicati con -p aggirano ufw: limitali anche con il firewall dell'host.

curl -fsSL https://get.docker.com -o get-docker.sh
sudo sh get-docker.sh
sudo usermod -aG docker gameadmin
# log out, log back in, then:
docker run --rm hello-world

Servizio systemd

Crea /etc/systemd/system/gameserver.service (adatta User, WorkingDirectory ed ExecStart allo script di avvio del tuo gioco), poi: sudo systemctl daemon-reload && sudo systemctl enable --now gameserver. Log: journalctl -u gameserver -f.

[Unit]
Description=Game server
After=network-online.target
Wants=network-online.target

[Service]
Type=simple
User=gameadmin
WorkingDirectory=/home/gameadmin/server
ExecStart=/home/gameadmin/server/start.sh
Restart=on-failure
RestartSec=10
LimitNOFILE=65536

[Install]
WantedBy=multi-user.target

Alternativa: tmux

tmux mantiene attivo il server dopo la disconnessione SSH e dà accesso alla sua console (utile per i comandi). Stacca con Ctrl+B poi D. Non riavvia il server dopo un crash o un riavvio: in produzione preferisci systemd.

sudo apt install -y tmux
tmux new -s game
# inside tmux: run ./start.sh, then press Ctrl+B then D
tmux attach -t game

Variante Windows Server

Collegati con Desktop remoto (limita la porta 3389 al tuo IP o usa una VPN), installa SteamCMD o il server di gioco in C:\gameserver, apri le porte in PowerShell (amministratore) e avvia il server all'avvio con un'attività pianificata. Pianifica i riavvii di Windows Update per evitare interruzioni impreviste.

New-NetFirewallRule -DisplayName "Game UDP 27015" -Direction Inbound -Protocol UDP -LocalPort 27015 -Action Allow
New-NetFirewallRule -DisplayName "Game TCP 27015" -Direction Inbound -Protocol TCP -LocalPort 27015 -Action Allow
schtasks /Create /TN "GameServer" /TR "C:\gameserver\start.bat" /SC ONSTART /RU SYSTEM /RL HIGHEST /F

Hosting a casa: port forwarding

  • Assegna un IP locale fisso alla macchina (prenotazione DHCP nel router).
  • Nel router, inoltra (NAT) ogni porta del gioco, con il protocollo giusto, verso quell'IP locale.
  • Apri anche il firewall della macchina. Testa dall'esterno (4G/5G), non dalla rete locale.
  • Se il tuo operatore usa CGNAT (nessun IP pubblico dedicato), il port forwarding è impossibile: chiedi un IP pubblico o usa un VPS o un tunnel.
  • Esporre il proprio IP personale comporta rischi (DDoS mirati): un VPS protetto è più sicuro per un server pubblico.

Note sugli attacchi DDoS

  • Il firewall della macchina non basta contro un attacco volumetrico: la protezione deve avvenire a monte, presso l'host.
  • Verifica cosa copre l'anti-DDoS del piano (protocolli UDP/gioco, modalità «gaming»): non è uguale per tutti gli host.
  • Non divulgare l'IP di origine se usi proxy o tunnel; non esporre RCON né console web.

Monitoraggio

Comandi utili: log del servizio, porte realmente in ascolto (confronta con il firewall), carico CPU/RAM e spazio su disco. Per un monitoraggio continuo aggiungi uno strumento come Netdata o Prometheus, con avvisi su RAM e disco.

journalctl -u gameserver -f
sudo ss -lntup
htop
free -h
df -h

Backup

Fai il backup di mondo e configurazione ogni giorno, conserva più versioni e copiale fuori dal server. Lo strumento «Generatore di script di backup» produce uno script completo con retention; esempio minimo (crontab):

30 4 * * * tar -czf /backups/gameserver-$(date +\%Y\%m\%d).tar.gz -C /home/gameadmin server && find /backups -name 'gameserver-*.tar.gz' -mtime +7 -delete

Risoluzione dei problemi

  • I giocatori non riescono a connettersi: controlla il protocollo (UDP vs TCP), ufw, il firewall dell'host e che il server sia davvero in ascolto (sudo ss -lntup).
  • «Permission denied (publickey)»: la chiave non è in ~/.ssh/authorized_keys dell'utente o i permessi sono troppo aperti (chmod 700 ~/.ssh, chmod 600 ~/.ssh/authorized_keys).
  • Il server viene terminato («Killed», OOM): memoria insufficiente; controlla «dmesg | grep -i oom», aggiungi RAM o riduci slot e mod. Un file di swap limita i crash ma rallenta.
  • Il servizio si riavvia in loop: leggi «journalctl -u gameserver -n 100»; controlla percorsi, permessi (il server deve appartenere a gameadmin) e librerie a 32 bit mancanti per SteamCMD.
  • Il server non compare nell'elenco: la porta di query è bloccata o il server non è registrato; aggiungilo su game-rank.com/jeux per essere elencato.

Domande frequenti

VPS o server dedicato per un server di gioco?
Un VPS basta per un piccolo server o per provare. Passa a un dedicato per più server, molti slot o prestazioni stabili (niente vicini rumorosi).
Ubuntu o Debian?
Vanno bene entrambi e i comandi sono quasi identici. Scegli una versione supportata (Ubuntu LTS o Debian stable) e verifica la compatibilità indicata dall'editore del gioco.
Devo davvero disattivare l'accesso root e con password?
È fortemente consigliato: i server esposti ricevono migliaia di tentativi al giorno. Una chiave SSH e un utente non root eliminano gran parte del rischio; tieni una console di emergenza presso l'host.
Docker o installazione diretta?
L'installazione diretta con SteamCMD e systemd è la più semplice e meglio documentata dagli editori. Docker isola e facilita più server su una macchina, ma aggiunge un livello da capire (rete, volumi, firewall).

Strumenti per il tuo server Multigaming

Multigaming
MultigamingAccesso libero
Porte predefinite di FiveM, Minecraft, Rust, DayZ, ARK, Valheim, Palworld, CS2, Arma… e controllo del tuo elenco di porte aperte.
PorteReteApri
Documentazione
Multigaming
MultigamingAccesso libero
Comandi di amministrazione per gioco (Minecraft, Rust, ARK, Palworld, DayZ, CS2…) pronti da copiare, con i tuoi parametri. Nessuna rete.
RCONAmministrazioneApri
Documentazione
Multigaming
MultigamingAccesso libero
Genera cron, timer systemd o attività Windows (schtasks) con avvisi RCON ai giocatori prima di ogni riavvio.
RiavvioPianificazioneApri
Documentazione
Multigaming
MultigamingAccesso libero
Stima CPU, RAM, disco e banda di un server di gioco in base agli slot, con formule visibili e ipotesi modificabili.
DimensionamentoCostoApri
Documentazione
Multigaming
MultigamingAccesso libero
Trasforma un elenco di porte in regole ufw, iptables, nftables o Windows netsh per il tuo server di gioco.
FirewallSicurezzaApri
Documentazione
Multigaming
MultigamingRichiede accesso
Confronta due file di configurazione (INI, CFG, JSON): differenze riga per riga e chiave per chiave, in locale nel browser.
DiffConfigurazioneApri
Documentazione
Multigaming
MultigamingRichiede accesso
Genera uno script di backup bash o PowerShell (tar, 7z, rsync/robocopy) con retention, arresto del servizio e riga cron.
BackupScriptApri
Documentazione