Escritorio remoto de Ubuntu sin monitor: GNOME por RDP
En Ubuntu 26.04, xrdp ya no inicia GNOME. Configure GNOME Remote Login sin monitor mediante SSH y acceda por RDP con un túnel o Tailscale.
Cómo usar el escritorio remoto de Ubuntu sin monitor
Para usar el escritorio remoto de Ubuntu sin monitor, active GNOME Remote Desktop en el modo Remote Login. Remote Login inicia su propia sesión de GNOME desde la pantalla de inicio de sesión, por lo que el equipo no necesita pantalla ni un usuario que ya haya iniciado sesión. Configure esta función una sola vez mediante SSH con grdctl y, después, conéctese desde cualquier cliente RDP (protocolo de escritorio remoto) al puerto 3389.
Esta guía está dirigida a un equipo con Ubuntu Desktop sin monitor conectado, como un servidor doméstico o un mini PC. Primero trata Ubuntu 26.04 LTS y, después, las diferencias de Ubuntu 24.04 LTS. Si el equipo es un VPS (servidor privado virtual) con un escritorio XFCE ligero, xrdp sigue siendo adecuado. El escritorio remoto en un VPS Linux con xrdp y XFCE explica ese caso. Esta guía no lo repite.
Por qué xrdp no funciona con GNOME en Ubuntu 26.04
Muchas guías antiguas instalan xrdp. En Ubuntu 26.04 eso no proporciona un escritorio GNOME. La causa aparece en las notas de la versión 26.04: GNOME Shell ya no puede ejecutarse como una sesión de X.org y la sesión de Ubuntu Desktop ahora funciona sólo con el backend Wayland. xrdp funciona sólo con Xorg, por lo que no tiene ninguna sesión de GNOME que iniciar.
El popular script instalador de xrdp de c-nergy.be indica lo mismo. Su versión 1.6, publicada en mayo de 2026, no instala el paquete xrdp cuando detecta un escritorio GNOME sin compatibilidad con X11. Su autor indica que Ubuntu 26.04 con GNOME no es compatible y recomienda a los usuarios de GNOME usar GNOME Remote Desktop, que viene integrado.
Los demás escritorios todavía ofrecen una alternativa. Las notas de la versión indican que KDE en X11, Xfce, MATE, i3 y muchos otros todavía pueden iniciar una sesión de X.org, y que las aplicaciones X11 siguen ejecutándose mediante XWayland. Para conocer el resto de cambios de la versión, consulte qué cambió en Ubuntu 26.04.1 y cuándo actualizar.
¿Compartir el escritorio o iniciar sesión de forma remota: cuál necesita?
GNOME Remote Desktop es el servidor RDP que incluye GNOME. El proyecto original describe tres formas de ejecutarlo: asistencia remota, modo sin monitor para un solo usuario e inicio de sesión remoto sin monitor. La aplicación Configuración muestra dos de ellas con dos nombres.
- Compartir el escritorio es la asistencia remota. Replica una sesión que ya está ejecutándose en la máquina. Verá la misma pantalla que vería una persona sentada frente al equipo.
- Inicio de sesión remoto es el inicio de sesión remoto sin monitor. El cliente RDP muestra primero la pantalla de inicio de sesión de GDM (el gestor de pantalla de GNOME), donde inicia sesión en una sesión nueva. Inicio de sesión remoto funciona sólo mediante RDP, no mediante VNC (virtual network computing).
Para una máquina sin monitor, el modo que necesita es Inicio de sesión remoto. Compartir el escritorio necesita una sesión que ya exista. Después de reiniciar, nadie ha iniciado sesión, por lo que Compartir el escritorio no tiene ninguna sesión que replicar.
Compartir el escritorio tiene otro inconveniente. Las notas de configuración del proyecto original indican que, en el modo de asistencia remota, bloquear la pantalla también cierra la conexión remota. Por tanto, cuando se bloquea la sesión del equipo, también se interrumpe la conexión de Compartir el escritorio. Inicio de sesión remoto no depende de una sesión local, por lo que resulta adecuado para un equipo que no tiene ningún usuario delante.
Los dos modos también escuchan en puertos diferentes. La ayuda de GNOME indica que Inicio de sesión remoto usa el puerto 3389. Compartir el escritorio usa entonces otro puerto, como 3390, por lo que quizá deba introducir ese puerto en el cliente. La versión 46 del servidor añadió compatibilidad con este conflicto concreto entre el daemon del sistema y el daemon por usuario.
Comprobar qué versión tiene
lsb_release -ds
apt-cache policy gnome-remote-desktopapt-cache policy debe mostrar una línea Installed: con una versión. Al 1 de noviembre de 2026, Launchpad incluye 50.2-0ubuntu0.1 en el pocket de actualizaciones de 26.04 y 46.3-0ubuntu1.2 para 24.04. Si Installed: muestra (none), instale el paquete:
sudo apt update
sudo apt install -y gnome-remote-desktopLa versión principal es importante porque grdctl cambió entre 46 y 50. Los pasos siguientes señalan cada diferencia.
Configurar el acceso remoto mediante SSH en Ubuntu 26.04
Necesita acceso SSH al equipo. Si todavía no ejecuta un servidor SSH, conecte una pantalla una vez y ejecute sudo apt install -y openssh-server. Si ya tiene una pantalla conectada, también puede usar la ruta de Configuración de la siguiente sección y omitir estos comandos.
Paso 1: confirmar la cuenta de servicio
grdctl --system no cambia la configuración como su propio usuario. La fuente 50.2 muestra que vuelve a ejecutarse mediante pkexec --user gnome-remote-desktop, por lo que todos los archivos que lea deben ser legibles para esa cuenta. Compruebe que la cuenta exista:
id gnome-remote-desktopDebería ver una línea uid=. no such user significa que el paquete no está instalado.
Paso 2: crear un certificado TLS
GNOME Remote Desktop necesita una clave y un certificado TLS (seguridad de la capa de transporte) para RDP. El proyecto indica que los archivos del servicio del sistema deben crearse como el usuario gnome-remote-desktop. Este es el comando de OpenSSL de la documentación del proyecto, ejecutado como ese usuario:
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'El certificado es válido durante 720 días. Anote esa fecha, porque deberá crear un certificado nuevo antes de que caduque. Ahora indique al daemon del sistema dónde están ambos archivos:
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.crtPaso 3: configurar las credenciales de RDP
Son un nombre de usuario y una contraseña de RDP independientes. No son su cuenta de Linux. Primero, el usuario remoto introduce este par compartido. Después, inicia sesión en la pantalla de inicio de sesión de GDM con su propia cuenta de Linux. En 26.04, ejecute set-credentials sin argumentos. El comando lee el nombre de usuario y la contraseña desde la entrada estándar, por lo que la contraseña no queda en el historial del shell:
sudo grdctl --system rdp set-credentialsPaso 4: habilitar RDP e iniciar el servicio
sudo grdctl --system rdp enable
sudo systemctl enable --now gnome-remote-desktop.service
systemctl is-active gdm.serviceLa documentación del proyecto también habilita gdm.service, porque Remote Login muestra la pantalla de inicio de sesión de GDM. Ubuntu Desktop ya usa GDM, por lo que el último comando debería mostrar active. Si no lo hace, ejecute sudo systemctl enable --now gdm.service.
Paso 5: comprobar que está escuchando
sudo grdctl --system status --show-credentials
systemctl is-active gnome-remote-desktop.service
sudo ss -tlnp | grep 3389grdctl --system status --show-credentials debería mostrar la sección de RDP habilitada en el puerto 3389, con los archivos TLS y el nombre de usuario configurados. Sin --show-credentials, status sigue mostrando el puerto y los archivos TLS, pero muestra el nombre de usuario como (hidden). Las etiquetas exactas cambian entre versiones. systemctl is-active debería mostrar active, y ss debería mostrar una línea LISTEN en el puerto 3389. Si ss no muestra ninguna línea, no hay nada escuchando y el cliente recibirá un rechazo de conexión. Lea el registro con journalctl -u gnome-remote-desktop.service -n 50 para ver el motivo.
Paso 6: anotar la huella digital del certificado
El certificado es autofirmado, por lo que el cliente RDP muestra una advertencia en la primera conexión. Muestre ahora la huella digital y compárela con la que muestra el cliente antes de aceptarla:
sudo openssl x509 -in ~gnome-remote-desktop/.local/share/gnome-remote-desktop/tls.crt -noout -fingerprint -sha256Algunos clientes muestran una huella SHA-1 en su lugar. En ese caso, ejecute el mismo comando con -sha1. Si las huellas no coinciden, no se está comunicando con su equipo.
La ruta de Settings, si puede conectar una pantalla una vez
Si puede conectar una pantalla una vez, la ruta gráfica configura el mismo modo. La ayuda actual de GNOME indica esta ruta: abra Settings, después System, luego Remote Desktop y finalmente Remote Login. Haga clic en Unlock y autentíquese. Después, active Remote Login.
La sección Login Details de esa página muestra el nombre de usuario y la contraseña que necesitará el cliente. Verify Encryption muestra la huella digital del certificado que debe comparar. Cuando termine, desconecte la pantalla. Remote Login seguirá funcionando porque no necesita una sesión local.
Desktop Sharing está en la otra página de Remote Desktop. Active Desktop Sharing para permitir que otros vean la pantalla y Remote Control para permitirles usarla. Hágalo sólo si también mantiene una sesión iniciada, por los motivos indicados anteriormente.
Qué cambia en Ubuntu 24.04
Remote Login también está disponible en 24.04. El proyecto upstream añadió el inicio de sesión remoto sin monitor mediante GDM en la versión 46.alpha, y Noble incluye la versión 46.3. La versión 46.2 también corrigió CVE-2024-5148, un fallo en la transferencia de la pantalla de inicio de sesión a la sesión del usuario. Por tanto, asegúrese de que apt-cache policy muestre la versión actualizada y no la versión original 46.1.
La disposición de Settings debería coincidir. GNOME Settings 46 añadió la página Remote Login, cambió el nombre de la antigua página Remote Desktop a Desktop Sharing y agrupó Remote Desktop en el nuevo panel System. Noble incluye Settings 46.7. No confunda Remote Login con Secure Shell del mismo panel System: Settings 46 dio ese nombre al interruptor de SSH, y se trata de una función diferente.
La principal diferencia en la línea de comandos es set-credentials. En la versión 46.3 necesita un nombre de usuario y una contraseña como argumentos. No solicita la contraseña. Léala primero en una variable para que no termine en el historial del shell:
read -rsp 'RDP password: ' GRD_PASS; echo
sudo grdctl --system rdp set-credentials rdpuser "$GRD_PASS"
unset GRD_PASSTodos los demás comandos de los pasos para 26.04 anteriores tienen la misma forma en la versión 46.3: set-tls-key, set-tls-cert, enable y status. Sin embargo, faltan tres funciones en 24.04. Las sesiones persistentes de inicio de sesión remoto llegaron en la versión 47, por lo que la compilación 46.x es anterior a ellas. Guarde su trabajo antes de desconectarse y compruebe qué ocurre con la sesión cuando vuelva a conectarse. La versión 50 también añadió el inicio de sesión remoto a las sesiones de autologin sin monitor de GDM y la autenticación Kerberos. En 24.04 no dispone de ninguna de las dos funciones.
Si necesita xrdp específicamente con GNOME, el script de c-nergy sólo rechaza GNOME 49 y versiones posteriores, y 24.04 ejecuta GNOME 46. Por ese motivo algunos lectores siguen usando la versión anterior, y volver de Ubuntu 26.04 a 24.04 explica el coste real de ese cambio.
Inicio de sesión automático: pruébelo antes de depender de él
Algunas guías indican que debe activar el inicio de sesión automático para que Desktop Sharing tenga una sesión que reflejar después de un reinicio. La ayuda de GNOME sitúa esta opción en Settings, System, Users, Unlock, Automatic Login. La misma página advierte que cualquiera que encienda el equipo podrá usar su cuenta y sus datos.
Hay un segundo motivo para actuar con precaución. En el modo de usuario, el origen almacena las credenciales RDP de Desktop Sharing mediante libsecret, en la colección de claves predeterminada. Con el inicio de sesión automático, nunca escribe una contraseña durante el arranque. Por tanto, reinicie el equipo y pruebe una conexión de Desktop Sharing antes de dejarlo sin supervisión. Remote Login no necesita nada de esto, porque se inicia desde la pantalla de inicio de sesión.
Por qué el puerto 3389 nunca debe exponerse a Internet
No reenvíe el puerto 3389 en el router de su casa. Un puerto RDP público recibe intentos de inicio de sesión de desconocidos, y lo único que los separa de la pantalla de inicio de sesión es una contraseña compartida. Acceda al equipo mediante una ruta cifrada que ya controle. Hay dos opciones adecuadas.
Opción 1: un túnel SSH
Si ya puede acceder al equipo mediante SSH, reenvíe un puerto local al puerto RDP:
ssh -N -L 13389:127.0.0.1:3389 you@home-box-L reenvía el puerto local 13389 al puerto 3389 del equipo, y -N indica a SSH que no ejecute ningún comando remoto, porque sólo necesita el reenvío. Mantenga abierto ese terminal. Configure el cliente RDP para conectarse a 127.0.0.1:13389. El puerto local es 13389 y no 3389 porque un equipo Windows con su propio servidor Remote Desktop activado ya utiliza el puerto 3389. Sólo el puerto SSH debe ser accesible desde el exterior.
Opción 2: Tailscale
Tailscale conecta ambos equipos a una red privada, por lo que ninguno necesita un puerto abierto en el router. Instálelo en el equipo Ubuntu con los comandos de la documentación de Linux de Tailscale:
curl -fsSL https://tailscale.com/install.sh | sh
sudo tailscale up
tailscale ip -4Instale también Tailscale en el equipo cliente y configure el cliente RDP para conectarse a la dirección tailscale ip -4 mostrada, en el puerto 3389. Si el script de instalación se detiene con un error, solucionar errores de instalación de Tailscale en Ubuntu explica cómo resolver los más comunes. No necesita Tailscale SSH para esto. Tailscale SSH sólo proporciona el puerto 22, únicamente en la dirección de Tailscale, y RDP utiliza un puerto separado.
Si ufw está activo en el equipo, puede permitir RDP únicamente desde la interfaz de tailnet:
sudo ufw allow in on tailscale0 to any port 3389 proto tcpDespués, confirme qué puertos están realmente abiertos con cómo listar las reglas activas del firewall en Ubuntu. El puerto 3389 no debe aparecer en una regla que permita el acceso desde cualquier origen.
Cuando falla la conexión
El cliente indica que se rechazó la conexión. No hay ningún servicio escuchando en el puerto que usó. Ejecute sudo ss -tlnp | grep 3389 en el equipo. Si no muestra ninguna salida, el servicio está detenido o RDP no está habilitado. Repita el paso 4 y consulte journalctl -u gnome-remote-desktop.service -n 50. Si usa un túnel SSH, compruebe también que la ventana de ssh -N siga abierta.
El cliente solicita la contraseña dos veces. Es normal en Remote Login. El primer aviso solicita el par de credenciales de RDP que configuró con set-credentials. El segundo es la pantalla de inicio de sesión de GDM, que solicita su cuenta de Linux. Escribir la contraseña de Linux en el primer aviso falla porque son dos credenciales independientes.
Esperaba ver la sesión abierta, pero apareció una pantalla de inicio de sesión. Se conectó al puerto 3389, que pertenece a Remote Login. Desktop Sharing usa otro puerto cuando Remote Login está habilitado. Compruebe el puerto que aparece en su página Settings.
Desktop Sharing se desconecta al cabo de un tiempo. La sesión del equipo se bloqueó. En el modo de asistencia remota, bloquear la pantalla cierra la conexión remota. Use Remote Login en un equipo sin monitor.
set-credentials falla en 24.04. La versión 46.3 necesita ambos argumentos. Use la forma read -rsp de la sección sobre 24.04.
FAQ
¿Puedo usar xrdp con GNOME en Ubuntu 26.04?
No. Las notas de la versión de Ubuntu 26.04 indican que GNOME Shell ya no puede ejecutarse como una sesión de X.org, y xrdp sólo funciona con Xorg. Por este motivo, el instalador de c-nergy.be se niega a instalar xrdp en GNOME 49 y versiones posteriores. Use GNOME Remote Desktop con Remote Login, o use xrdp con un entorno de escritorio que todavía tenga una sesión de X.org, como XFCE.
¿Funciona el escritorio remoto de Ubuntu sin un monitor conectado?
Sí, en el modo Remote Login. El proyecto original lo denomina inicio de sesión remoto sin monitor: el cliente RDP muestra la pantalla de inicio de sesión de GDM y usted inicia una sesión nueva, por lo que no se necesita una pantalla local ni un usuario con sesión iniciada. Desktop Sharing es diferente. Duplica una sesión que ya está en ejecución. Por tanto, después de reiniciar, si nadie ha iniciado sesión, no hay ninguna sesión que compartir.
¿Qué puerto usa GNOME Remote Desktop en Ubuntu?
Remote Login usa el puerto 3389, el puerto RDP estándar, que también es el valor predeterminado en el código fuente de gnome-remote-desktop. Cuando Remote Login está activado, Desktop Sharing cambia a otro puerto, como 3390, y debe introducir ese puerto en el cliente. sudo ss -tlnp en el equipo muestra qué está escuchando realmente.
¿Es seguro redirigir el puerto 3389 en el router?
No lo haga. Un puerto RDP público provoca intentos de inicio de sesión, y una sola contraseña compartida es toda la protección que queda delante de la pantalla de inicio de sesión. Redirija un puerto local mediante SSH con ssh -N -L 13389:127.0.0.1:3389 you@home-box, o conecte ambos equipos a Tailscale y conéctese a la dirección de Tailscale del equipo en el puerto 3389.
¿Funciona Remote Login en Ubuntu 24.04?
Sí. El inicio de sesión remoto sin monitor llegó con gnome-remote-desktop 46, y Ubuntu 24.04 incluye la versión 46.3. La diferencia principal es que grdctl --system rdp set-credentials en 46.3 necesita el nombre de usuario y la contraseña como argumentos, mientras que 26.04 puede leerlos desde la entrada estándar. Las sesiones persistentes de inicio de sesión remoto no llegaron hasta la versión 47, por lo que debe guardar el trabajo antes de desconectarse en 24.04.