Escritorio remoto de Ubuntu (GUI)
Ubuntu Remote Desktop (GUI)
Ubuntu Server no incluye una interfaz gráfica de forma predeterminada. Sin embargo, puede instalar una y conectarse a ella de forma remota mediante VNC o RDP. Esta guía cubre ambos métodos.
(Warning) No exponga los puertos 5901 (VNC) ni 3389 (RDP) directamente a Internet. Utilice un túnel SSH, WireGuard u otra solución VPN para asegurar la conexión. Si debe permitir estos puertos en el firewall, restrinja el acceso únicamente a rangos de IP de confianza.
(Info) Para la mayoría de los servidores Ubuntu de producción, la combinación recomendada es: el entorno de escritorio Xfce, xrdp para el acceso remoto y WireGuard o un túnel SSH para una conectividad segura.
Qué necesita
- Servidor Ubuntu (20.04 / 22.04 / 24.04)
- Acceso root o sudo
- Un equipo cliente (Windows o macOS) desde el que conectarse
Instalar un entorno de escritorio
Actualice la lista de paquetes:
apt update && apt upgrade -y
Instale el entorno de escritorio Xfce. Es ligero y funciona de forma fiable tanto con VNC como con xrdp:
apt install xfce4 xfce4-goodies -y
(Info) Si prefiere GNOME, instálelo con apt install ubuntu-desktop-minimal -y. Tenga en cuenta que en Ubuntu 24.04 GNOME se ejecuta sobre Wayland de forma predeterminada, lo cual no es compatible con VNC ni xrdp; primero tendría que desactivar Wayland estableciendo WaylandEnable=false en /etc/gdm3/custom.conf. Xfce no lo requiere y es la opción más sencilla para un escritorio remoto.
En un servidor también necesitará dbus-launch para que la sesión de escritorio se inicie. Si falta, instálelo:
apt install dbus-x11 -y
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 VNC
Ejecute VNC como un usuario sin privilegios de root. Cree uno si aún no lo tiene:
adduser vncuser
(Warning) No agregue el usuario VNC al grupo sudo. Si un atacante obtiene acceso a la sesión VNC, los privilegios sudo le darían control total sobre el servidor.
Cambie a ese usuario:
su - vncuser
Establecer una contraseña VNC
vncpasswd
Introduzca y confirme una contraseña. Cuando se le pregunte «Would you like to enter a view-only password?», escriba n. La contraseña VNC está limitada a 8 caracteres.
Configurar la sesión VNC
Cree el directorio de configuración y el archivo de inicio:
mkdir -p ~/.vnc nano ~/.vnc/xstartup
Pegue lo siguiente:
#!/bin/bash unset SESSION_MANAGER unset DBUS_SESSION_BUS_ADDRESS exec startxfce4
(Info) Si el servidor VNC se inicia pero la sesión finaliza de inmediato (o aparece una pantalla en negro), la causa más común en Ubuntu Server es la falta de dbus-launch. Instálelo e inicie el servidor de nuevo: apt install dbus-x11 -y
Haga el archivo ejecutable:
chmod +x ~/.vnc/xstartup
Iniciar el servidor VNC
vncserver :1 -geometry 1280x800 -localhost no
Esto inicia una sesión VNC en la pantalla :1 (puerto 5901). La pantalla :2 usaría el puerto 5902, y así sucesivamente. La opción -localhost no permite conexiones desde otras máquinas.
Para detener el servidor:
vncserver -kill :1
Abrir el puerto en el firewall
ufw allow 5901/tcp
(Info) 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 la dirección del servidor seguida del puerto de pantalla:
su-ip-de-servidor:5901

Puede aparecer una advertencia sobre una conexión no cifrada; esto es normal en VNC sin cifrado. Continúe y, cuando se le solicite, introduzca la contraseña VNC. Una vez establecida la conexión, verá el escritorio remoto:

Conectarse desde macOS
macOS incluye un cliente VNC integrado. Abra el Finder, pulse Cmd+K e introduzca:
vnc://su-ip-de-servidor:5901
Introduzca la contraseña cuando se le solicite.
(Warning) El tráfico VNC no está cifrado de forma predeterminada. Canalice la conexión a través de SSH: ssh -L 5901:localhost:5901 usuario@su-ip-de-servidor y, a continuación, conéctese a localhost:5901 desde su cliente VNC.
Opción 2. Conectarse mediante RDP
RDP (Remote Desktop Protocol) es el protocolo estándar que utiliza Windows Remote Desktop. En Ubuntu lo proporciona el paquete xrdp.
(Info) Xfce ofrece un escritorio remoto más fiable a través de xrdp que GNOME, especialmente en las versiones de Ubuntu en las que GNOME se ejecuta sobre Wayland.
Instalar xrdp
apt install xrdp -y
Habilite e inicie el servicio:
systemctl enable --now xrdp
Configurar xrdp para usar Xfce
Cree un archivo de sesión para que xrdp inicie el escritorio Xfce al iniciar sesión. Sin él, obtendrá una pantalla en negro tras iniciar sesión. Ejecute esto como el usuario con el que se conectará:
echo "xfce4-session" > ~/.xsession
Abrir el puerto en el firewall
ufw allow 3389/tcp
(Info) 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 Enter. Introduzca la dirección IP de su servidor y haga clic en Connect.

En la pantalla de inicio de sesión de xrdp, deje la sesión configurada como Xorg e introduzca su nombre de usuario y contraseña de Ubuntu:

Tras iniciar sesión, aparece el escritorio remoto:

Conectarse desde macOS
Instale Microsoft Remote Desktop desde la App Store. Haga clic en Add PC, introduzca la dirección IP de su servidor e inicie sesión con su nombre de usuario y contraseña de Ubuntu.
Comparación: VNC frente a RDP
| VNC | RDP | |
|---|---|---|
| Protocolo | Estándar abierto | Microsoft (implementación de código abierto mediante xrdp) |
| Cliente de Windows | Requiere uno de terceros | Integrado (mstsc) |
| Cliente de macOS | Integrado (Finder) | Microsoft Remote Desktop (App Store) |
| Cifrado | Ninguno de forma predeterminada (usar túnel SSH) | TLS (gestionado por xrdp) |
| Rendimiento | Moderado | Por lo general, más fluido |
| Compatibilidad multiusuario | Limitada | Mejor |
Solución de problemas
Pantalla en negro tras iniciar sesión por RDP: asegúrese de que ~/.xsession contiene xfce4-session y de que dbus-x11 está instalado; a continuación, reinicie xrdp: systemctl restart xrdp
La sesión VNC finaliza de inmediato o muestra una pantalla en negro: instale el lanzador dbus que falta e inicie el servidor de nuevo: apt install dbus-x11 -y
Conexión VNC rechazada: compruebe con vncserver -list que el servidor VNC está en ejecución y asegúrese de que el puerto 5901 está abierto en el firewall.
La sesión VNC no se inicia: termine la sesión, elimine los archivos de bloqueo y reinicie:
vncserver -kill :1 rm -f ~/.vnc/*.log ~/.vnc/*.pid vncserver :1
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 VNC.
xrdp conecta pero se desconecta de inmediato: compruebe el estado de ambos servicios:
systemctl status xrdp systemctl status xrdp-sesman