VDI на Ubuntu 24.04 та ThinLinc: Альтернатива Windows Terminal Server (RDP) | INTROSERV

Як розгорнути повноцінний VDI на базі Ubuntu Linux та ThinLinc: альтернатива Windows Terminal Server

Вступ

Якщо ви шукаєте спосіб організувати віддалений робочий стіл для співробітників і вам потрібна альтернатива RDP на Linux, ThinLinc – це одне з найстабільніших рішень для побудови VDI інфраструктури.

ThinLinc – це професійне рішення для організації термінальних серверів на базі Linux від шведської компанії Cendio, яка розробляє термінальні сервери з 1992 року. На відміну від звичайного VNC, він забезпечує високу швидкість відтворення графіки, повноцінну підтримку звуку та прокидання локальних ресурсів (принтерів, смарт-карток, папок).

Ключові особливості ліцензування:

  • Безкоштовна версія: Повнофункціональна та безкоштовна назавжди для використання до 10 одночасних користувачів. Ідеально для малого бізнесу та особистого використання.
  • Єдиний функціонал: Безкоштовна версія нічим не обмежена за можливостями, порівняно з платною.
  • Підтримка LDAP: Використовуйте Active Directory для входу на термінальний сервер.
  • Конкурентні ліцензії: Ліцензуються не створені в системі користувачі, а одночасні (конкурентні) сесії.

Приклад: У вас може бути 50 користувачів, але якщо одночасно працюють лише 10 – вам достатньо безкоштовної версії.

Технічний стек даної інструкції

Усі дії, описані в цій інструкції, було протестовано на такому програмно-апаратному стеку:

Компонент

Версія / Специфікація

Операційна система

Сервер Ubuntu 24.04.3 LTS (Noble Numbat)

Графічна оболонка

KDE Plasmashell 5.27.12 (стандартний пакет kde)

Термінальний сервер

Cendio ThinLinc версії 4.20.0

Віртуальна машина

4-ядерний процесор, 8 ГБ оперативної пам'яті, твердотільний накопичувач NVMe

Користувач

Стандартний користувач у групі sudo

Крок 1: Підготовка та оновлення системи

Створення стандартного користувача та додавання до групи sudo якщо такого ще немає в системі:

<p>sudo adduser USERNAME</p>

Замініть USERNAME ім'ям користувача.

Додавання користувача до групи sudo:

sudo usermod -aG sudo USERNAME

Замініть USERNAME ім'ям користувача.

Оновлення системи:

sudo apt update && sudo apt upgrade -y

Встановлення та увімкнення системи друку CUPS

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

Крок 2: Встановлення графічної оболонки KDE

sudo apt install kde-standard -y

Якщо ви бажаєте абсолютно повний набір додатків (ігри, офіси і т.д.), використовуйте kde-full, але для сервера зазвичай достатньо kde-standard.

Info

Вибір менеджера входу (sddm): Якщо під час встановлення з'явиться синє вікно з вибором display manager. Вибирайте sddm (нативний для KDE).

Перезавантаження: Після встановлення всіх пакетів краще перезавантажитись, щоб переконатися, що X-сервер і оболонка стартують коректно.

sudo reboot now

Крок 3: Отримати посилання на пакет інсталяції

Перейдіть на веб-сайт Cendio -> вкладка Dowload -> For administrators -> Download ThinLinc server software -> Заповніть форму для отримання посилання

У вікні, що відкрилося, ПКМ на Download server software щоб отримати посилання на актуальну версію ThinLinc. Ви можете зберегти її в блокноті для подальшої установки.

Крок 4: Завантаження ThinLinc

ThinLinc не розповсюджується через стандартні репозиторії Ubuntu, тому завантажуємо його з офіційного сайту Cendio за раніше збереженим посиланням:

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

Замініть посилання на те, яке ви отримали на кроці №3.

Крок 5: Розпакуйте архів і перейдіть до папки з розпакованими файлами

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

Де tl-4.20.0-сервер – це ім'я завантаженого вами архіву.

Крок 6: Встановлення сервера ThinLinc

Запуск установщика: ThinLinc поставляється із зручним скриптом установки, який сам підтягне потрібні залежності.

sudo ./install-server

Під час інсталяції потрібно буде відповідати на запити системи, як-от “Press Enter to continue” чи підтвердження вибраних опцій.

Утиліта налаштування сервера ThinLinc

Після встановлення сервера відразу ж запуститься утиліта налаштування сервера. Рекомендується продовжити налаштування.

Під час налаштування буде запропоновано встановити відсутні пакети та підтвердити вибір налаштувань:

  • Run ThinLinc setup now [Yes/no]? Yes
  • Server type [Master/agent]? Master
  • Automatically install the necessary packages [Yes/no]? Yes
  • Do you want to continue with installation [Yes/no]? Yes

Встановіть LDAP компоненти, щоб можна було входити до системи під обліковими даними всередині AD.

Automatically install the necessary packages [Yes/no]? Yes

Вкажіть, що потрібно використовувати для доступу ззовні:

Externally reachable address to use [ip/hostname/manual]? ip

Вкажіть email адміністратора системи:

Administrator email []? Вкажіть свій контактний e-mail.

