Как развернуть полноценный 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.

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-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.

Как видите, клиент максимально похож на клиент MS RDP. В настройках можно выполнить конфигурацию проброса устройств и общий буфер обмена. Также довольно развиты настройки качества отображения удаленного рабочего стола.

Шаг 11 (Опционально) Отключение доступа к серверу через web браузер

Поскольку доступ через браузер создает дополнительные векторы атаки, то доступ к веб панели администратора на порту 1010 и доступ к веб клиенту удаленного рабочего стола лучше отключить.

Сделать это можно путем отключения соответствующих служб + закрытием портов в файрволе.

Отключение служб:

# Останавливаем веб-клиент и админку sudo systemctl stop tlwebclient tlwebadm # Запрещаем их автозапуск 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: «Рассыпание» картинки или задержки (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 для запуска приложения, которому требуется обработка через ГПУ.

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