Xpra: различия между версиями
Нет описания правки |
(+ команды) |
||
Строка 19: | Строка 19: | ||
= Использование = | = Использование = | ||
В таблице ниже представлены некоторые подкоманды xpra | |||
{| class="wikitable" | |||
! Команда | |||
! Описание | |||
! style="width: 30%"| Пример | |||
|- | |||
|xpra start | |||
|Запустить новый сервер xpra (при запуске удалённого сервера со строкой подключения ssh://HOST/DISPLAY новый сеанс также будет присоединен) | |||
|<syntaxhighlight lang="bash">$ xpra start :7 | |||
$ xpra start --start=gimp</syntaxhighlight> | |||
|- | |||
|xpra start-desktop | |||
|Запустить вложенный сервер X11, все дочерние команды будут запускаться на вложенном сервере X11 | |||
|<syntaxhighlight lang="bash">$ xpra start-desktop --start=xfce4-session</syntaxhighlight> | |||
|- | |||
|xpra attach | |||
|Подключиться к работающему серверу xpra. Любые приложения, использующие этот сервер, будут перенаправляться на текущий экран | |||
|<syntaxhighlight lang="bash">$ xpra attach :7 | |||
$ xpra attach ssh://user@test/7</syntaxhighlight> | |||
|- | |||
|xpra detach | |||
|Отсоединить данный дисплей xpra | |||
|<syntaxhighlight lang="bash">$ xpra detach :7</syntaxhighlight> | |||
|- | |||
|xpra screenshot | |||
|Сделать снимок экрана и сохранить его в файле с указанным именем (снимки экрана можно делать только при подключенном клиенте) | |||
|<syntaxhighlight lang="bash">$ xpra screenshot my.jpg</syntaxhighlight> | |||
|- | |||
|xpra version | |||
|Вывести версию сервера | |||
|<syntaxhighlight lang="bash">$ xpra version | |||
4.4.4-r0</syntaxhighlight> | |||
|- | |||
|xpra info | |||
|Вывести версию, статус и статистику сервера | |||
| | |||
|- | |||
|xpra top | |||
|Отобразить ключевые атрибуты работоспособности сервера | |||
| | |||
|- | |||
|xpra control | |||
|Изменить параметры запущенного сервера. Список команд можно получить, указав «help» в качестве команды (например, {{cmd|xpra control :1 help}}) | |||
|<syntaxhighlight lang="bash">$ xpra control :1 min-quality 20</syntaxhighlight> | |||
|- | |||
|xpra stop | |||
|Подключиться к работающему серверу xpra и запросить его немедленное завершение. Обычно это приводит к тому, что любые приложения, использующие этот сервер, также прекращают работу | |||
| | |||
|- | |||
|xpra exit | |||
|Подключиться к работающему серверу xpra и запросить его немедленное завершение. В отличие от команды {{cmd|xpra stop}}, процесс Xvfb и его клиенты X11 (если таковые имеются) останутся запущенными. | |||
| | |||
|- | |||
|xpra showconfig | |||
|Вывести конфигурацию xpra. В качестве дополнительных аргументов можно указать определенные параметры, или использовать специальное значение all, чтобы отобразить все параметры | |||
|<syntaxhighlight lang="bash">$ xpra showconfig clipboard-direction | |||
clipboard-direction = 'both'</syntaxhighlight> | |||
|- | |||
|xpra list | |||
|Вывести список всех серверов xpra, запущенные текущим пользователем на текущей машине | |||
| | |||
|- | |||
|xpra shadow | |||
|Предоставить доступ к рабочему столу (существующему дисплею X11). Если активен только один дисплей X11 и его номер меньше 10, он может быть обнаружен автоматически. Для этого режима работы настоятельно рекомендуется использовать видеокодек (h264 или vp8) | |||
| | |||
|- | |||
|xpra proxy | |||
|Позволяет одному серверу проксировать соединения для нескольких других, потенциально выступая в качестве точки входа для балансировки нагрузки или аутентификации для многих сеансов. Прокси-сервер будет создавать новый процесс для каждого прокси-соединения, этот прокси-процесс создаст неаутентифицированный новый сокет домена unix, который можно использовать с подкомандами info, version и stop. | |||
| | |||
|} | |||
== Подключение == | == Подключение == |
Версия от 18:13, 11 мая 2023
Описание
- Сайт: https://xpra.org
- Страница проекта на GitHub: https://github.com/Xpra-org/xpra
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
$ 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, автоматически выбрать дисплей и запустить программу (например, kolourpaint) на этом виртуальном дисплее:
$ xpra start --start=kolourpaint Actual display used: :2 Actual log file name is now: /run/user/500/xpra/:2.log
- Подключиться локально:
$ xpra attach :2
- Удалённо подключиться к серверу 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 shadow --ssh=ssh ssh://user@192.168.0.137/0
Или:
- Запустить на сервере:
$ xpra shadow :0
- Подключение:
$ xpra attach --speaker=no ssh://user@192.168.0.154
На сервере в трее появится значок («Exit» — остановить сервер, «Read Only» — запретить управление, только просмотр рабочего стола):
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
Этот же адрес можно открыть в веб-браузере:
Параметры подключения можно указать с помощью диалоговой формы подключения (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»):
«Browse» — просмотреть список и подключиться к локальному дисплею.
«Connect» — подключиться к удалённому серверу:
«Shadow» — предоставить доступ к рабочему столу.
«Start» — запустить сервер xpra.