Vai al contenuto
Counter-Strike 2

Installare un server Counter-Strike 2

Il server dedicato CS2 si installa con SteamCMD (app 730, circa 60 GB) e si avvia con cs2.sh. Prevedi una VPS Ubuntu recente o un PC Windows, mezz'ora di installazione e un token server (GSLT) per comparire online. Fonti consultate: tutorial Hetzner Community, guide di provider e wiki Valve (non raggiungibile in fase di stesura, da verificare).

Ultimo aggiornamento: 09/10/2026

Il server dedicato CS2 si installa con SteamCMD (app 730, circa 60 GB) e si avvia con cs2.sh. Prevedi una VPS Ubuntu recente o un PC Windows, mezz'ora di installazione e un token server (GSLT) per comparire online. Fonti consultate: tutorial Hetzner Community, guide di provider e wiki Valve (non raggiungibile in fase di stesura, da verificare).

Installazione passo dopo passo

  1. Prepara la macchina: Ubuntu 24.04 (o Windows), almeno 4 vCPU, 8 GB di RAM e 80 GB di disco per 10-32 giocatori.

  2. Crea un utente non root (steam) e installa SteamCMD con le librerie a 32 bit.

  3. Crea un token GSLT per l'AppID 730 su steamcommunity.com/dev/managegameservers (un token per server).

  4. Scarica il server con app_update 730 validate (10-30 minuti).

  5. Crea il link steamclient.so dell'SDK a 64 bit e avvia il server con ./cs2.sh dalla cartella game/.

  6. Metti server.cfg in game/csgo/cfg/ (vedi lo strumento «Generatore di server.cfg per CS2»).

  7. Apri 27015 (UDP e TCP), 27005 (UDP) e 27020 (UDP) in ufw, nel firewall del provider e nel router.

  8. Connettiti da CS2 con la console di gioco: connect IP:27015.

  9. Crea un servizio systemd per l'avvio automatico e pianifica backup e aggiornamenti.

Prerequisiti

  • Sistema: Ubuntu 24.04 (usato dal tutorial Hetzner) o Windows 10/11 e Windows Server.
  • Risorse: 4 vCPU, 8 GB di RAM, 80 GB di disco per 10-32 giocatori (raccomandazione del tutorial Hetzner); il download pesa circa 60 GB.
  • Account: un account Steam per creare il token GSLT (AppID 730). Senza token il server resta limitato alla rete locale.
  • Attenzione: il vecchio server CS:GO usava l'app 740; CS2 usa la 730.

Installazione locale su Windows

Scarica SteamCMD dalla documentazione ufficiale di Valve, decomprimilo in C:\steamcmd e installa il server. Il percorso esatto di cs2.exe su Windows non è stato confermato da una fonte ufficiale: individualo nella cartella game\bin dopo l'installazione, avvialo con -dedicated -console e prova con connect 127.0.0.1 nel gioco.

cd C:\steamcmd
steamcmd +force_install_dir C:\cs2-server +login anonymous +app_update 730 validate +quit

VPS Linux: utente e dipendenze

Comandi del tutorial Hetzner Community (Ubuntu 24.04). L'account steam non ha bisogno di sudo in produzione: rimuovi quel diritto a installazione finita.

sudo apt update && sudo apt upgrade -y
sudo adduser steam
sudo usermod -aG sudo steam
su - steam
sudo apt-get install lib32gcc-s1 -y
sudo add-apt-repository multiverse
sudo dpkg --add-architecture i386
sudo apt update -y
sudo apt install steamcmd -y

VPS Linux: download del server

Il tutorial Hetzner raccomanda anche di accedere una volta con un account Steam dedicato (steamcmd +login TUO_ACCOUNT); l'installazione anonima funziona in diverse guide, prova cosa funziona per te.

mkdir -p ~/cs2-server && cd ~/cs2-server
steamcmd +login anonymous +force_install_dir ~/cs2-server +app_update 730 validate +quit

