удалённый запуск графических X-приложений

Используемые графические окружения, особенности, баги, отслеживание версий и изменений...

Модераторы: Olej, adminn, vikos

Аватара пользователя
Olej
Писатель
Сообщения: 21338
Зарегистрирован: 24 сен 2011, 14:22
Откуда: Харьков
Контактная информация:

удалённый запуск графических X-приложений

Непрочитанное сообщение Olej » 05 июл 2018, 21:47

Это тема только для справки, общеизвестно, что X11 - сетевой протокол, а любые графические приложения Linux можно запускать на любом удалённом хосте не только в LAN, но, при большом желании и хорошей сети, и в глобальной сети.
Но снова и снова задают вопрос: "как?".
Эта тема - только справочник по тому как это делать.

P.S. Тема подробно и давно описана здесь: Разработка программных проектов в Linux:
Удалённый X11 193
Нативный протокол X 193
Графическая сессия ssh 195
Видно, что возможно решение 2-х родов: а). использование естественных сетевых свойств протокола X11 и удалённого X-сервера и б). туннелирование данных X-протокола внутри сессии (протокола) SSH.

Аватара пользователя
Olej
Писатель
Сообщения: 21338
Зарегистрирован: 24 сен 2011, 14:22
Откуда: Харьков
Контактная информация:

Re: удалённый запуск графических X-приложений

Непрочитанное сообщение Olej » 05 июл 2018, 21:59

Olej писал(а): Эта тема - только справочник по тому как это делать.
...
Видно, что возможно решение 2-х родов: а). использование естественных сетевых свойств протокола X11 и удалённого X-сервера и б). туннелирование данных X-протокола внутри сессии (протокола) SSH.
Проще начать с б)., с использования SSH:

1. Запуск диалоговой сессии SSH:

Код: Выделить всё

$ ssh -X user@192.168.1.200
...
После чего в терминале сессии запускаете любое графической X-приложение:

Код: Выделить всё

$ xterm &
2. Запуск непосредственно известного X-приложения:

Код: Выделить всё

$ ssh -nXf 192.168.1.200 /usr/bin/VirtualBox
3. Гораздо менее известная чем -X опция -Y, при этом туннель не шифрует данные, а это значит, что обмен происходит быстрее:

Код: Выделить всё

$ ssh -Y user@192.168.1.200
...
Это удобно в LAN, где все хосты - доверенные.

Аватара пользователя
Olej
Писатель
Сообщения: 21338
Зарегистрирован: 24 сен 2011, 14:22
Откуда: Харьков
Контактная информация:

Re: удалённый запуск графических X-приложений

Непрочитанное сообщение Olej » 05 июл 2018, 22:15

Olej писал(а):а). использование естественных сетевых свойств протокола X11 и удалённого X-сервера
Это ещё проще (и быстрее и эффективнее).
Запуск приложения с указанием ему удалённого X-сервера ... как-то так:

Код: Выделить всё

$ xterm -display 192.168.1.9:3
Или так:

Код: Выделить всё

$ DISPLAY=192.168.1.9:2 /usr/bin/kdevelop
Формат указания дисплея: <IP>:<№ дисплея> ... где № дисплея по умолчанию = 0 и может не указываться.

Аватара пользователя
Olej
Писатель
Сообщения: 21338
Зарегистрирован: 24 сен 2011, 14:22
Откуда: Харьков
Контактная информация:

Re: удалённый запуск графических X-приложений

Непрочитанное сообщение Olej » 05 июл 2018, 22:51

Olej писал(а):
Olej писал(а):а). использование естественных сетевых свойств протокола X11 и удалённого X-сервера
Это ещё проще (и быстрее и эффективнее).
Но как раз для этого, нативного, метода чаще всего говорят: "не работает, не работает" :-o
А это происходит из-за того, что именно сетевой протокол X11 не доходит до указанного X-сервера.
По причинам:

1. Фаервол.

Код: Выделить всё

[olej@dell ~]$ cat /etc/services | grep ' X '
xdmcp           177/tcp                         # X Display Mgr. Control Proto
x11             6000/tcp        X               # the X Window System
xfs             7100/tcp        font-service    # X font server
Это TCP порты (главным образом 6000) могут быть закрыты фаерволом (iptables).
Открыть.

2. Запрет X-сервера (рисующего) на доступ:

Код: Выделить всё

[olej@dell ~]$ xhost
access control enabled, only authorized clients can connect
SI:localuser:olej

Разрешить сетевой доступ с выбранного хоста:

Код: Выделить всё

$ xhost +notebook
notebook being added to access control list

$ xhost
access control enabled, only authorized clients can connect
INET:notebook
SI:localuser:olej
В доверенной LAN сети можно разрешить всеобщий доступ:

Код: Выделить всё

[olej@dell ~]$ xhost +
access control disabled, clients can connect from any host

[olej@dell ~]$ xhost
access control disabled, clients can connect from any host
SI:localuser:olej
3. Запрет X-серверу прослушивание протокола TCP/IP (обмен только через протокол нативного домена UNIX).

Код: Выделить всё

