Escritorio remoto de Ubuntu (GUI)
Ubuntu Server no incluye una interfaz gráfica por defecto. Sin embargo, puede instalar una y conectarse a ella de forma remota mediante VNC o RDP. Esta guía cubre ambos métodos.
No exponga los puertos 5901 (VNC) o 3389 (RDP) directamente a internet. Utilice un túnel SSH, WireGuard u otra solución VPN para proteger la conexión. Si debe permitir estos puertos a través del firewall, restrinja el acceso únicamente a rangos de IP de confianza.
Para la mayoría de los servidores Ubuntu en producción, la combinación recomendada es: entorno de escritorio Xfce, xrdp para el acceso remoto, y WireGuard o un túnel SSH para una conectividad segura.
Lo que necesita
- Servidor Ubuntu (20.04 / 22.04 / 24.04)
- Acceso root o sudo
- Un equipo cliente (Windows o macOS) desde el que conectarse
Instalación de un entorno de escritorio
Actualice la lista de paquetes:
apt update && apt upgrade -y
Instale el escritorio GNOME mínimo:
apt install ubuntu-desktop-minimal -y
Para servidores en producción, generalmente se recomienda Xfce: utiliza menos recursos y funciona de forma más fiable sobre VNC y xrdp:
apt install xfce4 xfce4-goodies -y
Una vez completada la instalación, establezca el modo gráfico como destino de arranque predeterminado y reinicie:
systemctl set-default graphical.target reboot
El comando systemctl set-default graphical.target cambia de forma permanente el modo de arranque predeterminado, de modo que el entorno gráfico se inicie automáticamente después de cada reinicio. En un servidor sin pantalla donde solo necesita acceso al escritorio remoto, puede omitir este paso y simplemente reiniciar.
Opción 1. Conectarse mediante VNC
VNC (Virtual Network Computing) le permite ver y controlar el escritorio de forma remota. Esta sección utiliza TigerVNC.
Instalar el servidor TigerVNC
apt install tigervnc-standalone-server tigervnc-common -y
Crear un usuario para VNC
Ejecute VNC como un usuario sin privilegios root. Cree uno si aún no lo tiene:
adduser vncuser
No añada el usuario de VNC al grupo sudo. Si un atacante obtiene acceso a la sesión VNC, el acceso sudo le daría el control total del servidor.
Cambie a ese usuario:
su - vncuser
Establecer una contraseña de VNC
vncpasswd
Introduzca y confirme una contraseña. Cuando se le pregunte "Would you like to enter a view-only password?", introduzca n.
VNC requiere un backend de Xorg. En Ubuntu 24.04, GNOME se ejecuta sobre Wayland por defecto. Si planea usar VNC con GNOME, desactive primero Wayland tal como se describe en la sección de xrdp más abajo (WaylandEnable=false en /etc/gdm3/custom.conf). Sin esto, es posible que obtenga una pantalla negra.
En Ubuntu 24.04, dbus-launch puede no estar instalado por defecto. Si obtiene un error "command not found" al iniciar la sesión VNC, instálelo primero: apt install dbus-x11 -y
Configurar la sesión de VNC
Cree el directorio de configuración y el archivo de inicio:
mkdir -p ~/.vnc nano ~/.vnc/xstartup
Pegue lo siguiente:
#!/bin/bash export XDG_SESSION_TYPE=x11 export GNOME_SHELL_SESSION_MODE=ubuntu unset DBUS_SESSION_BUS_ADDRESS unset XDG_RUNTIME_DIR exec dbus-launch --exit-with-session gnome-session --session=ubuntu
Si instaló Xfce en lugar de GNOME, reemplace la última línea por: exec startxfce4
Haga que el archivo sea ejecutable:
chmod +x ~/.vnc/xstartup
Iniciar el servidor VNC
vncserver :1 -geometry 1920x1080 -depth 24
Esto inicia una sesión VNC en la pantalla :1 (puerto 5901). La pantalla :2 usaría el puerto 5902, y así sucesivamente.
Para detener el servidor:
vncserver -kill :1
Abrir el puerto en el firewall
ufw allow 5901/tcp
Si es posible, restrinja el acceso a un rango de IP específico en lugar de permitir todos los orígenes: ufw allow from 192.168.1.0/24 to any port 5901 proto tcp
Conectarse desde Windows
Descargue e instale TightVNC o RealVNC Viewer.
Abra el cliente e introduzca: your-server-ip:5901
[IMAGE: vnc-connect-address.png — RealVNC Viewer con la dirección del servidor introducida]
Introduzca la contraseña de VNC cuando se le solicite. Una vez conectado, verá el escritorio remoto:
[IMAGE: vnc-xfce-desktop.png — el escritorio remoto mostrado a través de VNC]
Conectarse desde macOS
macOS incluye un cliente VNC integrado. Abra Finder, pulse Cmd+K e introduzca:
vnc://your-server-ip:5901
Introduzca la contraseña cuando se le solicite.
El tráfico de VNC no está cifrado por defecto. Encapsule la conexión mediante SSH: ssh -L 5901:localhost:5901 user@your-server-ip, y luego conéctese a localhost:5901 desde su cliente VNC.
Opción 2. Conectarse mediante RDP
RDP (Remote Desktop Protocol) es el protocolo estándar utilizado por el Escritorio remoto de Windows. En Ubuntu, lo proporciona el paquete xrdp.
Las sesiones de GNOME sobre xrdp pueden ser inestables en algunas versiones de Ubuntu, especialmente cuando Wayland está habilitado. Xfce generalmente ofrece una experiencia de escritorio remoto más fiable.
Desactivar Wayland
xrdp requiere un backend de Xorg. Abra el archivo de configuración de GDM:
nano /etc/gdm3/custom.conf
Busque la línea #WaylandEnable=false, quite el comentario y guarde el archivo:
WaylandEnable=false
Instalar xrdp
apt install xrdp -y
Habilite e inicie el servicio:
systemctl enable --now xrdp
Añadir el usuario xrdp al grupo ssl-cert
adduser xrdp ssl-cert
Configurar el archivo de inicio de la sesión
Abra /etc/xrdp/startwm.sh y añada las siguientes líneas antes de la línea final exec:
export XDG_SESSION_TYPE=x11 export GNOME_SHELL_SESSION_MODE=ubuntu unset DBUS_SESSION_BUS_ADDRESS unset XDG_RUNTIME_DIR
Abrir el puerto en el firewall
ufw allow 3389/tcp
Si es posible, restrinja el acceso a un rango de IP específico: ufw allow from 192.168.1.0/24 to any port 3389 proto tcp
Reiniciar xrdp
systemctl restart xrdp
Conectarse desde Windows
Pulse Win+R, escriba mstsc y pulse Intro. Introduzca la dirección IP de su servidor y haga clic en Conectar.
[IMAGE: mstsc-connection-dialog.png — Conexión a Escritorio remoto con la dirección del servidor introducida]
En la pantalla de inicio de sesión de xrdp, deje la sesión como Xorg e introduzca su nombre de usuario y contraseña de Ubuntu:
[IMAGE: xrdp-login.png — la pantalla de inicio de sesión de xrdp]
Después de iniciar sesión, aparece el escritorio remoto:
[IMAGE: rdp-xfce-desktop.png — el escritorio remoto mostrado a través de RDP]
Conectarse desde macOS
Instale Microsoft Remote Desktop desde la App Store.
Haga clic en Añadir PC e introduzca la dirección IP de su servidor.
Inicie sesión con su nombre de usuario y contraseña de Ubuntu.
Comparativa: VNC frente a RDP
| VNC | RDP | |
|---|---|---|
| Protocolo | Estándar abierto | Microsoft (implementación de código abierto a través de xrdp) |
| Cliente para Windows | Requiere software de terceros | Integrado (mstsc) |
| Cliente para macOS | Integrado (Finder) | Microsoft Remote Desktop (App Store) |
| Cifrado | Ninguno por defecto (usar túnel SSH) | TLS (gestionado por xrdp) |
| Rendimiento | Moderado | Generalmente más fluido |
| Compatibilidad multiusuario | Limitada | Mejor |
Solución de problemas
Pantalla negra tras iniciar sesión por RDP — asegúrese de que las variables de entorno necesarias se hayan añadido a /etc/xrdp/startwm.sh tal como se describe arriba, y de que Wayland esté desactivado en /etc/gdm3/custom.conf. Luego reinicie xrdp: systemctl restart xrdp
Conexión VNC rechazada — compruebe que el servidor VNC esté en ejecución: vncserver -list. Asegúrese de que el puerto 5901 esté abierto en el firewall.
La sesión VNC no arranca — cierre la sesión y elimine los archivos de bloqueo, luego reinicie:
vncserver -kill :1 rm -f ~/.vnc/*.log ~/.vnc/*.pid vncserver :1
La conexión se interrumpe o aparece una pantalla gris tras introducir la contraseña en xrdp — cree o edite ~/.xsessionrc para el usuario y añada:
export XDG_SESSION_TYPE=x11
Asegúrese también de que el usuario no tenga iniciada una sesión de escritorio local al mismo tiempo: cierre la sesión local antes de conectarse mediante xrdp.
Error de autenticación en xrdp — asegúrese de iniciar sesión con un usuario y contraseña válidos del sistema Ubuntu, no con la contraseña de VNC.
xrdp se conecta pero se desconecta inmediatamente — compruebe el estado de ambos servicios:
systemctl status xrdp systemctl status xrdp-sesman
No se puede iniciar GNOME a través de VNC — en Ubuntu 24.04, puede que necesite instalar el paquete xorg por separado: apt install xorg -y