ThinLink пропонує веб-інтерфейс для адміністрування термінального сервера. Його можна буде відключити пізніше. Але на цьому етапі введіть надійний пароль:

Web Administration password? ВАШ_НАДІЙНИЙ_ПАРОЛЬ”

Установка AppArmor конфігурації рекомендується:

Install AppArmor configuration [Yes/no]? Yes

Після завершення встановлення та налаштування ви отримаєте повідомлення про успішне встановлення.

Крок 7: Додавання шляху до sudo

Щоб система завжди знаходила команди ThinLinc, потрібно відредагувати файл visudo

sudo visudo

і замініть значення у рядку “Defaults secure_path=” на “/sbin:/bin:/usr/sbin:/usr/bin:/opt/thinlinc/bin:/opt/thinlinc/sbin”

Крок 8: Перевірка та налаштування портів доступу

ThinLinc працює через SSH (порт 22) для основного трафіку та використовує порти 1010 (веб-інтерфейс адміністрування) та 300 (веб-клієнт).

Якщо у вас увімкнено ufw, дозвольте доступ:

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

Крок 9: Оптимізація продуктивності GUI для віддаленого доступу

Команда, яка створить глобальний конфігураційний файл та примусово відключить композитинг та анімації для всіх користувачів, щоб підвищити комфорт використання віддаленого робочого столу.

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'

Крок 10: Підключення

Підключитися до віддаленого робочого столу можна двома способами – через нативний клієнт ThinLinc або прямо у браузері https://IP_ВАШОГО_СЕРВЕРА:300

Клієнт можна завантажити на сторінці Cendio -> Download -> For users.

Як бачите, клієнт максимально нагадує клієнт MS RDP. У налаштуваннях можна виконати конфігурацію прокидання пристроїв та загальний буфер обміну. Також досить розвинені параметри якості відображення віддаленого робочого столу.

Крок 11 (Опціонально) Вимкнення доступу до сервера через веб-браузер

Оскільки доступ через браузер створює додаткові вектори атаки, доступ до веб панелі адміністратора на порту 1010 і доступ до веб клієнта віддаленого робочого столу краще відключити.

Зробити це можна шляхом відключення відповідних служб + закриттям портів у файрволі.

Вимкнення служб:

# Stop the web client and admin panel sudo systemctl stop tlwebclient tlwebadm # Prohibit their autostart sudo systemctl disable tlwebclient tlwebadm

Заборона доступу через порт 300:

sudo ufw deny 300/tcp sudo ufw reload

Tip

Пам'ятайте, що ThinLinc використовує SSH як транспорт. Це означає, що всі механізми захисту SSH автоматично захищають і ваш графічний робочий стіл.

Можливі проблеми та рекомендації щодо заліза

Навіть за умови правильної установки можуть виникнути нюанси, специфічні для віддалених робочих столів.

Проблема №1: Немає звуку або “гальмує” відео у браузері

Причина: Ubuntu 24.04 встановлює браузери (Firefox, Chromium) у форматі Snap. Ці пакети працюють в ізольованій “пісочниці”, яка:

  • Не бачить віртуальних звукових каналів ThinLinc.
  • Повільніше малює інтерфейс через шари контейнеризації.

Приклад установки Google Chrome з пакета .deb:

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

Tip

Для коректної роботи звуку та плавної картинки завжди встановлюйте браузери з .deb пакетів або офіційних репозиторіїв. Уникайте Snap-версій для термінальних серверів.

Проблема #2: "Розсипання" картинки або затримки

Причина: Слабке інтернет-з'єднання або нестача ресурсів процесора для стиснення відеопотоку.

  • Рішення: Переконайтеся, що у налаштуваннях ThinLinc Client увімкнено оптимізацію (Adaptive Compression).
  • Рішення: Перевірте, чи ви використовуєте сесію KDE Plasma (X11), а не Wayland.

Рекомендовані системні вимоги

Для того, щоб робота в KDE через ThinLinc була по-справжньому комфортною (без “заїкань” звуку та фризів при відкритті вкладок у браузері), ми рекомендуємо наступні характеристики VPS:

Параметр

Мінімально

Рекомендується (1 користувач)

Процесор (CPU)

2 віртуальні ядра

4 віртуальні ядра

Пам'ять (RAM)

4 ГБ

4 ГБ +

Диск (сховище)

Твердотільний накопичувач на 40 ГБ

40 ГБ SSD / NVMe

ОС

Ubuntu 24.04

Ubuntu 24.04

Tip

На виділеному сервері навіть із мінімальною конфігурацією продуктивність VDI буде набагато вищою. Якщо ви плануєте використовувати термінальний сервер в рамках бізнес-інфраструктури, краще відразу звернути увагу на виділені ресурси для стабільної продуктивності розрахованої на багато користувачів системи.

ThinLinc може також використовувати ГПУ для обробки тривимірної графіки за допомогою VirtualGL. Для цього знадобиться встановлення пропрієтарних ГПУ драйверів + команди vglrun для запуску програми, яка потребує обробки через ГПУ.

Tip

Якщо VPS планується для кількох користувачів одночасно, додайте по 2 ГБ ОЗП та 1 ядру vCPU на кожного додаткового активного користувача.

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