Как развернуть полноценный VDI на базе Ubuntu Linux и ThinLinc: альтернатива Windows Terminal Server
Введение
Если вы ищете способ организовать удаленный рабочий стол для сотрудников и вам нужна альтернатива RDP на Linux, то ThinLinc – это одно из самых стабильных решений для построения VDI инфраструктуры.
ThinLinc – это профессиональное решение для организации терминальных серверов на базе Linux от шведской компании Cendio, которая занимается разработкой терминальных серверов с 1992 года. В отличие от обычного VNC, он обеспечивает высокую скорость отрисовки графики, полноценную поддержку звука и проброс локальных ресурсов (принтеров, смарт-карт, папок).
Ключевые особенности лицензирования:
- Бесплатная версия: Полнофункциональная и бесплатная навсегда для использования до 10 одновременных пользователей. Идеально для малого бизнеса или личного использования.
- Единый функционал: Бесплатная версия ничем не ограничена по возможностям по сравнению с платной.
- Поддержка LDAP: Используйте пользователей Active Directory для входа на терминальный сервер
- Конкурентные лицензии: Лицензируются не созданные в системе пользователи, а одновременные (конкурентные) сессии.
Пример: У вас может быть 50 созданных пользователей, но если одновременно работают только 10 – вам достаточно бесплатной версии.
Технический стек данной инструкции
Все действия, описанные в данной инструкции, были протестированы на следующем программно-аппаратном стеке:
|
Компонент |
Версия / Спецификация |
|
Операционная система |
Ubuntu Server 24.04.3 LTS (Noble Numbat) |
|
Графическая оболочка |
KDE Plasmashell 5.27.12 (пакет kde-standard) |
|
Терминальный сервер |
Cendio ThinLinc v4.20.0 |
|
Виртуальная машина |
4 Core CPU, 8 GB RAM, NVMe SSD |
|
Пользователь |
Стандартный пользователь в группе sudo |
Шаг 1: Подготовка и обновление системы
Создание стандартного пользователя и добавление в группу sudo если такового еще нет в системе:
sudo adduser USERNAME
Замените 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-server – это имя загруженного вами архива
Шаг 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 []? Укажите свой контактный email.
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 (Опционально) Отключение доступа к серверу через web браузер
Поскольку доступ через браузер создает дополнительные векторы атаки, то доступ к веб панели администратора на порту 1010 и доступ к веб клиенту удаленного рабочего стола лучше отключить.
Сделать это можно путем отключения соответствующих служб + закрытием портов в файрволе.
Отключение служб:
# Останавливаем веб-клиент и админку sudo systemctl stop tlwebclient tlwebadm # Запрещаем их автозапуск 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: «Рассыпание» картинки или задержки (Lag)
Причина: Слабое интернет-соединение или недостаток ресурсов процессора для сжатия видеопотока.
- Решение: Убедитесь, что в настройках ThinLinc Client включена оптимизация (Adaptive Compression).
- Решение: Проверьте, что вы используете сессию KDE Plasma (X11), а не Wayland.
Рекомендуемые системные требования
Для того чтобы работа в KDE через ThinLinc была по-настоящему комфортной (без “заиканий” звука и фризов при открытии вкладок в браузере), мы рекомендуем следующие характеристики VPS:
|
Параметр |
Минимально |
Рекомендуется (1 пользователь) |
|
Процессор (CPU) |
2 виртуальных ядра |
4 виртуальных ядра |
|
Память (RAM) |
4 ГБ |
4 ГБ + |
|
Диск (Storage) |
40 ГБ SSD |
40 ГБ SSD / NVMe |
|
ОС |
Ubuntu 24.04 |
Ubuntu 24.04 |
На выделенном сервере даже с минимальной конфигурацией производительность VDI будет гораздо выше. Если вы планируете использовать терминальный сервер в рамках бизнес инфраструктуры, лучше сразу обратить внимание на выделенные ресурсы для стабильной производительности многопользовательской системы.
ThinLinc также может использовать ГПУ для обработки трехмерной графики с помощью VirtualGL. Для этого потребуется установка проприетарных ГПУ драйверов + команды vglrun для запуска приложения, которому требуется обработка через ГПУ.
Если VPS планируется для нескольких пользователей одновременно, прибавляйте по 2 ГБ ОЗУ и 1 ядру vCPU на каждого дополнительного активного пользователя.