Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revision Previous revision
Next revision
Previous revision
Last revisionBoth sides next revision
linux_faq:using_windows_xserver_vcxsrv_with_graphical_applications_running_in_lxc_container [2019/02/21 08:05] – [Реализация] adminlinux_faq:using_windows_xserver_vcxsrv_with_graphical_applications_running_in_lxc_container [2019/04/26 12:27] – [Подключение существующих сессий] admin
Line 1: Line 1:
 +====== Задача ======
 +Мне нужно опубликовать графическое приложение **Linux**, которое исполняется в **lxc**-контейнере, средствами **Citrix**. \\
 +Применить стандартный подход, когда на **linux**-машину устанавливается **VDA** - не получается, поскольку **VDA** требует прямого доступа к устройствам, а в контейнере это можно сделать не всегда. \\
 +В идеале после аутентификации на **StoreFront** пользователь должен видеть иконку приложения, кликать ее и получать окно **linux**-приложения (или графическое рабочее окружение), исполняющееся в **lxc**-контейнере. 
  
 +====== Реализация ======
 +У меня есть **lxc**-контейнер с установленой в нем оболочкой **XFCE**, тестовая ферма **Citrix**, с сервером, на котором я могу публиковать **windows**-приложения.\\
 +На **Windows**-сервере я запускаю **X**-сервер [[https://sourceforge.net/projects/vcxsrv/|VcXsrv Windows X Server]] к которому будет подключаться графическое приложение-клиент (**xfce4-session**) для отображения своих окон. \\
 +Для тестирования, при запуске **VcXsrv** я его настраиваю так:
 +  - Display settings: **One Large Window**, **Display number - 10**.
 +  - Select how to start clients: **Start a Program**
 +  - Specify program to start: **Start program on remote computer** 
 +    * Remote program:
 +<code>DISPLAY=__win_host_name_or_ip__:10.0 xfce4-session &</code>
 +      * Password: **linux user password**
 +      * Connect to computer: **IP-адрес (или имя) lxc-контейнера**
 +      * Login as user: **имя пользователя в контейнере**
 +  - Extra Settings: **Disable access control**. 
 +В итоге - **VcXsrv** подключится к контейнеру по протоколу **SSH** и запустит там сессию **XFCE**, используя в качестве X-сервера **VcXsrv**
 +====== Подключение существующих сессий ======
 +Например, я уже имею подключенную **GUI**-сессию с приложениями в **lxc**-контейнере. Пользователь имеет доступ через **xrdp**. Мне нужно, чтобы приложения (клиенты) этой **GUI**-сессии переехали на другой **X**-сервер (с локального **X**-сервера на удаленный). \\
 +http://xpra.org/
 +
 +В двух словах как работает **xpra**. 
 +На машине (или в контейнере) можно запустить что-то типа:
 +  xpra start --start=firefox
 +И в результате на машине (или в контейнере) режиме демона запустится X-сервер к которому присоединится окошко **firefox**. \\
 +А дальше можно запустить на удаленной машине (**linux** или **windows**) **xpra** в режиме клиента (на самом деле клиент и сервер **xpra** - это одна и та же софтина) и выполнить **attach** к этому окошку. Соединение приоизойдет по одному из протоколов (**ssh**, **tcp**, **ssl** и всякое разное). \\
 +Вместо **firefox** можно запустить и сессию рабочего стола. \\
 +Этот X-сервер будет работать в контейнере независимо от может быть уже запущенного **Xorg**.  
  • linux_faq/using_windows_xserver_vcxsrv_with_graphical_applications_running_in_lxc_container.txt
  • Last modified: 2020/09/08 07:25
  • by admin