Come distribuire una VDI completa su Ubuntu Linux e ThinLinc: un'alternativa a Windows Terminal Server
Introduzione
Se state cercando un modo per impostare un desktop remoto per i vostri dipendenti e avete bisogno di un'alternativa a RDP su Linux, ThinLinc è una delle soluzioni più stabili per costruire un'infrastruttura VDI.
ThinLinc è una soluzione professionale per l'organizzazione di terminal server basati su Linux dell'azienda svedese Cendio, che sviluppa soluzioni per terminal server dal 1992. A differenza del VNC standard, offre un rendering grafico ad alta velocità, un supporto audio completo e l'inoltro delle risorse locali (stampanti, smart card, cartelle).
Caratteristiche principali della licenza:
- Versione gratuita: Completamente funzionale e gratuita per sempre per un massimo di 10 utenti contemporanei. Ideale per piccole aziende o per uso personale.
- Funzionalità unificata: La versione gratuita non presenta limitazioni in termini di funzionalità rispetto alla versione a pagamento.
- Supporto LDAP: Utilizza gli utenti di Active Directory per accedere al terminal server.
- Licenze concorrenti: Non vengono concesse licenze agli utenti creati nel sistema, ma alle sessioni simultanee.
Esempio: Potete avere 50 utenti creati, ma se solo 10 lavorano contemporaneamente, la versione gratuita è sufficiente.
Pila tecnica di questa guida
Tutte le azioni descritte in questo manuale sono state convalidate utilizzando il seguente stack software/hardware:
Componente |
Versione / Specifica |
Sistema operativo |
Ubuntu Server 24.04.3 LTS (Noble Numbat) |
Guscio grafico |
KDE Plasmashell 5.27.12 (pacchetto kde-standard) |
Server terminale |
Cendio ThinLinc v4.20.0 |
Macchina virtuale |
CPU a 4 core, 8 GB di RAM, SSD NVMe |
Utente |
Utente standard nel gruppo sudo |
Passo 1: Preparare e aggiornare il sistema
Create un utente standard e aggiungetelo al gruppo sudo se non esiste già nel sistema:
sudo adduser USERNAME
Sostituire USERNAME con il proprio nome utente.
Aggiungere un utente al gruppo sudo:
sudo usermod -aG sudo USERNAME
Sostituire USERNAME con il proprio nome utente.
Aggiornamento del sistema:
sudo apt update && sudo apt upgrade -y
Installare e abilitare il sistema di stampa CUPS:
sudo apt install cups ghostscript -y sudo systemctl enable --now cups
Passo 2: Installare l'ambiente desktop KDE
sudo apt install kde-standard -y
Se volete la suite completa di applicazioni (giochi, office, ecc.), usate kde-full, ma per un server, kde-standard è solitamente sufficiente.
Se durante l'installazione appare una finestra blu che chiede di selezionare un display manager, selezionare sddm (nativo di KDE).
Riavviare: Dopo aver installato tutti i pacchetti, è meglio riavviare per assicurarsi che il server X e la shell si avviino correttamente.
sudo reboot now
Passo 3: ottenere il link al pacchetto di installazione
Andare al sito di Cendio -> scheda Download -> Per gli amministratori -> Scarica il software del server ThinLinc -> Compilare il modulo per ricevere il link

