1 16/04/2026 7 min

L’errore 0x3 in Desktop remoto su Windows non indica quasi mai un singolo guasto “di RDP”. Di solito è il punto in cui si manifesta un problema altrove: DNS che risolve l’host sbagliato, porta 3389 filtrata, gateway non raggiungibile, negoziazione TLS/NLA che fallisce, certificato incoerente, policy che blocca l’accesso o servizio lato server in sofferenza. Se lo tratti come un sintomo e non come una causa, arrivi al fix molto più in fretta.

Lo stato atteso è semplice: il client deve risolvere il nome corretto, raggiungere il server o il gateway, aprire la sessione TCP, completare la negoziazione di sicurezza e presentare la schermata di login. Lo stato osservato, invece, è un arresto con 0x3 prima o durante l’avvio della sessione. La diagnosi va quindi fatta per layer, partendo dai controlli che puoi falsificare in pochi minuti e senza cambiare configurazioni.

In pratica conviene ragionare in questo ordine: DNS e routing, connettività verso 3389 o verso il gateway, negoziazione RDP/TLS/NLA, stato del server e del servizio. Se sei in produzione, considera l’impatto come potenzialmente esteso: un errore lato client può nascondere un problema comune a più utenti, soprattutto quando c’è di mezzo un gateway RD, una VPN o un ambiente virtualizzato.

Capire dove si rompe la connessione RDP

Prima di toccare policy o certificati, serve una verifica minima del percorso. Se il nome host non risolve verso l’IP atteso, ogni tentativo successivo è rumore. Se il nome è corretto ma la porta non risponde, il problema è di rete o firewall. Se la porta risponde ma la sessione cade subito, il sospetto si sposta su sicurezza, credenziali memorizzate o stato del servizio RDP.

Un dettaglio utile: l’errore 0x3 può comparire anche quando il server è raggiungibile ma il client non riesce a completare la negoziazione iniziale. Quindi non basta “pingare” la macchina. Il ping può funzionare anche con RDP bloccato, e viceversa un ping assente non prova da solo che RDP sia rotto.

Le cause più probabili, in ordine pratico

Le cause che vedo più spesso sono queste, in ordine di probabilità operativa:

  1. DNS o routing errati: il client raggiunge un IP vecchio, un record duplicato, un VIP non più valido o una rete non instradata.
  2. Porta 3389 o gateway bloccati: firewall locale, firewall perimetrale, ACL, security group, policy del router o del gateway Remote Desktop.
  3. Problema di negoziazione RDP: NLA, TLS, certificato, credenziali salvate, policy di sicurezza o versione del client non allineata al server.
  4. Stato del server degradato: servizio RDP fermo, risorse esaurite, disco pieno, sessioni bloccate o sistema sotto pressione.

Non serve indovinare quale sia il colpevole: serve falsificare le ipotesi una alla volta, con test rapidi e reversibili.

Verifiche immediate da fare prima di cambiare configurazione

Obiettivo: capire quale layer fallisce senza modificare nulla. Se una verifica è KO, hai già una direzione concreta; se è OK, escludi quel ramo e passi al successivo.

  1. Verifica la risoluzione DNS. Se ti connetti a un nome host, controlla che restituisca l’IP atteso.
nslookup server.example.local

Atteso: l’IP restituito è quello corretto. KO: IP vecchio, record duplicato o risposta da un DNS non previsto.

  1. Controlla la raggiungibilità della porta RDP. Questo dice più del ping.
Test-NetConnection server.example.local -Port 3389

Atteso: TcpTestSucceeded : True. KO: porta filtrata, servizio non in ascolto, routing interrotto o gateway non raggiungibile.

  1. Se usi un gateway RD o una VPN, prova il percorso reale. Il problema può essere solo sul segmento di transito.
tracert server.example.local

Atteso: il percorso arriva al segmento corretto. KO: hop che si ferma troppo presto, route sbagliata o uscita su rete non autorizzata.

  1. Apri il client RDP con il nome host e poi con l’IP. Se il nome fallisce ma l’IP no, il problema è quasi certamente DNS o alias.

