Xpra: различия между версиями

Материал из ALT Linux Wiki
(+ команды)
Строка 1: Строка 1:
= Описание =
== Описание ==
* Сайт: https://xpra.org
* Сайт: https://xpra.org
* Страница проекта на GitHub: https://github.com/Xpra-org/xpra  
* Страница проекта на GitHub: https://github.com/Xpra-org/xpra  
Строка 11: Строка 11:
На сервере утилита Xpra запускает в режиме де­мона нужную программу с заданным идентификатором сеанса, а на клиенте происходит присоединение к сеансу с этим идентификатором.
На сервере утилита Xpra запускает в режиме де­мона нужную программу с заданным идентификатором сеанса, а на клиенте происходит присоединение к сеансу с этим идентификатором.


Доступ к сеансам можно получить по SSH или защитить паролем через простые сокеты TCP (с SSL или без).
Доступ к сеансам можно получить по SSH или через защищённые паролем сокеты TCP (с SSL или без).


= Установка =
= Установка =

Версия от 07:17, 12 мая 2023

Описание

Xpra — это инструмент, который запускает программы X11, обычно на удаленном хосте, и направляет их отображение на локальный компьютер без потери состояния (позволяет отключение и повторное подключение без прерывания перенаправленного приложения).

Xpra может предоставить удаленный доступ как к отдельным приложениям, так и к новым/существующим сеансам рабочего стола.

Xpra не имеет root-доступа: т.е. приложения, перенаправленные xpra, отображаются на локальном рабочем столе как обычные окна, управляемые локальным оконным менеджером. Xpra также использует собственный протокол, который самонастраивается и относительно нечувствителен к задержкам.

На сервере утилита Xpra запускает в режиме де­мона нужную программу с заданным идентификатором сеанса, а на клиенте происходит присоединение к сеансу с этим идентификатором.

Доступ к сеансам можно получить по SSH или через защищённые паролем сокеты TCP (с SSL или без).

Установка

Установить пакет xpra на сервере и на клиенте:

# apt-get install xpra

Использование

В таблице ниже представлены некоторые подкоманды xpra

