--- title: "Cómo instalar XRDP con XFCE en Ubuntu 24.04" description: "Instala XRDP y el escritorio XFCE en Ubuntu 24.04 para conectarte por RDP desde Windows, macOS o Linux, y protege el acceso con un túnel SSH y reglas de sesión." category: "Acceso Remoto" language: es source: https://cubepath.com/es/docs/acceso-remoto/escritorio-remoto-xrdp-en-linux updated: 2026-09-25 --- # Cómo instalar XRDP con XFCE en Ubuntu 24.04 XRDP es un servidor del protocolo RDP (Remote Desktop Protocol) para Linux. Permite conectarse al escritorio gráfico de un servidor con el cliente de Escritorio remoto que ya incluye Windows, con Windows App en macOS o con Remmina en Linux. En este tutorial instalarás el entorno de escritorio ligero XFCE y XRDP en un servidor Ubuntu 24.04, te conectarás desde tu equipo y limitarás el acceso para que el puerto RDP no quede expuesto a Internet. ## Requisitos previos Para seguir esta guía necesitas: - Un servidor con Ubuntu 24.04 LTS, por ejemplo un VPS de CubePath, con al menos 2 GB de RAM y 10 GB libres en disco. Cada sesión gráfica consume entre 300 y 500 MB de RAM. - Un usuario no root con privilegios `sudo` (en la guía, `your_user`) que tenga contraseña: XRDP autentica con la contraseña del sistema, no con claves SSH. - Acceso SSH al servidor desde tu equipo. - Un cliente RDP: **Conexión a Escritorio remoto** (`mstsc`) en Windows, **Windows App** en macOS o **Remmina** en Linux. Los mismos pasos sirven para Debian 12; los paquetes tienen el mismo nombre. Si tu usuario solo entra con clave SSH y no tiene contraseña, asígnale una: ```bash sudo passwd your_user ``` ## Paso 1: Instalar el entorno de escritorio XFCE XRDP solo transmite la pantalla; necesita un entorno de escritorio que dibujar. XFCE es ligero y funciona bien con XRDP, a diferencia de GNOME, que consume más recursos y da más problemas en sesiones remotas. ```bash sudo apt update sudo apt install xfce4 xfce4-terminal dbus-x11 ``` El paquete `dbus-x11` evita errores al iniciar la sesión de XFCE desde XRDP. La instalación descarga varios cientos de megas y puede tardar unos minutos. Si durante la instalación se ha instalado un gestor de inicio de sesión gráfico como LightDM, no lo necesitas en un servidor sin monitor. Comprueba si existe y desactívalo: ```bash systemctl list-unit-files lightdm.service sudo systemctl disable --now lightdm ``` Si el primer comando muestra `0 unit files listed`, no hay nada que desactivar. ## Paso 2: Instalar XRDP Instala XRDP desde los repositorios de Ubuntu. El paquete incluye `xorgxrdp`, el módulo que permite a Xorg funcionar como servidor gráfico de la sesión remota: ```bash sudo apt install xrdp ``` XRDP usa por defecto el certificado autofirmado del sistema (`ssl-cert-snakeoil`), cuya clave privada solo puede leer el grupo `ssl-cert`. Añade el usuario `xrdp` a ese grupo y reinicia el servicio: ```bash sudo adduser xrdp ssl-cert sudo systemctl restart xrdp ``` Comprueba que el servicio está activo y escuchando en el puerto 3389: ```bash sudo systemctl status xrdp --no-pager sudo ss -tlnp | grep 3389 ``` ```output ● xrdp.service - xrdp daemon Loaded: loaded (/usr/lib/systemd/system/xrdp.service; enabled; preset: enabled) Active: active (running) since Thu 2026-09-25 10:20:14 UTC; 5s ago ... LISTEN 0 2 *:3389 *:* users:(("xrdp",pid=4321,fd=11)) ``` El servicio `xrdp-sesman`, que crea las sesiones de escritorio, se arranca automáticamente junto a `xrdp`. ## Paso 3: Indicar a XRDP qué escritorio iniciar Al iniciar sesión, XRDP ejecuta `/etc/xrdp/startwm.sh`, que a su vez usa el archivo `~/.xsession` del usuario si existe. Crea ese archivo para que siempre arranque XFCE: ```bash echo "xfce4-session" > ~/.xsession ``` Para que los usuarios que crees en el futuro tengan la misma configuración, cópialo también a `/etc/skel`: ```bash echo "xfce4-session" | sudo tee /etc/skel/.xsession ``` Reinicia XRDP para aplicar los cambios: ```bash sudo systemctl restart xrdp ``` ## Paso 4: Restringir XRDP a localhost Exponer el puerto 3389 a Internet atrae escaneos y ataques de fuerza bruta constantes contra las contraseñas. La opción más segura es que XRDP solo escuche en `127.0.0.1` y acceder a través de un túnel SSH, que ya está autenticado con tu clave. Edita la configuración principal: ```bash sudo nano /etc/xrdp/xrdp.ini ``` En la sección `[Globals]`, busca la línea `port=3389` y cámbiala por: ```ini port=tcp://127.0.0.1:3389 ``` Reinicia el servicio y comprueba que ya solo escucha en localhost: ```bash sudo systemctl restart xrdp sudo ss -tlnp | grep 3389 ``` ```output LISTEN 0 2 127.0.0.1:3389 0.0.0.0:* users:(("xrdp",pid=4410,fd=11)) ``` No necesitas abrir ningún puerto adicional en UFW: el acceso entra por SSH, que ya tienes permitido. > Nota: si prefieres conectar directamente sin túnel, deja `port=3389` y abre el puerto solo para tu IP fija con `sudo ufw allow from your_ip to any port 3389 proto tcp`. No abras el 3389 a cualquier origen. ## Paso 5: Conectarte a través de un túnel SSH Desde tu equipo, abre un túnel que reenvíe el puerto local 3390 al puerto 3389 del servidor. Se usa 3390 porque en Windows el 3389 local puede estar ocupado por el propio servicio de Escritorio remoto. En Windows (PowerShell, con el cliente OpenSSH incluido en el sistema), macOS o Linux: ```bash ssh -N -L 3390:127.0.0.1:3389 your_user@your_server_ip ``` El comando no muestra nada y se queda abierto mientras dure el túnel. Déjalo así y, en otra ventana, abre el cliente RDP: - **Windows**: ejecuta `mstsc`, escribe `localhost:3390` en **Equipo** y pulsa **Conectar**. - **macOS**: en Windows App, añade un PC con el nombre `localhost:3390`. - **Linux**: en Remmina, crea una conexión RDP a `localhost:3390`. El cliente avisará de que el certificado no es de confianza, porque es autofirmado; acéptalo. Aparecerá la pantalla de inicio de sesión de XRDP con la sesión **Xorg** seleccionada. Introduce `your_user` y su contraseña y, tras unos segundos, verás el escritorio de XFCE. Cuando termines, cierra la sesión desde el menú de XFCE (**Log Out**) y detén el túnel con `Ctrl+C`. ## Paso 6: Limitar quién puede conectarse y gestionar las sesiones Por defecto, cualquier usuario del sistema con contraseña puede iniciar sesión por XRDP. Limítalo a un grupo concreto. Crea el grupo `tsusers` y añade a tu usuario: ```bash sudo groupadd tsusers sudo usermod -aG tsusers your_user ``` Edita la configuración del gestor de sesiones: ```bash sudo nano /etc/xrdp/sesman.ini ``` En la sección `[Security]`, deja estos valores (algunos ya existen; cámbialos en lugar de duplicarlos): ```ini [Security] AllowRootLogin=false MaxLoginRetry=4 TerminalServerUsers=tsusers AlwaysGroupCheck=true ``` Con `AlwaysGroupCheck=true`, solo los miembros de `tsusers` pueden entrar. `AllowRootLogin=false` impide iniciar sesión gráfica como root. En el mismo archivo, la sección `[Sessions]` controla qué pasa con las sesiones. Si cierras la ventana del cliente sin cerrar sesión, la sesión sigue abierta en el servidor y te reconectas a ella la próxima vez. Para que las sesiones abandonadas no consuman memoria indefinidamente, ciérralas tras una hora desconectadas: ```ini [Sessions] KillDisconnected=true DisconnectedTimeLimit=3600 ``` Reinicia XRDP para aplicar los cambios: ```bash sudo systemctl restart xrdp ``` Para ver las sesiones gráficas activas, lista los procesos Xorg que ha lanzado XRDP (uno por sesión): ```bash pgrep -a Xorg ``` ```output 5120 /usr/lib/xorg/Xorg :10 -auth .Xauthority -config xrdp/xorg.conf -noreset -nolisten tcp -logfile .xorgxrdp.%s.log ``` ## Solución de problemas **La conexión se cierra justo después de introducir la contraseña.** Revisa los logs del gestor de sesiones: ```bash sudo tail -n 50 /var/log/xrdp-sesman.log ``` Si aparece un error de autenticación, comprueba la contraseña y que el usuario pertenece a `tsusers`. Si el problema es la sesión gráfica, revisa `~/.xsession-errors` y `~/.xorgxrdp.10.log` en el directorio del usuario. **Pantalla negra tras iniciar sesión.** Suele deberse a que el usuario tiene una sesión abierta de otro escritorio o a un `~/.xsession` incorrecto. Comprueba el contenido del archivo: ```bash cat ~/.xsession ``` Debe contener solo `xfce4-session`. Si el problema persiste, cierra las sesiones colgadas del usuario con `sudo pkill -u your_user Xorg` y vuelve a conectar. **El cliente RDP no conecta al túnel.** Comprueba que el comando `ssh -L` sigue abierto y que en el servidor XRDP escucha en `127.0.0.1:3389` (`sudo ss -tlnp | grep 3389`). **Error de certificado al arrancar XRDP en `/var/log/xrdp.log`.** El usuario `xrdp` no puede leer la clave privada. Confirma que está en el grupo `ssl-cert` con `id xrdp` y reinicia el servicio. **La sesión va lenta.** En el cliente RDP, reduce la profundidad de color a 16 bits y desactiva el fondo de escritorio. En XFCE, desactiva el compositor en **Configuración > Ajustes del gestor de ventanas > Compositor**. ## Conclusión Has instalado XFCE y XRDP en Ubuntu 24.04, te has conectado con un cliente RDP estándar a través de un túnel SSH y has limitado el acceso a un grupo de usuarios con limpieza automática de sesiones abandonadas. Como siguientes pasos, crea usuarios sin privilegios `sudo` para el trabajo gráfico diario, instala solo las aplicaciones de escritorio que necesites y, si varias personas deben acceder a distintos servidores, centraliza el acceso con Apache Guacamole.