[olej@dell ~]$ ps ahx | grep Xorg
 1013 tty1     Ssl+ 560:52 /usr/libexec/Xorg -core -noreset :0 -seat seat0 -auth /var/run/lightdm/root/:0 -nolisten tcp vt1 -novtswitch -background none
Вот та опция -nolisten tcp и указывает не прослушивать TCP протокол.
Нужно переконфигурировать запуск Xorg и перезапустить его.
Как это сделать? См. документацию вашего менеджера, это может быть (в зависимости от дистрибутива) lightdm, gdmsetup, dm-tool и т.д.
Вам нужно добиться запуска Xorg типа какого-то такого (без -nolisten tcp):

Код: Выделить всё

[olej@dell ~]$ ps ahx | grep Xorg
 4476 tty7     Ss+   34:26 /usr/bin/Xorg :0 -br -audit 0 -auth /var/gdm/:0.Xauth vt7

Аватара пользователя
Olej
Писатель
Сообщения: 21338
Зарегистрирован: 24 сен 2011, 14:22
Откуда: Харьков
Контактная информация:

Re: удалённый запуск графических X-приложений

Непрочитанное сообщение Olej » 13 ноя 2019, 21:48

Olej писал(а):
05 июл 2018, 21:47
Видно, что возможно решение 2-х родов: а). использование естественных сетевых свойств протокола X11 и удалённого X-сервера и б). туннелирование данных X-протокола внутри сессии (протокола) SSH.
Это касается простейших способов удалённого запуска избранных GUI приложений.

Но в народе (особенно выходцах из Windows) безумно популярны идеи (глубоко омерзительные моему эстетическому чувству) разделения рабочих столов целиком. Как уже упоминалось - Конкуренты X:
Есть и другие способы добиться сетевой прозрачности графических служб:

