Desktop remoto Ubuntu senza monitor: guida GNOME
Su Ubuntu 26.04 xrdp non avvia più GNOME. Configura GNOME Remote Login via SSH e accedi alla porta 3389 con tunnel SSH o Tailscale.
Come usare il desktop remoto Ubuntu senza monitor
Per usare il desktop remoto Ubuntu senza monitor, abilita GNOME Remote Desktop nella modalità Remote Login. Remote Login avvia una propria sessione GNOME dalla schermata di accesso, quindi il computer non richiede né uno schermo né un utente già autenticato. Configura il servizio una volta tramite SSH con grdctl, quindi connettiti da qualsiasi client RDP (remote desktop protocol) sulla porta 3389.
Questa guida è destinata a un computer con Ubuntu Desktop senza monitor collegato, ad esempio un home server o un mini PC. La procedura descrive prima Ubuntu 26.04 LTS, quindi le differenze per Ubuntu 24.04 LTS. Se il computer è un VPS (virtual private server) con un desktop XFCE leggero, xrdp è ancora adatto a questo scenario. La guida desktop remoto su un VPS Linux con xrdp e XFCE descrive la procedura. Questa guida non la ripete.
Perché xrdp non funziona con GNOME su Ubuntu 26.04
Molte guide meno recenti installano xrdp. Su Ubuntu 26.04 questo non fornisce un desktop GNOME. La causa è indicata nelle note di rilascio di 26.04: GNOME Shell non può più essere eseguito come sessione X.org e la sessione Ubuntu Desktop ora usa solo il back-end Wayland. xrdp funziona solo con Xorg, quindi non ha alcuna sessione GNOME da avviare.
Lo script di installazione di xrdp, molto diffuso, di c-nergy.be indica lo stesso comportamento. La versione 1.6, pubblicata a maggio 2026, non installa il pacchetto xrdp quando rileva un desktop GNOME senza supporto X11. L'autore specifica che Ubuntu 26.04 con GNOME non è supportato e indirizza gli utenti GNOME a GNOME Remote Desktop, integrato nel sistema.
Gli altri ambienti desktop offrono ancora una possibilità di scelta. Le note di rilascio indicano che KDE su X11, Xfce, MATE, i3 e molti altri possono ancora avviare una sessione X.org; inoltre, le applicazioni X11 continuano a funzionare tramite XWayland. Per il resto del ciclo di rilascio, consulta le modifiche introdotte in Ubuntu 26.04.1 e quando effettuare l'aggiornamento.
Desktop Sharing o Remote Login: quale serve?
GNOME Remote Desktop è il server RDP incluso in GNOME. Il progetto upstream descrive tre modalità di esecuzione: assistenza remota, modalità headless per un singolo utente e accesso remoto headless. L'applicazione Impostazioni ne mostra due con due nomi distinti.
- Desktop Sharing è l'assistenza remota. Mostra una sessione già in esecuzione sulla macchina. Vedi la stessa schermata che vedrebbe una persona seduta davanti al computer.
- Remote Login è l'accesso remoto headless. Il client RDP mostra prima la schermata di accesso di GDM (GNOME display manager), dove accedi a una nuova sessione. Remote Login funziona solo tramite RDP, non tramite VNC (virtual network computing).
Per una macchina senza monitor, la modalità da usare è Remote Login. Desktop Sharing richiede una sessione già esistente. Dopo un riavvio, nessun utente ha effettuato l'accesso e quindi Desktop Sharing non ha alcuna sessione da mostrare.
Desktop Sharing presenta anche un'altra limitazione. Le note di configurazione upstream indicano che, nella modalità di assistenza remota, il blocco dello schermo chiude anche la connessione remota. Di conseguenza, quando la sessione sulla macchina si blocca, anche la connessione Desktop Sharing viene interrotta. Remote Login non dipende da una sessione locale ed è quindi adatto a una macchina davanti alla quale non è presente alcun utente.
Le due modalità usano inoltre porte diverse. La guida di GNOME indica la porta 3389 per Remote Login. Desktop Sharing usa quindi un'altra porta, ad esempio 3390; potrebbe essere necessario specificare questa porta nel client. La versione 46 del server ha aggiunto la gestione di questo conflitto specifico tra il daemon di sistema e il daemon per utente.
Verificare la versione installata
lsb_release -ds
apt-cache policy gnome-remote-desktopapt-cache policy dovrebbe mostrare una riga Installed: con una versione. Al 1 novembre 2026, Launchpad elenca 50.2-0ubuntu0.1 nel pocket degli aggiornamenti per 26.04 e 46.3-0ubuntu1.2 per 24.04. Se Installed: restituisce (none), installare il pacchetto:
sudo apt update
sudo apt install -y gnome-remote-desktopLa versione principale è importante perché grdctl è cambiato tra la 46 e la 50. I passaggi seguenti evidenziano ogni differenza.
Configurare l'accesso remoto tramite SSH su Ubuntu 26.04
È necessario poter accedere al server tramite SSH. Se non esegue ancora un server SSH, collegarsi una volta alla console e eseguire sudo apt install -y openssh-server. Se è già disponibile una console, è possibile usare anche il percorso Impostazioni nella sezione successiva e saltare questi comandi.
Passaggio 1: verificare l'account di servizio
grdctl --system non modifica le impostazioni come utente corrente. Il sorgente 50.2 mostra che viene eseguito nuovamente tramite pkexec --user gnome-remote-desktop, quindi ogni file che legge deve essere leggibile da quell'account. Verificare che l'account esista:
id gnome-remote-desktopDovrebbe essere visualizzata una riga uid=. no such user indica che il pacchetto non è installato.
Passaggio 2: creare un certificato TLS
RDP in GNOME Remote Desktop richiede una chiave e un certificato TLS (transport layer security). La documentazione upstream indica di creare i file per il servizio di sistema come utente gnome-remote-desktop. Questo è il comando OpenSSL della documentazione upstream, eseguito da quell'utente:
sudo -u gnome-remote-desktop sh -c 'mkdir -p ~gnome-remote-desktop/.local/share/gnome-remote-desktop && openssl req -new -newkey rsa:4096 -days 720 -nodes -x509 -subj /C=SE/ST=NONE/L=NONE/O=GNOME/CN=gnome.org -out ~gnome-remote-desktop/.local/share/gnome-remote-desktop/tls.crt -keyout ~gnome-remote-desktop/.local/share/gnome-remote-desktop/tls.key'Il certificato è valido per 720 giorni. Annotare la data di scadenza, perché sarà necessario creare un nuovo certificato prima di tale data. Indicare quindi entrambi i file al daemon di sistema:
sudo grdctl --system rdp set-tls-key ~gnome-remote-desktop/.local/share/gnome-remote-desktop/tls.key
sudo grdctl --system rdp set-tls-cert ~gnome-remote-desktop/.local/share/gnome-remote-desktop/tls.crtPassaggio 3: impostare le credenziali RDP
Si tratta di un nome utente e una password RDP distinti. Non corrispondono all'account Linux. Un utente remoto inserisce prima questa coppia condivisa, quindi accede alla schermata di login GDM con il proprio account Linux. In 26.04, eseguire set-credentials senza argomenti: il comando legge il nome utente e la password dallo standard input, quindi la password non viene salvata nella cronologia della shell:
sudo grdctl --system rdp set-credentialsPassaggio 4: abilitare RDP e avviare il servizio
sudo grdctl --system rdp enable
sudo systemctl enable --now gnome-remote-desktop.service
systemctl is-active gdm.serviceLa documentazione upstream abilita anche gdm.service, perché Remote Login visualizza la schermata di login GDM. Ubuntu Desktop usa già GDM, quindi l'ultimo comando dovrebbe stampare active. In caso contrario, eseguire sudo systemctl enable --now gdm.service.
Passaggio 5: verificare che sia in ascolto
sudo grdctl --system status --show-credentials
systemctl is-active gnome-remote-desktop.service
sudo ss -tlnp | grep 3389grdctl --system status --show-credentials dovrebbe mostrare la sezione RDP abilitata sulla porta 3389, con i file TLS e il nome utente. Senza --show-credentials, status stampa comunque la porta e i file TLS, ma mostra il nome utente come (hidden). Le etichette esatte variano tra le versioni. systemctl is-active dovrebbe stampare active, mentre ss dovrebbe stampare una riga LISTEN sulla porta 3389. Se ss non restituisce alcuna riga, non c'è nulla in ascolto e il client riceverà un rifiuto della connessione. Leggere il log con journalctl -u gnome-remote-desktop.service -n 50 per individuare la causa.
Passaggio 6: annotare l'impronta digitale del certificato
Il certificato è autofirmato, quindi il client RDP mostra un avviso al primo collegamento. Stampare ora l'impronta digitale e confrontarla con quella mostrata dal client prima di accettarla:
sudo openssl x509 -in ~gnome-remote-desktop/.local/share/gnome-remote-desktop/tls.crt -noout -fingerprint -sha256Alcuni client mostrano invece un'impronta SHA-1. In questo caso, eseguire lo stesso comando con -sha1. Se le impronte non corrispondono, non si sta comunicando con il proprio server.
Il percorso nelle Impostazioni, se puoi collegare uno schermo una volta
Se puoi collegare uno schermo una sola volta, il percorso grafico imposta la stessa modalità. La guida aggiornata di GNOME indica questo percorso: apri Impostazioni, quindi Sistema, Desktop remoto e Accesso remoto. Fai clic su Sblocca e autentica l’operazione, quindi attiva Accesso remoto.
La sezione Dettagli di accesso in questa pagina mostra il nome utente e la password richiesti dal client. Verifica crittografia mostra l’impronta digitale del certificato da confrontare. Al termine, scollega lo schermo. L’accesso remoto continua a funzionare perché non richiede una sessione locale.
Condivisione desktop si trova nell’altra pagina, sotto Desktop remoto. Attiva Condivisione desktop per consentire ad altri di visualizzare lo schermo e Controllo remoto per consentire loro di utilizzarlo. Procedi in questo modo solo se mantieni anche una sessione autenticata, per i motivi indicati sopra.
Che cosa cambia in Ubuntu 24.04
Remote Login è disponibile anche nella versione 24.04. Il progetto upstream ha aggiunto l'accesso remoto headless tramite GDM nella versione 46.alpha e Noble include la versione 46.3. La release 46.2 ha inoltre corretto CVE-2024-5148, una vulnerabilità nel passaggio dalla schermata di accesso alla sessione utente; verificate quindi che apt-cache policy mostri la versione aggiornata e non l'originale 46.1.
La disposizione delle impostazioni dovrebbe essere la stessa. GNOME Settings 46 ha aggiunto la pagina Remote Login, ha rinominato la precedente pagina Remote Desktop in Desktop Sharing e ha spostato Remote Desktop nel nuovo pannello System. Noble include Settings 46.7. Non confondete Remote Login con Secure Shell nello stesso pannello System: in Settings 46, l'interruttore SSH ha questo nome e identifica una funzionalità diversa.
La differenza principale dalla riga di comando riguarda set-credentials. Nella versione 46.3 richiede come argomenti sia un nome utente sia una password. Non mostra alcun prompt. Leggete prima la password in una variabile, così non finirà nella cronologia della shell:
read -rsp 'RDP password: ' GRD_PASS; echo
sudo grdctl --system rdp set-credentials rdpuser "$GRD_PASS"
unset GRD_PASSTutti gli altri comandi indicati nei passaggi per la versione 26.04 hanno la stessa forma nella versione 46.3: set-tls-key, set-tls-cert, enable e status. Tuttavia, in 24.04 mancano tre funzionalità. Le sessioni persistenti di accesso remoto sono state introdotte nella versione 47, quindi la build 46.x è precedente a questa funzionalità. Salvate il lavoro prima di disconnettervi e verificate che cosa accade alla sessione quando vi riconnettete. La versione 50 ha aggiunto anche l'accesso remoto alle sessioni autologin headless di GDM e l'autenticazione Kerberos. In 24.04 non è disponibile nessuna delle due funzionalità.
Se vi serve xrdp specificamente con GNOME, lo script c-nergy rifiuta solo GNOME 49 e versioni successive, mentre 24.04 usa GNOME 46. Per questo alcuni utenti restano sulla release precedente; tornare da Ubuntu 26.04 a 24.04 spiega quali sono i costi effettivi di questa scelta.
Accesso automatico: testarlo prima di farci affidamento
Alcune guide indicano di attivare l'accesso automatico, in modo che Desktop Sharing disponga di una sessione da replicare dopo un riavvio. Nella guida di GNOME, l'opzione si trova in Settings, System, Users, Unlock, Automatic Login. La stessa pagina avverte che chiunque avvii il computer potrà utilizzare il tuo account e accedere ai tuoi dati.
È necessario prestare attenzione anche per un secondo motivo. In modalità utente, il sistema sorgente memorizza le credenziali RDP di Desktop Sharing tramite libsecret, nella raccolta predefinita del keyring. Con l'accesso automatico non inserisci mai una password all'avvio. Riavvia quindi il computer e verifica una connessione Desktop Sharing prima di lasciarlo incustodito. Remote Login non richiede nulla di tutto questo, perché viene avviato dalla schermata di accesso.
Perché la porta 3389 non dovrebbe mai essere esposta su Internet
Non inoltrare la porta 3389 sul router di casa. Una porta RDP pubblica riceve tentativi di accesso da parte di estranei e tra loro e la schermata di accesso c'è soltanto una password condivisa. Raggiungi il server attraverso un percorso cifrato che controlli già. Due opzioni funzionano bene.
Opzione 1: un tunnel SSH
Se puoi già raggiungere il server tramite SSH, inoltra una porta locale alla porta RDP:
ssh -N -L 13389:127.0.0.1:3389 you@home-box-L inoltra la porta locale 13389 alla porta 3389 del server e -N indica a SSH di non eseguire un comando remoto, perché ti serve soltanto l'inoltro. Mantieni aperto quel terminale. Configura il client RDP per connettersi a 127.0.0.1:13389. La porta locale è 13389 e non 3389, perché un computer Windows con il proprio server Remote Desktop attivato usa già la 3389. La porta SSH deve essere raggiungibile dall'esterno.
Opzione 2: Tailscale
Tailscale mette entrambe le macchine sulla stessa rete privata, quindi nessuna delle due deve avere una porta aperta sul router. Installalo sul server Ubuntu con i comandi della documentazione Linux di Tailscale:
curl -fsSL https://tailscale.com/install.sh | sh
sudo tailscale up
tailscale ip -4Installa Tailscale anche sul computer client, quindi configura il client RDP per connettersi all'indirizzo tailscale ip -4 visualizzato, sulla porta 3389. Se lo script di installazione si interrompe con un errore, risolvere gli errori di installazione di Tailscale su Ubuntu tratta quelli più comuni. Per questa configurazione non serve Tailscale SSH. Tailscale SSH espone soltanto la porta 22 e soltanto sull'indirizzo Tailscale; RDP usa una porta separata.
Se ufw è attivo sul server, puoi consentire RDP soltanto dall'interfaccia tailnet:
sudo ufw allow in on tailscale0 to any port 3389 proto tcpPoi verifica cosa è realmente aperto con come elencare le regole firewall attive su Ubuntu. La porta 3389 non dovrebbe comparire in una regola che ne consente l'accesso da qualsiasi origine.
Quando la connessione non riesce
Il client segnala che la connessione è stata rifiutata. Nessun processo è in ascolto sulla porta utilizzata. Esegui sudo ss -tlnp | grep 3389 sul server. Nessun output significa che il servizio è arrestato oppure che RDP non è abilitato; ripeti quindi il Passaggio 4 e leggi journalctl -u gnome-remote-desktop.service -n 50. Se usi un tunnel SSH, verifica anche che la finestra ssh -N sia ancora aperta.
Il client richiede due volte una password. È normale per Remote Login. Il primo prompt richiede la coppia RDP configurata con set-credentials. Il secondo è la schermata di accesso di GDM e richiede l'account Linux. Inserire la password Linux nel primo prompt non funziona, perché i due accessi sono distinti.
Ti aspettavi di ritrovare la sessione aperta, ma viene visualizzata una schermata di accesso. Ti sei connesso alla porta 3389, associata a Remote Login. Quando Remote Login è attivo, Desktop Sharing utilizza una porta diversa; controlla quindi la porta indicata nella relativa pagina Settings.
Desktop Sharing si disconnette dopo qualche tempo. La sessione sul server è stata bloccata. In modalità di assistenza remota, il blocco dello schermo chiude la connessione remota. Usa Remote Login per un server senza monitor.
set-credentials non funziona su 24.04. La versione 46.3 richiede entrambi gli argomenti. Usa la sintassi read -rsp indicata nella sezione relativa a 24.04.
FAQ
Posso usare xrdp con GNOME su Ubuntu 26.04?
No. Le note di rilascio di Ubuntu 26.04 indicano che GNOME Shell non può più essere eseguito come sessione X.org e xrdp funziona soltanto con Xorg. Per questo motivo, l’installer di c-nergy.be rifiuta di installare xrdp su GNOME 49 e versioni successive. Usare GNOME Remote Desktop con Remote Login oppure xrdp con un desktop che dispone ancora di una sessione X.org, ad esempio XFCE.
Il desktop remoto di Ubuntu funziona senza un monitor collegato?
Sì, in modalità Remote Login. Il progetto upstream la definisce headless remote login: il client RDP visualizza la schermata di accesso di GDM e consente di accedere a una nuova sessione, quindi non servono né uno schermo locale né un utente già autenticato. Desktop Sharing è diverso. Duplica una sessione già in esecuzione, quindi dopo un riavvio, se nessuno ha effettuato l’accesso, non c’è alcuna sessione da condividere.
Quale porta usa GNOME Remote Desktop su Ubuntu?
Remote Login usa la porta 3389, la porta RDP standard, che è anche il valore predefinito nel codice sorgente di gnome-remote-desktop. Quando Remote Login è attivo, Desktop Sharing viene spostato su un’altra porta, ad esempio 3390, che deve essere inserita nel client. sudo ss -tlnp sul sistema mostra quale porta è realmente in ascolto.
È sicuro inoltrare la porta 3389 sul router?
No. Una porta RDP pubblica espone il sistema a tentativi di accesso e una sola password condivisa è l’unica protezione davanti alla schermata di login. Inoltrare una porta locale tramite SSH con ssh -N -L 13389:127.0.0.1:3389 you@home-box oppure collegare entrambi i computer a Tailscale e connettersi all’indirizzo Tailscale del sistema sulla porta 3389.
Remote Login funziona su Ubuntu 24.04?
Sì. L’accesso remoto headless è stato introdotto in gnome-remote-desktop 46 e Ubuntu 24.04 include la versione 46.3. La differenza principale è che grdctl --system rdp set-credentials nella versione 46.3 richiede nome utente e password come argomenti, mentre 26.04 può leggerli dallo standard input. Le sessioni Remote Login persistenti sono state introdotte soltanto nella versione 47, quindi su 24.04 è necessario salvare il lavoro prima di disconnettersi.