−25%

en Windows con pago anual, hasta el 31/10. Ver planes

EQVPS
Empezar

Cómo instalar un escritorio en un VPS Linux y conectarte con Escritorio remoto (XFCE + xrdp)

Un escritorio gráfico en un VPS con Ubuntu 24.04 que se abre con la aplicación normal de Escritorio remoto: XFCE y xrdp, los dos ajustes por defecto que lo rompen (sesión equivocada, sin TLS) y una configuración en la que el puerto 3389 nunca da a internet. Con el espacio en disco y la RAM por sesión medidos.

Un servidor Linux no tiene pantalla, y casi siempre no la necesita. A veces sí: un navegador que tiene que salir desde la dirección del propio servidor, una herramienta solo gráfica o un escritorio que puedes dejar abierto y retomar desde cualquier ordenador. Esta guía añade a Ubuntu 24.04 el escritorio ligero XFCE y xrdp, para que lo abras con la misma aplicación de Escritorio remoto que usarías con un servidor Windows.

Probamos cada paso en nuestra imagen de Ubuntu 24.04. Dos ajustes por defecto estropearon el primer intento, y abajo corregimos los dos. Necesitarás un usuario normal con sudo; la guía de configuración de Ubuntu crea uno. En los ejemplos se llama deploy.

1. Instala XFCE y xrdp

sudo apt update
sudo apt install -y xfce4 xfce4-goodies xrdp

En nuestro servidor de 2 GB tardó unos cuatro minutos y medio y ocupó 1,7 GB de disco (2,7 GB usados antes, 4,4 GB después). Instala xrdp 0.9.24, que arranca enseguida y escucha en el puerto 3389.

2. Haz que xrdp arranque XFCE, no GNOME

Entra con el usuario que va a usar el escritorio y ejecuta:

echo xfce4-session > ~/.xsession

Sin este archivo, nuestro primer inicio de sesión arrancó GNOME en lugar de XFCE, y la sesión murió al instante con «Oh no! Something has gone wrong». Los paquetes del paso 1 instalan también el gestor de sesiones de GNOME, y Ubuntu lo deja como opción por defecto. Con ~/.xsession en su sitio, xrdp arranca XFCE.

3. Deja que xrdp use TLS

xrdp funciona con su propio usuario xrdp, y ese usuario no puede leer la clave privada del servidor. Nuestra primera conexión funcionó, pero /var/log/xrdp.log mostraba por qué no había que fiarse de ella:

Cannot read private key file /etc/xrdp/key.pem: Permission denied
Non-TLS connection established from ::ffff:127.0.0.1

Sin la clave, xrdp recurre al antiguo cifrado RDP en lugar de TLS. Dale acceso y reinícialo:

sudo adduser xrdp ssl-cert
sudo systemctl restart xrdp

La siguiente conexión aparecía en nuestro registro como TLS connection established ... TLSv1.3. Puedes comprobar la tuya del mismo modo:

sudo grep -E "TLS connection|Non-TLS" /var/log/xrdp.log | tail -2

4. Mantén el puerto 3389 fuera de internet

Una vez instalado, xrdp escucha en todas las direcciones. A diferencia de Windows, xrdp no tiene Network Level Authentication, así que cualquiera que llegue al puerto obtiene una pantalla de inicio de sesión en la que probar contraseñas. Haz que escuche solo en el propio servidor:

sudo sed -i 's|^port=3389$|port=tcp://127.0.0.1:3389|' /etc/xrdp/xrdp.ini
sudo systemctl restart xrdp
ss -ltn | grep 3389

La última línea debe mostrar 127.0.0.1:3389. En nuestra prueba, una conexión directa a la dirección del servidor en el 3389 pasó a ser rechazada, y el túnel del paso siguiente siguió funcionando.

5. Conéctate a través de SSH

En tu ordenador, abre un túnel. En Windows, PowerShell tiene el mismo comando ssh:

ssh -L 13389:localhost:3389 deploy@YOUR.SERVER.IP

En un plan NAT, añade -p y el puerto SSH personal de tu panel. Deja esa ventana abierta. Después apunta tu aplicación de Escritorio remoto a localhost:13389 y entra como deploy con la contraseña de ese usuario:

  • Windows: Conexión a Escritorio remoto (mstsc).
  • macOS: Windows App, de la App Store.
  • Linux: Remmina, o xfreerdp /v:localhost:13389 /u:deploy.

El puerto local es 13389 y no 3389 porque el 3389 puede estar ya ocupado en tu ordenador por su propio Escritorio remoto. La primera vez, la aplicación avisa de un certificado que no reconoce. Es el certificado autofirmado del servidor, y la conexión ya va cifrada dentro de SSH.

6. Qué obtienes

Obtienes un escritorio XFCE con panel, gestor de archivos y terminal. En nuestro servidor, una sesión añadió unos 360 MB de RAM: 388 MB usados antes de conectar y 747 MB durante la sesión.

Cerrar la ventana de Escritorio remoto no cierra la sesión. En nuestra prueba, un comando largo siguió en marcha tras desconectarnos. Al volver a conectar, xrdp nos devolvió a la misma sesión (reconnected session ... display :10 en su registro). Para terminar la sesión de verdad, usa Log Out en el menú de XFCE.

Qué plan elegir

El escritorio necesita más RAM que CPU. Micro (2 vCPU, 2 GB, 25 GB, $5/mes) mueve XFCE y herramientas ligeras sin problema. Si piensas tener un navegador abierto en la sesión, elige Small con 4 vCPU y 4 GB por $8/mes. Los dos son planes NAT, y aquí no importa: el Escritorio remoto pasa por tu puerto SSH.

Si lo que necesitas en realidad es software de Windows, un VPS Windows lo ejecuta directamente, y Windows-Small empieza en $11/mes. Ubuntu 24.04 está en la página de Ubuntu VPS y en todos los planes Linux de VPS. El pago es en USDT, USDC o ETH en Base, Ethereum o Polygon.

Preguntas frecuentes

¿Puedo conectarme con la aplicación normal de Escritorio remoto de Windows?

Sí. xrdp habla el protocolo RDP, así que funcionan la Conexión a Escritorio remoto integrada en Windows, Windows App en macOS y Remmina o xfreerdp en Linux. Te conectas a localhost a través de un túnel SSH en lugar de a la dirección del servidor.

¿Funciona en un plan NAT?

Sí. La conexión RDP viaja dentro de SSH, y SSH es justo el único puerto que un plan NAT redirige a tu servidor. Es la configuración que esta guía recomienda en cualquier plan, porque el puerto 3389 queda cerrado a internet.

¿Cuánta RAM usa el escritorio?

En nuestro servidor de prueba, una sesión de XFCE añadió unos 360 MB: la memoria usada pasó de 388 MB a 747 MB. El plan Micro de 2 GB basta para el escritorio y herramientas ligeras. Si vas a usar un navegador en la sesión, 4 GB es más cómodo.

Veo una pantalla negra o «Oh no! Something has gone wrong». ¿Qué pasa?

xrdp arrancó GNOME en lugar de XFCE. Los paquetes del paso 1 instalan también el gestor de sesiones de GNOME, y Ubuntu lo pone como opción del sistema por defecto. Crea ~/.xsession con xfce4-session para el usuario que entra y vuelve a conectarte.

¿Puedo entrar por RDP como root?

xrdp lo permite por defecto (AllowRootLogin=true en /etc/xrdp/sesman.ini), pero es mejor usar un usuario normal con sudo. Para bloquear root, pon AllowRootLogin=false y reinicia xrdp.

Comentarios

Aún no hay comentarios. Sé el primero.

Deja un comentario

Los comentarios se moderan antes de aparecer.