VNC (Virtual Network Computing) — очень низкоуровневая система, которая пересылает сжатые растровые изображения по сети. Реализация для UNIX включает в себя X-сервер.
Citrix MetaFrame — подобный X продукт для Microsoft Windows.
Tarantella — компания, поставляющая Java-клиент для использования в веб-браузерах.
Технология NX NoMachine — узкополосный протокол для удалённых дисплеев. Не является конкурентом X, поскольку базируется на протоколе X11, но позиционируется как более совершенное решение, чем чистый X.
SVG Terminal[11] — протокол для обновления SVG-содержимого в веб-браузере в почти реальном времени.
Ну и, конечно, из "Windows - наше фсё" :-( - RDP (Remote Desktop Protocol) ... протокол терминального сервера ... ну куда же без него? :-o :lol:

Аватара пользователя
Olej
Писатель
Сообщения: 21338
Зарегистрирован: 24 сен 2011, 14:22
Откуда: Харьков
Контактная информация:

Re: удалённый запуск графических X-приложений

Непрочитанное сообщение Olej » 13 ноя 2019, 22:00

Olej писал(а):
13 ноя 2019, 21:48
Ну и, конечно, из "Windows - наше фсё" :-( - RDP (Remote Desktop Protocol) ... протокол терминального сервера ... ну куда же без него? :-o :lol:
Про RDP (и отчасти VNC) у нас тут есть отдельная тема с картинками - Удалённый доступ Raspberry Pi - на примере Raspberry Pi, но это не имеет принципиального значения.
И не будем больше об этом :lol:
Olej писал(а):
13 ноя 2019, 21:48
Технология NX NoMachine — узкополосный протокол для удалённых дисплеев. Не является конкурентом X, поскольку базируется на
А вот эта технология NX NoMachine вызвала у меня некоторый интерес...

Аватара пользователя
Olej
Писатель
Сообщения: 21338
Зарегистрирован: 24 сен 2011, 14:22
Откуда: Харьков
Контактная информация:

Re: удалённый запуск графических X-приложений

Непрочитанное сообщение Olej » 13 ноя 2019, 22:04

Olej писал(а):
13 ноя 2019, 22:00
А вот эта технология NX NoMachine вызвала у меня некоторый интерес...

Код: Выделить всё

olej@ACER:~$ lsb_release -a
No LSB modules are available.
Distributor ID:	Debian
Description:	Debian GNU/Linux 10 (buster)
Release:	10
Codename:	buster

Код: Выделить всё

olej@ACER:~$ aptitude search nx-x11 | grep '  nx'
p  nx-x11-common - nx-X11 (common files)
p  nx-x11proto-composite-dev - nx-X11 Composite extension wire protocol
p  nx-x11proto-core-dev - nx-X11 core wire protocol and auxiliary headers
p  nx-x11proto-damage-dev - nx-X11 Damage extension wire protocol
p  nx-x11proto-randr-dev - nx-X11 RandR extension wire protocol
p  nx-x11proto-render-dev - nx-X11 Render extension wire protocol
p  nx-x11proto-scrnsaver-dev - nx-X11 Screen Saver extension wire protocol
p  nx-x11proto-xext-dev - nx-X11 miscellaneous extension wire protocol
p  nx-x11proto-xfixes-dev - nx-X11 'xfixes' extension wire protocol
p  nx-x11proto-xinerama-dev - nx-X11 Xinerama extension wire protocol

Код: Выделить всё

olej@ACER:~$ aptitude show nx-x11-common
Пакет: nx-x11-common                             
Версия: 2:3.5.99.19-3+deb10u1
Состояние: не установлен
Мультиархитектура: сторонняя
Приоритет: необязательный
Раздел: x11
Сопровождающий: Debian Remote Maintainers <debian-remote@lists.debian.org>
Архитектура: all
Размер в распакованном виде: 348 k
Ломает: libnx-x11 (< 2:3.5.0.29-1~), nxagent (< 2:3.5.0.29-1~), nxlibs (<= 3.5.1)
Описание: nx-X11 (common files)
 NX is a software suite which implements very efficient compression of the X11 protocol. This increases performance when using X applications over a network, especially a
 slow one. 
 
 This package provides all runtime architecture-independent files for nx-X11 Xserver (aka nxagent).
Домашняя страница: https://github.com/ArcticaProject/nx-libs/

Аватара пользователя
Olej
Писатель
Сообщения: 21338
Зарегистрирован: 24 сен 2011, 14:22
Откуда: Харьков
Контактная информация:

Re: удалённый запуск графических X-приложений

Непрочитанное сообщение Olej » 13 ноя 2019, 22:13

Olej писал(а):
13 ноя 2019, 22:00
А вот эта технология NX NoMachine вызвала у меня некоторый интерес...
Сайт проекта:
Изображение
Быстрый, безопасный и легкий доступ к вашим компьютерам.
Из любой точки.
Скачать здесь: https://www.nomachine.com/ru/download
Загрузите и установите программное обеспечение для вашей ОС на компьютере или устройстве, с которого осуществляется подключение, а также на компьютере Windows/Linux/Mac, к которому требуется подключиться. Вы сможете легко предоставлять общий доступ к удаленному рабочему столу или управлять сервером через любую сеть. Вне зависимости от того, где вы находитесь, с NoMachine вы всегда сможете быстро и просто получать безопасный доступ к удаленному рабочему столу всего лишь за несколько секунд. Если вас интересуют дополнительные загрузки продуктов из корпоративной линейки Enterprise, щелкните здесь.
Как понятно из цитаты, проект не открытый и не в полной мере свободный.
Загрузка NoMachine
NoMachine для Linux -i386, i686
NoMachine для Linux RPM i686
NoMachine для Linux DEB i386
NoMachine для Linux TAR.GZ i686

NoMachine для Linux -x86_64, amd64
NoMachine для Linux RPM x86_64
NoMachine для Linux DEB amd64
NoMachine для Linux TAR.GZ x86_64
Есть независимые свободные проекты:
- FreeNX:
FreeNX is a free server implementation of NoMachine.com. NX allows usage of X-connections over real slow links like a Modem or ISDN.
Programming Language
Unix Shell
Registered
2005-01-25
Last Updated
2014-06-09
- OpenNX Client:
OpenNX is an OSS drop-in replacement for Nomachine's nxclient.
User Interface
X Window System (X11), wxWidgets
Programming Language
C, C++
Registered
2006-12-12
Last Updated
2016-10-01

Аватара пользователя
Olej
Писатель
Сообщения: 21338
Зарегистрирован: 24 сен 2011, 14:22
Откуда: Харьков
Контактная информация:

Re: удалённый запуск графических X-приложений

Непрочитанное сообщение Olej » 13 ноя 2019, 22:24

Olej писал(а):
13 ноя 2019, 22:13
Загрузка NoMachine
NoMachine для Linux - amd64
Для:
Debian GNU Linux 4.0 Etch/5.0 Lenny/6.0 Squeeze/7.0 Wheezy/8.0 Jessie/9.0 Stretch, Ubuntu 8.04 Hardy Heron/8.10 Intrepid Ibex/9.04 Jaunty Jackalope/9.10 Karmic Koala/10.4 Lucid Lynx/10.10 Maverick Meerkat/11.04 Natty Narwhal/11.10 Oneiric Ocelot/12.04 Precise Pangolin/12.10 Quantal Quetzal/13.04 Raring Ringtail/13.10 Saucy Salamander/14.04 Trusty Tahr/14.10 Utopic Unicorn/15.04 Vivid Vervet/15.10 Wily Werewolf/16.04 Xenial Xerus/16.10 Yakkety Yak/17.04 Zesty Zapus/17.10 Artful Aardvark/18.04 Bionic Beaver/18.10 Cosmic Cuttlefish/19.04 Disco Dingo

Код: Выделить всё

olej@ACER:~/Загрузки$ ls -l nomachine_6.8.1_1_amd64.deb 
-rw-r--r-- 1 olej olej 46632982 ноя 13 21:19 nomachine_6.8.1_1_amd64.deb
Начало Работы
Установите программное обеспечение NoMachine на подключающийся клиент, а также на компьютер, к которому требуется осуществлять доступ. Для получения более подробных сведений см. Руководство:
Приступая к работе с NoMachine


Ответить

Вернуться в «Графические окружения в дистрибутивах»

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и 5 гостей