# SDK 64 bits (ignorer si le lien existe déjà)
mkdir -p ~/.steam/sdk64
ln -s ~/.local/share/Steam/steamcmd/linux64/steamclient.so ~/.steam/sdk64/steamclient.so

VPS Linux: primo avvio

Avvia sempre ./cs2.sh (non il binario direttamente) dalla cartella game/. Sostituisci YOUR_GSLT_TOKEN. Modalità: casual 0/0, competitive 0/1, deathmatch 1/2 (+game_type/+game_mode). Il flag -insecure disattiva VAC: riservalo ai server privati. Per i test usa screen o tmux (screen -S cs2).

cd ~/cs2-server/game
./cs2.sh -dedicated -port 27015 -maxplayers 10 \
  +hostname "My CS2 Server" +map de_dust2 \
  +game_type 0 +game_mode 1 \
  +sv_setsteamaccount YOUR_GSLT_TOKEN

Porte da aprire e firewall Linux (ufw)

Per cambiare la porta di gioco, aggiungi -port N alla riga di avvio (una porta diversa per istanza) e aprila al posto di 27015.

Apri solo ciò che serve e prova da un'altra connessione (non dal server stesso).

  • 27015/udp: traffico di gioco
  • 27015/tcp: RCON e ping
  • 27005/udp: comunicazione client
  • 27020/udp: SourceTV (registrazione demo)
  • Altre porte citate dal tutorial Hetzner: 27036/tcp (Steam Remote Play), 3478/udp (NAT traversal), 4379-4380/udp (matchmaking), 22/tcp (SSH).
sudo ufw allow OpenSSH
sudo ufw allow 27015/udp
sudo ufw allow 27015/tcp
sudo ufw allow 27005/udp
sudo ufw allow 27020/udp
sudo ufw enable
sudo ufw status

Firewall di Windows (netsh)

In un prompt dei comandi amministratore crea una regola in entrata per porta (oppure apri «Windows Defender Firewall con sicurezza avanzata»).

netsh advfirewall firewall add rule name="Counter-Strike 2 27015 UDP" dir=in action=allow protocol=UDP localport=27015
netsh advfirewall firewall add rule name="Counter-Strike 2 27015 TCP" dir=in action=allow protocol=TCP localport=27015
netsh advfirewall firewall add rule name="Counter-Strike 2 27005 UDP" dir=in action=allow protocol=UDP localport=27005
netsh advfirewall firewall add rule name="Counter-Strike 2 27020 UDP" dir=in action=allow protocol=UDP localport=27020

Firewall del provider e port forwarding (router)

Presso un provider (OVH, Hetzner, Scaleway…) apri le stesse porte anche nel firewall o «security group» del provider: ufw non basta se esiste un firewall a monte. In casa crea nel router un port forwarding (NAT) di ogni porta verso l'IP locale della macchina (fisso o riservato via DHCP).

Test: da un'altra connessione, aggiungi il server come «IP:porta» nel browser server di Counter-Strike 2 o in console. Se fallisce, controlla in ordine: servizio avviato, firewall locale, firewall del provider, port forwarding NAT.

Avvio automatico: servizio systemd

Crea /etc/systemd/system/cs2.service (come root) e abilitalo. Adatta utente e percorsi; leggi i log con journalctl -u cs2 -f.

[Unit]
Description=Counter-Strike 2 dedicated server
After=network-online.target
Wants=network-online.target

[Service]
User=steam
WorkingDirectory=/home/steam/cs2-server/game
ExecStart=/home/steam/cs2-server/game/cs2.sh -dedicated -port 27015 -maxplayers 10 +game_type 0 +game_mode 1 +map de_dust2 +sv_setsteamaccount YOUR_GSLT_TOKEN
Restart=on-failure
RestartSec=10

[Install]
WantedBy=multi-user.target

# then:
# sudo systemctl daemon-reload
# sudo systemctl enable --now cs2

Windows: attività pianificata all'avvio

Su Windows un'attività pianificata avvia lo script .bat all'avvio del sistema (esegui il comando in un prompt amministratore).

