VDI en Ubuntu 24.04 y ThinLinc: una alternativa a Windows Terminal Server (RDP) | INTROSERV

Cómo desplegar una VDI completa en Ubuntu Linux y ThinLinc: una alternativa a Windows Terminal Server

Introducción

Si está buscando una forma de configurar un escritorio remoto para sus empleados y necesita una alternativa a RDP en Linux, ThinLinc es una de las soluciones más estables para crear una infraestructura VDI.

ThinLinc es una solución profesional para organizar servidores de terminales basados en Linux de la empresa sueca Cendio, que lleva desarrollando soluciones para servidores de terminales desde 1992. A diferencia del VNC estándar, proporciona renderizado de gráficos de alta velocidad, soporte completo de sonido y reenvío de recursos locales (impresoras, tarjetas inteligentes, carpetas).

Principales características de la licencia:

  • Versión gratuita: Totalmente funcional y gratuita para siempre para un máximo de 10 usuarios simultáneos. Ideal para pequeñas empresas o uso personal.
  • Funcionalidad unificada: La versión gratuita no tiene limitaciones en cuanto a capacidades en comparación con la versión de pago.
  • Compatibilidad con LDAP: Utilice usuarios de Active Directory para iniciar sesión en el servidor terminal.
  • Licencias concurrentes: No se conceden licencias a los usuarios creados en el sistema, sino a las sesiones concurrentes.

Ejemplo: Usted puede tener 50 usuarios creados, pero si sólo 10 están trabajando al mismo tiempo, la versión gratuita es suficiente para usted.

Pila técnica de esta guía

Todas las acciones descritas en este manual se han validado utilizando la siguiente pila de software/hardware:

Componente

Versión / Especificación

Sistema operativo

Ubuntu Server 24.04.3 LTS (Noble Numbat)

Shell gráfico

KDE Plasmashell 5.27.12 (paquete kde-standard)

Servidor de terminales

Cendio ThinLinc v4.20.0

Máquina virtual

CPU de 4 núcleos, 8 GB de RAM, SSD NVMe

Usuario

Usuario estándar en el grupo sudo

Paso 1: Preparar y actualizar el sistema

Cree un usuario estándar y añádalo al grupo sudo si aún no existe en el sistema:

sudo adduser USERNAME

Sustituya USERNAME por su nombre de usuario.

Añadir un usuario al grupo sudo:

sudo usermod -aG sudo USERNAME

Sustituya USERNAME por su nombre de usuario.

Actualización del sistema:

sudo apt update && sudo apt upgrade -y

Instalación y habilitación del sistema de impresión CUPS:

sudo apt install cups ghostscript -y sudo systemctl enable --now cups

Paso 2: Instalación del entorno de escritorio KDE

sudo apt install kde-standard -y

Si desea el conjunto completo de aplicaciones (juegos, office, etc.), utilice kde-full, pero para un servidor, kde-standard suele ser suficiente.

Info

Si aparece una ventana azul durante la instalación pidiéndole que seleccione un gestor de pantalla, seleccione sddm (nativo de KDE).

Reinicie: Después de instalar todos los paquetes, es mejor reiniciar para asegurarse de que el servidor X y el shell se inician correctamente.

sudo reboot now

Paso 3: Obtener el enlace del paquete de instalación

Vaya a Cendio we bsite -> Pestaña de descargas -> Para administradores -> Descargar el software del servidor ThinLinc -> Rellene el formulario para recibir el enlace

En la ventana que se abre, haga clic con el botón derecho en Descargar software de servidor para obtener un enlace a la última versión de ThinLinc. Puede guardarlo en el Bloc de notas para su posterior instalación.

Paso 4: Descargar ThinLinc

ThinLinc no se distribuye a través de los repositorios estándar de Ubuntu, así que descárgalo desde el sitio web oficial de Cendio utilizando el enlace que guardaste anteriormente:

wget https://www.cendio.com/downloads/server/tl-4.20.0-server.zip

Sustituye el enlace por el que obtuviste en el paso #3.

Paso 5: Descomprime el archivo y ve a la carpeta con los archivos descomprimidos

sudo apt install unzip -y unzip tl-4.20.0-server.zip cd tl-4.20.0-server

Donde tl-4 .20.0-server-es el nombre del archivo que ha descargado

Paso 6: Instalación de ThinLinc Server

Ejecutar el instalador:ThinLinc incluye un práctico script de instalación que incluirá automáticamente las dependencias necesarias.

sudo ./install-server