Команда Описание Пример
xpra start Запустить новый сервер xpra (при запуске удалённого сервера со строкой подключения ssh://HOST/DISPLAY новый сеанс также будет присоединен)
$ xpra start :7
$ xpra start --start=gimp
xpra start-desktop Запустить вложенный сервер X11, все дочерние команды будут запускаться на вложенном сервере X11
$ xpra start-desktop --start=xfce4-session
xpra attach Подключиться к работающему серверу xpra. Любые приложения, использующие этот сервер, будут перенаправляться на текущий экран
$ xpra attach :7
$ xpra attach ssh://user@test/7
xpra detach Отсоединить данный дисплей xpra
$ xpra detach :7
xpra screenshot Сделать снимок экрана и сохранить его в файле с указанным именем (снимки экрана можно делать только при подключенном клиенте)
$ xpra screenshot my.jpg
xpra version Вывести версию сервера
$ xpra version
4.4.4-r0
xpra info Вывести версию, статус и статистику сервера
xpra top Отобразить ключевые атрибуты работоспособности сервера
xpra control Изменить параметры запущенного сервера. Список команд можно получить, указав «help» в качестве команды (например, xpra control :1 help)
$ xpra control :1 min-quality 20
xpra stop Подключиться к работающему серверу xpra и запросить его немедленное завершение. Обычно это приводит к тому, что любые приложения, использующие этот сервер, также прекращают работу
xpra exit Подключиться к работающему серверу xpra и запросить его немедленное завершение. В отличие от команды xpra stop, процесс Xvfb и его клиенты X11 (если таковые имеются) останутся запущенными.
xpra showconfig Вывести конфигурацию xpra. В качестве дополнительных аргументов можно указать определенные параметры, или использовать специальное значение all, чтобы отобразить все параметры
$ xpra showconfig clipboard-direction
clipboard-direction            = 'both'
xpra list Вывести список всех серверов xpra, запущенные текущим пользователем на текущей машине
xpra shadow Предоставить доступ к рабочему столу (существующему дисплею X11). Если активен только один дисплей X11 и его номер меньше 10, он может быть обнаружен автоматически. Для этого режима работы настоятельно рекомендуется использовать видеокодек (h264 или vp8)
xpra proxy Позволяет одному серверу проксировать соединения для нескольких других, потенциально выступая в качестве точки входа для балансировки нагрузки или аутентификации для многих сеансов. Прокси-сервер будет создавать новый процесс для каждого прокси-соединения, этот прокси-процесс создаст неаутентифицированный новый сокет домена unix, который можно использовать с подкомандами info, version и stop.


Подключение

Локальный дисплей (только для локальных дисплеев локального пользователя):

:DISPLAY

Подключение по SSH:

ssh/[USERNAME[:PASSWORD]@]HOST[:SSH_PORT]/DISPLAY

Для обратной совместимости режим SSH также поддерживает синтаксис:

ssh:[USERNAME[ PASSWORD]@HOST:DISPLAY


Примечание: При подключении по ssh может потребоваться указать системный ssh-клиент:
$ xpra start --ssh=ssh ssh://user@192.168.0.101 --start=scratch-desktop

Или дописать в файл ~/.xpra/xpra.conf строку:

ssh = ssh


В режиме TCP используются номера портов, а не номера дисплеев (если через один TCP-порт доступно несколько дисплеев, то можно также указать номер дисплея):

tcp/[USERNAME@]HOST:PORT[/DISPLAY]

Подключиться по протоколу websocket:

ws://[USERNAME[:PASSWORD]@]HOST:PORT/[DISPLAY]

Некоторые команды

Запустить xpra сервер на указанном дисплее:

$ xpra start :5

Просмотреть список запущенных xpra серверов (на текущей машине, текущим пользователем):

$ xpra list
Found the following xpra sessions:
/run/user/500/xpra:
        LIVE session at :1
        LIVE session at :102
        LIVE session at :5

Остановить xpra сервер на указанном дисплее (если сервер один, дисплей можно не указывать):

$ xpra stop :5
server requested disconnect:
 server shutdown
xpra at :5 has exite

Остановить xpra сервер на удалённой машине:

$ xpra stop ssh://user@192.168.0.101/5

Подключиться к серверу, используя локальный дисплей:

$ xpra attach :101

Отключиться от сервера:

$ xpra detach :101

Запуск приложения

Запустить приложение удалённо через SSH без предварительного запуска сервера xpra на сервере:

$ xpra start ssh://user@192.168.0.101 --start="scratch-desktop"
Примечание: И xpra и запускаемое приложение должны быть установлены на сервере.


Запуск приложения, с предварительным запуском сервера xpra:

  1. На сервере: запустить сервер xpra, автоматически выбрать дисплей и запустить программу (например, kolourpaint) на этом виртуальном дисплее:
    $ xpra start --start=kolourpaint
    Actual display used: :2
    Actual log file name is now: /run/user/500/xpra/:2.log
    
  2. Подключиться локально:
    $ xpra attach :2
    
  3. Удалённо подключиться к серверу xpra и перенаправить приложение (на 2 дисплее), использующие этот сервер, для отображения на вашем текущем экране:
    $ xpra attach ssh://user@192.168.0.101/2
    

Запуск новой графической сессии

На сервере запустить вложенный сервер X11:

$ xpra start-desktop :101 --start-child=xfce4-session --exit-with-children=yes

Или

$ xpra start-desktop :102 --start=plasmashell

Подключение:

$ xpra attach ssh:user@192.168.0.154:101 --min-size=1200x800 --clipboard-direction=both --clipboard=yes

При подключении к серверу xpra, в системном трее появляется значок, где можно управлять подключением, изменять настройки (например, направление буфера обмена, если он не отключён при запуске сервера):

Xpra. Значок в трее

Получение управления запущенной графической сессией на удаленной машине

Запустить удалённо:

xpra shadow --ssh=ssh ssh://user@192.168.0.137/0

Или:

  1. Запустить на сервере:
    $ xpra shadow :0
    
  2. Подключение:
    $ xpra attach --speaker=no ssh://user@192.168.0.154
    

На сервере в трее появится значок («Exit» — остановить сервер, «Read Only» — запретить управление, только просмотр рабочего стола):

Xpra. Управление запущенной графической сессией — значок в трее

TCP-сокеты

Запуск на сервере:

$ xpra start --start=kolourpaint --bind-tcp=0.0.0.0:9878

или для управления запущенной графической сессией:

$ xpra shadow --bind-tcp=0.0.0.0:9878

Подключение:

$ xpra attach ws://192.168.0.154:9878

Этот же адрес можно открыть в веб-браузере:

Xpra. Подключение из веб-браузера

Параметры подключения можно указать с помощью диалоговой формы подключения (http://host:port/connect.html) или указаны как параметры URL, например uri|http://192.168.0.154:9878/?username=user.

Создание TCP сеанса (начиная с версии 4.0.1-alt1 с защитой паролем (пароль записан в файл password):

$ xpra start --start=kolourpaint --bind-tcp=0.0.0.0:9878,auth=file:filename=./password

При подключении указать имя пользователя (и по запросу ввести пароль):

$ xpra attach ws:user//192.168.0.154:9878

Графический интерфейс

Графический интерфейс xpra («Меню запуска приложений» → «Интернет/Сеть» → «Xpra»):

Графический интерфейс Xpra

«Browse» — просмотреть список и подключиться к локальному дисплею.

Xpra. Список локальных дисплеев

«Connect» — подключиться к удалённому серверу:

Xpra. Подключение к удалённому серверу

«Shadow» — предоставить доступ к рабочему столу.

«Start» — запустить сервер xpra.