schtasks /Create /TN "Counter-Strike 2 server" /TR "C:\cs2-server\start-cs2.bat" /SC ONSTART /RU SYSTEM /RL HIGHEST

Aggiornamenti, backup e riavvii pianificati

Ferma il servizio prima di aggiornare (stesso comando SteamCMD dell'installazione), esegui backup regolari di configurazione e dati e pianifica un riavvio giornaliero se il server peggiora nel tempo.

sudo systemctl stop cs2
steamcmd +force_install_dir /home/steam/cs2-server +login anonymous +app_update 730 validate +quit
sudo systemctl start cs2

# backup
tar czf ~/cs2-$(date +%F).tar.gz -C /home/steam/cs2-server game/csgo/cfg game/csgo/gamemodes_server.txt

# daily restart at 05:00 (root crontab: sudo crontab -e)
0 5 * * * systemctl restart cs2

Registrare e trovare il tuo server

Aggiungi il server su https://game-rank.com/jeux/counter-strike per renderlo visibile alla community. In gioco usa il browser server o connettiti direttamente con IP:porta.

Risoluzione problemi: errori frequenti

  • Il server parte in modalità LAN o invisibile: token GSLT assente, non valido o riusato su un altro server. Soluzione: crea un token dedicato a questo server per l'AppID 730 e passalo con +sv_setsteamaccount.
  • Il server va in crash o non trova steamclient.so: manca il link dell'SDK a 64 bit. Soluzione: crea ~/.steam/sdk64/steamclient.so come indicato ed esegui ./cs2.sh da game/.
  • Server non raggiungibile dall'esterno: il servizio gira ma nessuno si connette. Causa: porta chiusa (ufw, firewall del provider o NAT mancante). Soluzione: apri le porte elencate sui tre livelli e prova da un'altra connessione.
  • Porta già in uso all'avvio: un'altra istanza occupa la porta. Soluzione: elenca i processi con ss -lunp | grep 27015, ferma la vecchia istanza o assegna una porta diversa con -port a ogni server.
  • SteamCMD «Failed to install app» o download bloccato: causa frequente, disco pieno o permessi insufficienti sulla cartella. Soluzione: controlla df -h e il proprietario della cartella, poi ripeti il comando con validate (anche più volte).

Domande frequenti

CS2 usa ancora comandi e file di CS:GO?
In parte: la cartella di config resta game/csgo/cfg/ e la maggior parte dei cvar mp_* esiste, ma il server è un'altra applicazione (730) e alcune cose (plugin SourceMod, API Workshop di CS:GO) non si trasferiscono così come sono. Nel dubbio, prova sulla tua build.
Quanti giocatori e quale macchina per un server CS2?
Il tutorial Hetzner punta a 10-32 giocatori con 4 vCPU, 8 GB di RAM e 80 GB di disco; aggiungi -maxplayers alla riga di avvio per limitare gli slot.
Posso avviare il server come root?
Sconsigliato: crea un utente dedicato (ad es. steam) senza diritti di amministratore e installa e avvia il server con quello. Una falla nel server o in un plugin non compromette così l'intera macchina.
Il mio server Counter-Strike 2 non compare nell'elenco: cosa controllare?
Controlla prima che le porte siano aperte a ogni livello, che il server non sia in modalità LAN (sv_lan 0) e, se il gioco lo richiede, che sia fornito un token server (GSLT) valido. L'elenco Steam può impiegare qualche minuto ad aggiornarsi; nel frattempo connettiti con IP:porta.

Strumenti per il tuo server Counter-Strike 2

Counter-Strike 2
Counter-Strike 2Accesso libero
Crea il server.cfg del tuo server Counter-Strike 2 e il comando di avvio: modalità, round, denaro, bot e password.
ConfigurazioneAvvioApri
Documentazione
Counter-Strike 2
Counter-Strike 2Richiede accesso
Elenca le mappe Workshop di CS2: parametro +host_workshop_map, gruppo mappe gamemodes_server.txt e comandi ds_workshop_changelevel.
WorkshopMappeApri
Documentazione