Nella finestra che si apre, fare clic con il tasto destro del mouse su Download server software per ottenere un link all'ultima versione di ThinLinc. È possibile salvarlo nel Blocco note per un'installazione successiva.
.jpg)
Passo 4: Scaricare ThinLinc
ThinLinc non è distribuito attraverso i repository standard di Ubuntu, quindi scaricatelo dal sito ufficiale di Cendio utilizzando il link salvato in precedenza:
wget https://www.cendio.com/downloads/server/tl-4.20.0-server.zip
Sostituite il link con quello ottenuto nel passaggio #3.
Passo 5: decomprimere l'archivio e andare nella cartella con i file decompressi
sudo apt install unzip -y unzip tl-4.20.0-server.zip cd tl-4.20.0-server
Dove tl-4.20.0-server-è il nome dell'archivio scaricato .
Passo 6: Installazione di ThinLinc Server
Avviare il programma di installazione:ThinLinc è dotato di un comodo script di installazione che inserisce automaticamente le dipendenze necessarie.
sudo ./install-server
Il programma di installazione chiederà di immettere dati in alcuni punti, ad esempio per "Premere Invio per continuare" o per confermare opzioni specifiche.
Utilità di configurazione del server ThinLinc
Dopo l'installazione di ThinLinc, seguirà immediatamente l'utilità di configurazione del server. Si consiglia di proseguire con la configurazione.
Durante la configurazione, verrà richiesto di installare i pacchetti mancanti e di confermare le impostazioni:
- Eseguire ora l'installazione di ThinLinc [Sì/no]? Sì
- Tipo di server [Master/agente]? Master
- Installare automaticamente i pacchetti necessari [Sì/no]? Sì
- Si desidera continuare l'installazione [Sì/no]? Sì
Installate i componenti LDAP in modo da poter accedere al sistema utilizzando un account in AD.
Installare automaticamente i pacchetti necessari [Sì/no]? Sì
Specificare cosa deve essere usato per l'accesso esterno:
Indirizzo raggiungibile dall'esterno da utilizzare [ip/hostname/manuale]? ip
Inserire l'indirizzo e-mail dell'amministratore del sistema:
Email amministratore []? Indicare l'e-mail di contatto.
ThinLink offre un'interfaccia web per l'amministrazione del terminal server. È possibile disattivarla in seguito. Tuttavia, per il momento, inserire una password forte:
Password di amministrazione Web? PASSWORD_AFFIDABILE
Si consiglia di installare la configurazione AppArmor:
Installare la configurazione AppArmor [Sì/no]? Sì
Una volta completata l'installazione e la configurazione, si riceverà un messaggio di conferma dell'avvenuta installazione.
Passo 7: Aggiunta del percorso a sudo
Per garantire che il sistema trovi sempre i comandi ThinLinc, è necessario modificare il file visudo
sudo visudo
e sostituire il valore nella riga "Defaults secure_path=" con
"/sbin:/bin:/usr/sbin:/usr/bin:/opt/thinlinc/bin:/opt/thinlinc/sbin".
Passo 8: Verifica e configurazione delle porte di accesso
ThinLinc opera su SSH (porta 22) per il traffico primario e utilizza le porte 1010 (interfaccia di amministrazione web) e 300 (client web).
Se avete abilitato ufw, consentite l'accesso:
sudo ufw default deny incoming && \ sudo ufw default allow outgoing && sudo ufw allow 22/tcp && \ sudo ufw allow 300/tcp && \ sudo ufw reload
Passo 9: Ottimizzare le prestazioni della GUI per l'accesso remoto
Un comando che crea un file di configurazione globale e forza il compositing e le animazioni a essere disabilitati per tutti gli utenti per migliorare la reattività del desktop 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'
Passo 10: Connessione
È possibile connettersi a un desktop remoto in due modi: attraverso il client ThinLinc nativo o direttamente nel browser https://YOUR_SERVER_IP:300.
Il client può essere scaricato dalla pagina Cendio -> Download -> Per gli utenti.
.jpg)
Come si può vedere, il client è molto simile al client RDP di MS. Le impostazioni consentono di configurare l'inoltro dei dispositivi e gli appunti condivisi. Anche le impostazioni della qualità di visualizzazione del desktop remoto sono piuttosto avanzate.
Fase 11 (facoltativa) Disabilitare l'accesso al server tramite browser web
Poiché l'accesso tramite browser crea ulteriori vettori di attacco, è meglio disabilitare l'accesso al pannello di amministrazione web sulla porta 1010 e l'accesso al client web di desktop remoto.
Questo può essere fatto disabilitando i servizi pertinenti + chiudendo le porte nel firewall.
Disabilitare i servizi:
# Arrestare il client web e il pannello di amministrazione sudo systemctl stop tlwebclient tlwebadm # Vietare il loro avvio automatico sudo systemctl disable tlwebclient tlwebadm
Negare l'accesso alla porta 300:
sudo ufw deny 300/tcp sudo ufw reload
Ricordare che ThinLinc utilizza SSH come trasporto. Ciò significa che tutti i meccanismi di sicurezza SSH proteggono automaticamente il desktop grafico.
Potenziali problemi e raccomandazioni per l'hardware
Anche se l'installazione è stata eseguita correttamente, possono verificarsi alcuni problemi specifici dei desktop remoti.
Problema n. 1: assenza di audio o ritardi video nel browser
Motivo: Ubuntu 24.04 installa i browser (Firefox, Chromium) in formato Snap per impostazione predefinita. Questi pacchetti vengono eseguiti in una sandbox isolata, che:
- Non vede i canali audio virtuali ThinLinc.
- Rendering dell'interfaccia utente più lento a causa dei livelli di containerizzazione.
Esempio di installazione di Google Chrome da un pacchetto .deb:
wget https://dl.google.com/linux/direct/google-chrome-stable_current_amd64.deb sudo apt install ./google-chrome-stable_current_amd64.deb
Per ottenere un suono corretto e una grafica fluida, installare sempre i browser da pacchetti .deb o da repository ufficiali. Evitate le versioni Snap per i terminal server.
Problema n. 2: immagine "sbriciolata" o lag
Motivo: Connessione Internet debole o risorse del processore insufficienti per comprimere il flusso video.
- Soluzione: Assicurarsi che l'ottimizzazione (compressione adattiva) sia abilitata nelle impostazioni di ThinLinc Client.
- Soluzione: Assicurarsi di utilizzare una sessione KDE Plasma (X11) e non Wayland.
Requisiti di sistema consigliati
Per garantire un'esperienza davvero confortevole quando si lavora con KDE tramite ThinLinc (senza suoni stuttering o blocchi all'apertura delle schede del browser), si consigliano le seguenti specifiche VPS:
Parametro |
Minimo |
Consigliato (1 utente) |
Processore (CPU) |
2 core virtuali |
4 core virtuali |
Memoria (RAM) |
4 GB |
4 GB + |
Disco (archiviazione) |
40 GB SSD |
40 GB SSD / NVMe |
SISTEMA OPERATIVO |
Ubuntu 24.04 |
Ubuntu 24.04 |
Anche con una configurazione minima, un server dedicato garantisce prestazioni VDI nettamente superiori. Se si prevede di utilizzare un terminal server come parte di un'infrastruttura aziendale, è meglio considerare risorse dedicate per garantire prestazioni stabili per un sistema multiutente.
ThinLinc può anche utilizzare la GPU per l'elaborazione grafica 3D utilizzando VirtualGL. Ciò richiede l'installazione di driver GPU proprietari e l'esecuzione del comando vglrun per lanciare le applicazioni che richiedono l'elaborazione GPU.
Se si prevede di utilizzare il VPS per più utenti contemporaneamente, aggiungere 2 GB di RAM e 1 core vCPU per ogni utente attivo aggiuntivo.