El instalador le pedirá información en ciertos puntos, por ejemplo, 'Presione Enter para continuar' o para confirmar opciones específicas.

Utilidad de Configuración del Servidor ThinLinc

Después de la instalación de ThinLinc, la utilidad de configuración del servidor seguirá inmediatamente. Se recomienda continuar con la configuración.

Durante la configuración, se le pedirá que instale los paquetes faltantes y confirme su configuración:

  • Ejecutar la configuración de ThinLinc ahora [Sí/no]?
  • ¿Tipo de servidor [Maestro/agente]? Maestro
  • ¿Instalar automáticamente los paquetes necesarios [Sí/no]?
  • ¿Desea continuar con la instalación [Sí/no]?

Instale los componentes LDAP para poder iniciar sesión en el sistema utilizando una cuenta dentro de AD.

¿Instalar automáticamente los paquetes necesarios [Sí/no]?

Especifique qué se debe utilizar para el acceso externo:

¿Dirección de acceso externo a utilizar [ip/nombre de host/manual]? ip

Introduzca la dirección de correo electrónico del administrador del sistema:

Correo electrónico del administrador []? Por favor, introduzca su email de contacto.

ThinLink ofrece una interfaz web para administrar el servidor terminal. Puede desactivarla más adelante. Sin embargo, por ahora, por favor introduzca una contraseña segura:

¿Contraseña de Administración Web? SU_CONTRASEÑA_FIABLE

Se recomienda instalar la configuración de AppArmor:

¿Instalar la configuración de AppArmor [Sí/no]?

Una vez finalizada la instalación y configuración, recibirá un mensaje confirmando que la instalación se ha realizado correctamente.

Paso 7: Añadir la ruta a sudo

Para asegurar que el sistema siempre encuentre los comandos de ThinLinc, necesita editar el archivo visudo

sudo visudo

y reemplazar el valor en la línea "Defaults secure_path=" con

"/sbin:/bin:/usr/sbin:/usr/bin:/opt/thinlinc/bin:/opt/thinlinc/sbin".

Paso 8: Comprobación y configuración de los puertos de acceso

ThinLinc opera sobre SSH (puerto 22) para el tráfico primario y utiliza los puertos 1010 (interfaz de administración web) y 300 (cliente web).

Si tiene ufw habilitado, permita el acceso:

sudo ufw default deny incoming && \ sudo ufw default allow outgoing && sudo ufw allow 22/tcp && \ sudo ufw allow 300/tcp && \ sudo ufw reload

Paso 9: Optimizar el rendimiento de la GUI para el acceso remoto

Un comando que creará un archivo de configuración global y obligará a desactivar la composición y las animaciones para todos los usuarios con el fin de mejorar la capacidad de respuesta del escritorio remoto.

sudo cp /etc/xdg/kwinrc /etc/xdg/kwinrc.backup 2>/dev/null ||true sudo bash -c 'cat > /etc/xdg/kwinrc << EOF [Compositing] Enabled=false OpenGLIsUnsafe=true [Plugins] blurEnabled=false contrastEnabled=false kwin4_effect_translucencyEnabled=false slideEnabled=false zoomEnabled=false [Windows] ElectricBorderDelay=0 ElectricBorderCooldown=0 [Effect-PresentWindows] BorderActivate=9 [KWin] AnimationDurationFactor=0 EOF'

Paso 10: Conexión

Puede conectarse a un escritorio remoto de dos formas: a través del cliente nativo de ThinLinc o directamente en el navegador https://YOUR_SERVER_IP:300.

El cliente se puede descargar desde la página Cendio -> Descargar -> Para usuarios.

Como puede ver, el cliente es muy similar al cliente RDP de MS. Los ajustes permiten configurar el reenvío de dispositivos y el portapapeles compartido. La configuración de la calidad de visualización del escritorio remoto también es bastante avanzada.

Paso 11 (Opcional) Deshabilitar el acceso al servidor a través de un navegador web

Dado que el acceso a través del navegador crea vectores de ataque adicionales, es mejor deshabilitar el acceso al panel de administración web en el puerto 1010 y el acceso al cliente web de escritorio remoto.

Esto puede hacerse deshabilitando los servicios relevantes + cerrando los puertos en el cortafuegos.

Deshabilitar servicios:

# Detenemos el cliente web y el panel de administración sudo systemctl stop tlwebclient tlwebadm # Prohibimos su autoarranque sudo systemctl disable tlwebclient tlwebadm

Denegamos el acceso al puerto 300

sudo ufw deny 300/tcp sudo ufw reload

