Porte e firewall

Come aprire le porte su Windows Server con PowerShell

Apri TCP e UDP in entrata e in uscita nel firewall di Windows con due righe, verifica che siano a posto e scopri perché a volte continua a non funzionare.

4 min di letturaAggiornato il 19 ottobre 2026

Quando installi un server di gioco su un VPS Windows e nessuno riesce a connettersi, il colpevole è quasi sempre lo stesso: il firewall di Windows sta bloccando la porta. Ecco come aprirla con i comandi, che è più veloce che passare dai menu e, soprattutto, si può copiare e incollare senza sbagliare.

Su un VPS non c'è nessun router da configurare. Lascia perdere il «port forwarding» che vedrai nei tutorial: serve per i server di casa. Il tuo VPS ha un proprio IP pubblico, quindi l'unica cosa che c'è tra i tuoi giocatori e il tuo server è il firewall di Windows.

Il percorso di un giocatore fino al tuo server: il suo PC, Internet, il filtro AntiDDoS, il firewall del VPS e il tuo server in ascolto sulla sua porta
Se anche uno solo di questi passaggi non ha la porta aperta, con il protocollo giusto, il giocatore non entra.

Apri PowerShell come amministratore

Connettiti al tuo VPS con Desktop remoto (qui ti spieghiamo come), fai clic con il tasto destro sul pulsante Start e scegli Terminal (Admin) o Windows PowerShell (Admin). Se nella voce non compare «Admin», i comandi falliranno con un errore di permessi.

Aprire una porta: TCP e UDP, in entrata e in uscita

Questo esempio apre la 30120; sostituisci il numero e il nome con i tuoi. Incolla tutto il blocco in una volta:

$porta = 30120
$nome = "Server di gioco"

New-NetFirewallRule -DisplayName "$nome TCP $porta (entrata)" -Direction Inbound  -Protocol TCP -LocalPort $porta -Action Allow -Profile Any
New-NetFirewallRule -DisplayName "$nome UDP $porta (entrata)" -Direction Inbound  -Protocol UDP -LocalPort $porta -Action Allow -Profile Any
New-NetFirewallRule -DisplayName "$nome TCP $porta (uscita)"  -Direction Outbound -Protocol TCP -LocalPort $porta -Action Allow -Profile Any
New-NetFirewallRule -DisplayName "$nome UDP $porta (uscita)"  -Direction Outbound -Protocol UDP -LocalPort $porta -Action Allow -Profile Any

Cosa fa ogni parte, nel caso tu voglia adattarlo:

  • -Direction Inbound è il traffico che arriva dall'esterno (quello che ti serve davvero) e Outbound quello che esce.
  • -Protocol TCP o UDP. Non sono intercambiabili. Se il tuo gioco usa UDP e apri solo TCP, non entra nessuno: è l'errore più frequente.
  • -LocalPort è la porta su cui è in ascolto il tuo server.
  • -Profile Any applica la regola ai tre profili di rete (dominio, privato e pubblico). Su un VPS la connessione di solito è sul profilo «pubblico», quindi è importante.

Servono le regole in uscita? Su Windows Server il traffico in uscita è consentito di default, quindi di solito no. Sono incluse perché non danno fastidio e perché, se qualcuno ha irrigidito il firewall in precedenza, saranno proprio quelle che mancavano.

Per un intervallo di porte

New-NetFirewallRule -DisplayName "Gioco UDP 7777-7778 (entrata)" -Direction Inbound -Protocol UDP -LocalPort 7777-7778 -Action Allow -Profile Any

Va bene anche un elenco separato da virgole: -LocalPort 27015,27020.

Verificare che siano a posto

Get-NetFirewallRule -DisplayName "*30120*" | ForEach-Object {
    $f = $_ | Get-NetFirewallPortFilter
    [pscustomobject]@{
        Regola     = $_.DisplayName
        Attiva     = $_.Enabled
        Direzione  = $_.Direction
        Azione     = $_.Action
        Protocollo = $f.Protocol
        Porta      = $f.LocalPort
    }
} | Format-Table -AutoSize

Devono comparire tutte e quattro le regole, con Enabled su True e Action su Allow.

Verificare che il tuo server sia in ascolto

Aprire la porta non serve a nulla se dietro non c'è niente in ascolto. Con il server di gioco avviato:

Get-NetTCPConnection -LocalPort 30120 -State Listen
Get-NetUDPEndpoint  -LocalPort 30120

Se non restituiscono nulla, il problema non è il firewall: il tuo server non si è avviato, è andato in crash o è configurato su un'altra porta. Guarda la console del gioco prima di continuare a toccare le regole.

Eliminare una regola

Remove-NetFirewallRule -DisplayName "Server di gioco TCP 30120 (entrata)"

Se preferisci farlo con il mouse

Premi Win + R, digita wf.msc e Invio. Nel riquadro a sinistra scegli Inbound Rules (Regole connessioni in entrata) → New Rule… (Nuova regola…) nella colonna di destra → Port (Porta) → scegli TCP o UDP e scrivi il numero in Specific local ports (Porte locali specifiche) → Allow the connection (Consenti la connessione) → lascia spuntati i tre profili → dagli un nome e termina. Ripeti la procedura per l'altro protocollo: una regola copre solo TCP o UDP, mai entrambi.

Continua a non funzionare

Controlla in quest'ordine, che è quello che esclude prima le cause:

  1. Il server è in ascolto? I due comandi qui sopra. È di gran lunga il problema più comune.
  2. Hai aperto il protocollo giusto? Metà dei giochi usa UDP. Apri TCP e UDP e ti togli il dubbio.
  3. Stai facendo la prova dal server stesso? Dall'interno funziona sempre. Prova da un'altra connessione o chiedi a qualcuno di entrare.
  4. Filtraggio AntiDDoS. Nella pagina del tuo servizio, scheda Sicurezza, ci sono i filtri della rete. Se hai creato filtri a mano, assicurati che includano la porta e il protocollo del tuo gioco.

Non disattivare mai l'intero firewall per «fare una prova». Un VPS con IP pubblico riceve scansioni automatiche pochi minuti dopo l'accensione. Apri le porte che ti servono e lascia chiuso il resto.

Articoli correlati

Torna al centro assistenza

Non trovi quello che cerchi?

Apri un ticket dalla tua area clienti e ti rispondiamo in meno di 5 minuti.