Cambiare la porta RDP su Windows senza riavviare il server

Pubblicato il Aggiornato il 4 min di lettura

Con un breve script PowerShell cambi la porta RDP su Windows, crei la regola firewall corrispondente e riavvii il servizio Desktop remoto, senza dover riavviare il server.

In questa guida ti mostriamo come cambiare la porta del Desktop remoto (RDP) su Windows tramite PowerShell, ad esempio su un Windows Server, come adattare di conseguenza il firewall di Windows e come riavviare il servizio Desktop remoto. Non serve riavviare l'intero server.

Perché conviene cambiare la porta RDP?

La porta predefinita del Desktop remoto è la TCP 3389, ed è proprio quella che i bot automatici scansionano 24 ore su 24. Ogni server Windows raggiungibile da Internet con la porta 3389 aperta raccoglie nel giro di poche ore centinaia di tentativi di accesso falliti. Questo non solo carica inutilmente il sistema: con un criterio di blocco account attivo finisce anche per bloccare il tuo stesso account.

Una porta diversa toglie il tuo server da queste scansioni di massa. Non sostituisce però nessuna delle altre misure di protezione: una password robusta, l'autenticazione a livello di rete (NLA) attiva e una regola firewall che limita RDP al tuo indirizzo IP restano altrettanto importanti.

Requisiti

  • Un sistema Windows con Desktop remoto attivo, ad esempio Windows Server 2022 o Windows Server 2025
  • Diritti di amministratore su quel sistema
  • Una porta libera sopra la 1024, nell'esempio usiamo la 33445
  • L'accesso alla console KVM nella tua area clienti come via di ritorno, nel caso in cui la connessione non funzioni subito dopo la modifica

Aprire PowerShell come amministratore

Per prima cosa apri Windows PowerShell come amministratore. Nel menu Start fai clic con il tasto destro su "Windows PowerShell" e scegli "Esegui come amministratore". Senza diritti elevati lo script non può modificare né il registro di sistema né il firewall.

Lo script PowerShell per cambiare la porta RDP

Incolla lo script seguente in PowerShell. Prima però adatta il numero di porta nella prima riga alla porta che vuoi usare:

# La porta 33445 è solo un esempio. Puoi usare qualsiasi porta libera.

$newPort = 33445
$regPath = 'HKLM:\SYSTEM\CurrentControlSet\Control\Terminal Server\WinStations\RDP-Tcp'
Set-ItemProperty -Path $regPath -Name 'PortNumber' -Value $newPort
if (-not (Get-NetFirewallRule -DisplayName "RDP Port $newPort" -ErrorAction SilentlyContinue)) {
    New-NetFirewallRule `
      -DisplayName "RDP Port $newPort" `
      -Direction Inbound `
      -Protocol TCP `
      -LocalPort $newPort `
      -Action Allow
}
Restart-Service -Name TermService -Force
Write-Host "The RDP port has been changed."

Che cosa fa lo script nel dettaglio

  1. Definisce il nuovo numero di porta nella variabile $newPort.
  2. Imposta su questo valore la voce di registro PortNumber in HKLM:\SYSTEM\CurrentControlSet\Control\Terminal Server\WinStations\RDP-Tcp.
  3. Crea nel firewall di Windows una regola che consente le connessioni TCP in ingresso sulla nuova porta. Se la regola esiste già, non viene creata una seconda volta.
  4. Riavvia il servizio Desktop remoto (TermService), così la modifica ha effetto immediato.

Riconnettersi dopo la modifica

Il riavvio del servizio interrompe subito tutte le connessioni RDP attive. È del tutto normale. Per la nuova connessione, nel client RDP non indichi più soltanto l'indirizzo del server, ma la combinazione di indirizzo e porta:

<Indirizzo-IP>:<Nuova-Porta>

Nel nostro esempio diventa così:

192.168.1.100:33445

Verificare la porta RDP attuale

Quale porta è impostata in questo momento lo leggi in qualsiasi momento direttamente dal registro di sistema:

Get-ItemProperty -Path 'HKLM:\SYSTEM\CurrentControlSet\Control\Terminal Server\WinStations\RDP-Tcp' -Name PortNumber

Che cosa ti resta da fare

  • Adattare il firewall a monte: se davanti al tuo server si trova ancora un firewall esterno, la nuova porta deve essere aperta anche lì. Altrimenti non raggiungi il server, nonostante la regola di Windows sia corretta.
  • Controllare la vecchia regola per la porta 3389: la regola esistente "Desktop remoto" rimane attiva. Disattivala se la porta 3389 non deve più essere raggiungibile.
  • Limitare l'accesso: la soluzione più efficace è limitare RDP nel firewall al tuo indirizzo IP. In questo modo tutti gli attacchi automatici finiscono nel vuoto.
  • Account già bloccato? Se il tuo account utente è già stato bloccato dai tentativi di attacco precedenti, ti aiuta la nostra guida Risolvere l'errore RDP "account bloccato".

Domande frequenti

Devo riavviare il server dopo aver cambiato la porta RDP?
No. Basta riavviare il servizio TermService, ed è esattamente quello che fa lo script in automatico. Tutte le sessioni RDP aperte vengono però interrotte.
Quale porta conviene scegliere per RDP?
Scegli una porta libera sopra la 1024, ad esempio la 33445. Evita le porte già occupate da altri servizi e annota il numero, perché ti serve a ogni connessione.
Come mi collego dopo la modifica?
Nel client RDP indica l'indirizzo del server insieme alla nuova porta, quindi nel formato indirizzo IP:porta. Nel nostro esempio sarebbe 192.168.1.100:33445.
Una porta RDP diversa protegge davvero dagli attacchi?
Una porta modificata toglie il tuo server dalle scansioni di massa che puntano alla porta 3389 e riduce nettamente il numero di tentativi di accesso. Non sostituisce però una password robusta, la Network Level Authentication e una limitazione per indirizzo IP nel firewall.
Dopo la modifica non raggiungo più il server, che cosa posso fare?
Nella maggior parte dei casi manca l'apertura della nuova porta su un firewall a monte. Collegati al server tramite la console KVM nella tua area clienti e verifica lì la regola firewall e il valore della porta salvato nel registro di sistema.

Windows Server Windows RDP Porta RDP Desktop remoto PowerShell Firewall Sicurezza server