Tip

Recuerde que ThinLinc utiliza SSH como transporte. Esto significa que todos los mecanismos de seguridad SSH protegen automáticamente su escritorio gráfico.

Problemas potenciales y recomendaciones para el hardware

Incluso con una instalación correcta, puede haber algunos matices específicos de los escritorios remotos.

Problema #1: No hay sonido o el vídeo se retrasa en el navegador

Motivo: Ubuntu 24.04 instala los navegadores (Firefox, Chromium) en formato Snap por defecto. Estos paquetes se ejecutan en un sandbox aislado, que:

  • No ve los canales de sonido virtuales de ThinLinc.
  • La renderización de la interfaz de usuario es más lenta debido a las capas de contenerización.

Ejemplo de instalación de Google Chrome desde un paquete .deb:

wget https://dl.google.com/linux/direct/google-chrome-stable_current_amd64.deb sudo apt install ./google-chrome-stable_current_amd64.deb

Tip

Para obtener un sonido adecuado y gráficos fluidos, instale siempre los navegadores desde paquetes .deb o repositorios oficiales. Evite las versiones Snap para servidores de terminales.

Problema nº 2: "Desmoronamiento" de la imagen o lag

Motivo: Conexión a Internet débil o recursos de procesador insuficientes para comprimir el flujo de vídeo.

  • Solución: Asegúrese de que la optimización (compresión adaptativa) está activada en la configuración del cliente ThinLinc.
  • Solución: Asegúrese de que está utilizando una sesión de KDE Plasma (X11) y no Wayland.

Requisitos del sistema recomendados

Para garantizar una experiencia realmente cómoda al trabajar con KDE a través de ThinLinc (sin sonido entrecortado o congelación al abrir las pestañas del navegador), recomendamos las siguientes especificaciones de VPS:

Parámetro

Mínimo

Recomendado (1 usuario)

Procesador (CPU)

2 núcleos virtuales

4 núcleos virtuales

Memoria (RAM)

4 GB

4 GB

Disco (almacenamiento)

40 GB SSD

40 GB SSD / NVMe

SO

Ubuntu 24.04

Ubuntu 24.04

Incluso con una configuración mínima, un servidor dedicado ofrecerá un rendimiento VDI significativamente superior. Si planea utilizar un servidor de terminales como parte de una infraestructura empresarial, es mejor considerar recursos dedicados para garantizar un rendimiento estable para un sistema multiusuario.

ThinLinc también puede utilizar la GPU para el procesamiento de gráficos 3D mediante VirtualGL. Esto requiere instalar controladores GPU propietarios y ejecutar el comando vglrun para lanzar aplicaciones que requieran procesamiento GPU.

Tip

Si planea usar su VPS para múltiples usuarios al mismo tiempo, agregue 2GB de RAM y 1 núcleo vCPU por cada usuario activo adicional.

VAT

  • Other

    Other

    0%
  • austria

    Austria

    20%
  • Belgium

    Belgium

    21%
  • Bulgaria

    Bulgaria

    20%
  • Croatia

    Croatia

    25%
  • Cyprus

    Cyprus

    19%
  • Czech Republic

    Czech Republic

    21%
  • Denmark

    Denmark

    25%
  • Estonia

    Estonia

    22%
  • France

    France

    20%
  • Finland

    Finland

    24%
  • Germany

    Germany

    19%
  • Greece

    Greece

    24%
  • Hungary

    Hungary

    27%
  • Ireland

    Ireland

    23%
  • Italy

    Italy

    22%
  • Latvia

    Latvia

    21%
  • Lithuania

    Lithuania

    21%
  • Luxembourg

    Luxembourg

    17%
  • Malta

    Malta

    18%
  • Netherlands

    Netherlands

    21%
  • Poland

    Poland

    23%
  • Portugal

    Portugal

    23%
  • Romania

    Romania

    19%
  • Slovakia

    Slovakia

    20%
  • Slovenia

    Slovenia

    %
  • Spain

    Spain

    21%
  • Sweden

    Sweden

    25%
  • USA

    USA

    0%
european
states
  • Other
  • canada
  • poland
  • european-union
  • france
  • germany
  • austria
  • austria
  • austria
  • austria
  • austria
  • austria
  • austria
  • austria
  • austria
  • austria
  • austria
  • austria
  • austria
  • austria
  • austria
  • austria
  • austria
  • austria
  • austria
  • austria
  • austria
  • austria
  • austria
  • austria
  • austria
  • austria
  • austria
  • austria
  • austria
  • austria