Atteso: stesso comportamento in entrambi i casi. KO: differenza netta tra nome e IP, spesso legata a DNS, certificato o gateway.

  1. Controlla eventuali credenziali salvate. Un profilo corrotto o credenziali vecchie possono far fallire l’accesso in modo poco chiaro.

Atteso: pulizia del profilo non cambia nulla se il problema è altrove. KO: dopo la rimozione delle credenziali memorizzate la connessione riparte, quindi il blocco era nella cache locale.

Soluzione consigliata passo-passo

Qui conviene partire dall’intervento meno invasivo e più reversibile. Se qualcosa funziona, ti fermi; se non funziona, hai comunque lasciato intatta la parte più delicata.

  1. Correggi prima DNS o indirizzo, se la risoluzione non coincide con l’IP atteso. Aggiorna il record, svuota la cache locale e riprova la connessione.
ipconfig /flushdns

Verifica dopo il flush con nslookup. Se il nome continua a risolvere male, il problema è lato DNS autoritativo o nella configurazione del client.

  1. Se la porta non risponde, verifica il filtro più vicino al servizio. Parti da firewall locale sul server, poi policy di rete, poi eventuale security group o ACL. Non aprire eccezioni ampie senza sapere dove si blocca il traffico.

Artefatto utile: il servizio RDP deve risultare in ascolto sulla porta corretta e il test TCP deve passare. Se hai accesso al server, controlla lo stato del listener e del servizio Remote Desktop Services.

netstat -ano | findstr :3389

Atteso: una riga in ascolto sulla 3389. KO: nessun listener, servizio fermo o binding anomalo.

  1. Se la connessione arriva al server ma cade subito, isola la negoziazione di sicurezza. Qui il sospetto è su NLA, TLS, certificato o credenziali salvate.

Intervento minimo: rimuovi la cache credenziali del client, poi riprova. Se il problema resta, verifica il certificato associato a RDP e la coerenza del nome del server con il certificato presentato. Un certificato scaduto, non valido o emesso per un nome diverso può far fallire la sessione in modo non intuitivo.

Se sei autorizzato a intervenire sul server, controlla anche che le policy di sicurezza non abbiano introdotto un requisito non compatibile con il client in uso. Il punto non è “disattivare la sicurezza”, ma verificare se una policy recente ha cambiato il comportamento atteso.

  1. Se il server è saturo o non risponde bene, verifica lo stato del servizio e delle risorse. Disco pieno, RAM esaurita o troppe sessioni possono presentarsi come errore lato client.

Controlli utili: spazio disco libero, CPU, memoria, numero di sessioni attive e log del servizio RDP. Se il sistema è in stress, la soluzione corretta è liberare risorse, riavviare il servizio solo se necessario e capire la causa del degrado, non limitarsi a riaprire la porta.

Controlli finali / rollback

Dopo ogni modifica, verifica che il comportamento sia cambiato nel punto giusto: risoluzione DNS corretta, porta 3389 raggiungibile, login RDP completato e sessione stabile per alcuni minuti. Se il problema era intermittente, fai almeno due o tre tentativi separati per evitare falsi positivi.

Se hai toccato configurazioni, tieni sempre pronto il rollback: ripristino del record DNS precedente, rimozione dell’eccezione firewall appena aggiunta, annullamento della modifica di policy o ripristino del certificato precedente. Il blast radius va tenuto stretto: cambia un solo elemento per volta e annota cosa hai modificato.

Un controllo finale utile è confrontare il comportamento del client con nome host e con IP, perché ti dice se la correzione ha davvero agito sul layer giusto. Se la connessione funziona solo con l’IP, il problema non è risolto: hai solo aggirato DNS o certificato.

Assunzione operativa: l’errore 0x3 è trattato come incidente di produzione fino a prova contraria; le verifiche suggerite sono reversibili e vanno applicate prima di qualunque intervento più ampio.

Se dopo questi controlli l’errore resta, il passo successivo non è “provare a caso”: serve leggere i log del server RDP, del gateway e del client per capire esattamente in quale fase la sessione si interrompe.