Як розгорнути повноцінний 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.
Вибір менеджера входу (sddm): Якщо під час встановлення з'явиться синє вікно з вибором display manager. Вибирайте sddm (нативний для KDE).
Перезавантаження: Після встановлення всіх пакетів краще перезавантажитись, щоб переконатися, що X-сервер і оболонка стартують коректно.
sudo reboot now
Крок 3: Отримати посилання на пакет інсталяції
Перейдіть на веб-сайт Cendio -> вкладка Dowload -> For administrators -> Download ThinLinc server software -> Заповніть форму для отримання посилання

У вікні, що відкрилося, ПКМ на Download server software щоб отримати посилання на актуальну версію ThinLinc. Ви можете зберегти її в блокноті для подальшої установки.
.jpg)
Крок 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.
.jpg)
Як бачите, клієнт максимально нагадує клієнт 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
Пам'ятайте, що 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
Для коректної роботи звуку та плавної картинки завжди встановлюйте браузери з .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 |
На виділеному сервері навіть із мінімальною конфігурацією продуктивність VDI буде набагато вищою. Якщо ви плануєте використовувати термінальний сервер в рамках бізнес-інфраструктури, краще відразу звернути увагу на виділені ресурси для стабільної продуктивності розрахованої на багато користувачів системи.
ThinLinc може також використовувати ГПУ для обробки тривимірної графіки за допомогою VirtualGL. Для цього знадобиться встановлення пропрієтарних ГПУ драйверів + команди vglrun для запуску програми, яка потребує обробки через ГПУ.
Якщо VPS планується для кількох користувачів одночасно, додайте по 2 ГБ ОЗП та 1 ядру vCPU на кожного додаткового активного користувача.