Как стать автором
Обновить
84.39
Cloud4Y
#1 Корпоративный облачный провайдер

RDP для Linux через X протокол

Уровень сложностиСредний
Время на прочтение4 мин
Количество просмотров1.9K

Привет! На связи Вахтанг, ведущий системный администратор Cloud4Y. В этой статье расскажу, как в Linux реализован пользовательский интерфейс с графическим интерфейсом (GUI). Этот интерфейс, известный как X Window System, позволяет программам работать с оконным управлением.

Хотя тема не является чем‑то новым и не находится на переднем крае, как это часто бывает с искусственным интеллектом, многие люди не знают о возможностях, которые он предоставляет в исходниках.

В отличие от платформы Windows, где графический интерфейс встроен в ядро операционной системы, в UNIX‑подобных системах он является дополнительным компонентом. Его реализация осуществляется с помощью протокола X, который обычно называют X Window System или X11, в зависимости от версии протокола. Этот протокол управляет связью между приложениями и экранами устройств.

История протокола X восходит к 1984 году, когда он был разработан в Массачусетском технологическом институте (MIT). Хотя протокол регулярно обновляется, он остаётся актуальным и важным инструментом для современных пользователей.

Характеристики X-протокола

К основным характеристикам протокола можно отнести:

  • Клиент‑серверную архитектуру

    • X Server. Запускается на пользовательском компьютере с непосредственным устройством отображения. И отвечает за обработку входящих событий от клавиатуры, мыши, отображает графику, управляет шрифтами и многое другое.

    • X Client. Это приложения, которые требуют визуализации графических элементов или должны обрабатывать пользовательские вводы, такие как клики или нажатия клавиш в GUI. Они ждут события пользователя от X‑сервера.

  • Передача данных между пользователем и сервером осуществляется с помощью сетевых протоколов TCP/IP и может происходить как локально, так и удалённо. Если клиентская и серверная части X Window System находятся на одном компьютере. Вместо того чтобы использовать сетевое соединение, они взаимодействуют через UNIX‑сокет.

  • Протокол предоставляет базовые операции рисования, такие как линии, прямоугольники и рендеринг текста, которые клиенты используют для построения своих пользовательских интерфейсов.

  • Информация о действиях пользователя, таких как перемещение курсора мыши, клики и нажатия клавиш на клавиатуре, передаётся с сервера на клиентское приложение через специальные сообщения.

  • Такие ресурсы, как окна, шрифты и цвета, управляются X‑сервером, и клиенты взаимодействуют с этими ресурсами через запросы, отправляемые по протоколу.

  • По умолчанию при входе в графический сеанс в Linux X‑сервер запускается автоматически, позволяя запускать приложения GUI.

  • За детализацию интерфейса пользователя отвечают графические оболочки, которых разработано множество. Поэтому внешний вид программ может сильно изменяться.

  • X Window System кроссплатформенная и может функционировать как в Linux, так и в Windows.

Рассмотрим некоторые доступные варианты графических оболочек для Ubuntu.
Если ОС только установлена в desktop варианте, то обновим систему sudo apt update && sudo apt upgrade -y. И можем поставить GUI. 

Название

Установка

LXDM display manager

https://www.lxde.org/    

sudo  apt-get -y install lxdm

Xfce
https://ru.wikipedia.org/wiki/Xfce

sudo apt install xfce4 xfce4-goodies

KDE Plasma

https://kde.org/ru/plasma-desktop/

sudo  apt-get install kde-plasma-desktop

Enlightenment

https://www.enlightenment.org/

sudo add-apt-repository ppa:niko2040/e19

sudo apt-get install enlightenment terminology


Для смены дисплейного менеджера по умолчанию поможет команда

dpkg-reconfigure <DM>

Чтоб проверить установленный по умолчанию дисплейный менеджер, используем 

systemctl status display-manager.service

При использовании облачных решений иногда возникает необходимость в удалённой работе с графикой. Конечно, в основном работа на Linux серверах идёт без графики и использованием SSH, но иногда нужна и графика, если это рабочее место пользователя. В операционной системе Windows для этого предусмотрен протокол RDP (Remote Desktop Protocol) для удалённых рабочих столов. Однако в Linux для решения этой задачи можно использовать не только VNC (Virtual Network Computing), но и тот же X протокол, архитектура которого изначально рассчитана на удалённое использование. Для того, чтобы подключиться к операционной системе Linux из среды Microsoft Windows, можно использовать два метода:

  • перенаправление X-протокола (X11 Forwarding) и

  • удалённое подключение по протоколу XDMCP (X Display Manager control protocol) используя UDP и порт 177 

Чтобы воспользоваться возможностью X11 Forwarding, на стороне клиента нужно установить X-сервер и настроить переадресацию протокола через SSH.

В качестве  X-серверов для Windows можно выбрать: 

полнофункциональный, маленький и быстрый сервер

Открытый X-сервер, поддерживает несколько дисплеев, OpenGL и аппаратное ускорение. 

  • X410, который можно скачать и установить в Microsoft Store. 

Установка не вызывает проблем и не нуждается в каких-то подробностях. Теперь нужно настроить SSH для поддержки пересылки X11. Это делается путём добавления (раскомментирования)  директивы:

ForwardX11 yes

в конфигурации /etc/ssh/ssh_config системы, из которой будет осуществляться переадресация (к которой будет осуществляется подключение). После перезапустить SSH сервис:

systemctl restart sshd

В данном случае в качестве удалённой системы выступит компьютер (можно развернуть в нашем облаке) с операционной системой Ubuntu, а в качестве клиентской — Windows и X-сервер VcXsrv. Первым шагом мы запускаем VcXsrv на клиентской стороне. 

Затем, используя SSH-клиент PuTTY, подключаемся к серверу через SSH-соединение и настроим проброс X11 forwarding. 

После успешного подключения по SSH в командной строке проверим наличие нашего дисплея echo $DISPLAY

и можем запустить установленные дисплейные менеджеры в VcXsrv в Linux. 

Например:

1)  startlxde

2) startxfce4 start

3) startplasma-x11 start

4) enlightenment_start

Буду рад, если этот небольшой туториал окажется полезным для кого-то. Спасибо за внимание, ваш Cloud4Y.

Читайте нас здесь или в Telegram‑канале!

Теги:
Хабы:
+1
Комментарии9

Публикации

Информация

Сайт
www.cloud4y.ru
Дата регистрации
Дата основания
2009
Численность
51–100 человек
Местоположение
Россия