- BrainTools - https://www.braintools.ru -

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

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

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

В отличие от платформы 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.

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

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

Название

Установка

LXDM display manager

https://www.lxde.org/ [2]    

sudo  apt-get -y install lxdm

Xfce
https://ru.wikipedia.org/wiki/Xfce [3]

sudo apt install xfce4 xfce4-goodies

KDE Plasma

https://kde.org/ru/plasma-desktop/ [4]

sudo  apt-get install kde-plasma-desktop

Enlightenment

https://www.enlightenment.org/ [5]

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 [6]), но и тот же X протокол, архитектура которого изначально рассчитана на удалённое использование. Для того, чтобы подключиться к операционной системе Linux из среды Microsoft Windows, можно использовать два метода:

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

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

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

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

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

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

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

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

ForwardX11 yes

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

systemctl restart sshd

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

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

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

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

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

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

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

Например:

1)  startlxde

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

2) startxfce4 start

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

3) startplasma-x11 start

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

4) enlightenment_start

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

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

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

Автор: Cloud4Y

Источник [15]


Сайт-источник BrainTools: https://www.braintools.ru

Путь до страницы источника: https://www.braintools.ru/article/15087

URLs in this post:

[1] интеллектом: http://www.braintools.ru/article/7605

[2] https://www.lxde.org/: https://www.lxde.org/

[3] https://ru.wikipedia.org/wiki/Xfce: https://ru.wikipedia.org/wiki/Xfce

[4] https://kde.org/ru/plasma-desktop/: https://kde.org/ru/plasma-desktop/

[5] https://www.enlightenment.org/: https://www.enlightenment.org/

[6] Virtual Network Computing: https://ru.wikipedia.org/wiki/Virtual_Network_Computing

[7] Xming: https://sourceforge.net/projects/xming/

[8] VcXsrv : https://sourceforge.net/projects/vcxsrv/

[9] https://vcxsrv.com/: https://vcxsrv.com/

[10] X410: https://apps.microsoft.com/detail/9pm8lp83g3l3?hl=en-US&gl=US

[11] нашем облаке: https://www.cloud4y.ru/?utm_source=habr&utm_medium=article&utm_campaign=article&utm_content=xserver

[12] внимание: http://www.braintools.ru/article/7595

[13] Cloud4Y: https://www.cloud4y.ru/?utm_source=habr&utm_medium=article&utm_campaign=habr&utm_content=ai-gpu-main

[14] Telegram‑канале: https://t.me/+ET_qtHM8_540Nzhi

[15] Источник: https://habr.com/ru/companies/cloud4y/articles/907008/?utm_source=habrahabr&utm_medium=rss&utm_campaign=907008

www.BrainTools.ru

Rambler's Top100