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

Материал из ALT Linux Wiki
 
(не показано 8 промежуточных версий 2 участников)
Строка 1: Строка 1:
= Описание =
== Описание ==


X2Go — свободное программное обеспечение удалённого доступа по протоколу NX.
X2Go — свободное программное обеспечение удалённого доступа по протоколу NX.
Строка 5: Строка 5:
Веб-сайт: http://x2go.org
Веб-сайт: http://x2go.org


= Возможности =
== Возможности ==


* удалённый доступ к рабочему столу и приложениям на каналах связи даже с узкой полосой пропускания;
* удалённый доступ к рабочему столу и приложениям на каналах связи даже с узкой полосой пропускания;
Строка 18: Строка 18:
* запуск отдельного приложения.
* запуск отдельного приложения.


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


На сервере:
На сервере:
apt-get update
<syntaxhighlight lang="bash"># apt-get update</syntaxhighlight>
apt-get install x2goserver x2goserver-printing cups-x2go
<syntaxhighlight lang="bash"># apt-get install x2goserver x2goserver-printing cups-x2go</syntaxhighlight>
systemctl enable x2goserver
<syntaxhighlight lang="bash"># systemctl enable --now x2goserver</syntaxhighlight>
systemctl start x2goserver
 
{{Attention | systemd, начиная с версии {{pkg|238-alt4}}, при разлогинивании по умолчанию завершает пользовательские процессы, поэтому пользовательские сессии будут завершаться даже из состояния Suspended.}}
{{Attention | {{pkg|systemd}}, начиная с версии {{pkg|238-alt4}}, при разлогинивании по умолчанию завершает пользовательские процессы, поэтому пользовательские сессии будут завершаться даже из состояния Suspended.}}
Чтобы этого не случалось, необходимо на сервере в файле {{path|/etc/systemd/logind.conf}} установить <tt>KillUserProcesses=no</tt> или добавить нужного пользователя в <tt>KillExcludeUsers</tt>.
Чтобы этого не случалось, необходимо на сервере в файле {{path|/etc/systemd/logind.conf}} установить <tt>KillUserProcesses=no</tt> или добавить нужного пользователя в <tt>KillExcludeUsers</tt>.


На клиенте:
На клиенте:
apt-get update
<syntaxhighlight lang="bash"># apt-get update</syntaxhighlight>
apt-get install x2goclient
<syntaxhighlight lang="bash"># apt-get install x2goclient</syntaxhighlight>


= Подключение к удаленному рабочему столу =
== Подключение к удаленному рабочему столу ==


Запустить клиент X2Go можно из «Меню запуска приложений» («Интернет/Сеть» → «X2Go Client») или из командной строки:  
Запустить клиент X2Go можно из «Меню запуска приложений» («Интернет/Сеть» → «X2Go Client») или из командной строки:  
Строка 39: Строка 39:
[[Файл:X2Go-client-01.png|Клиент X2Go]]  
[[Файл:X2Go-client-01.png|Клиент X2Go]]  


== Создание нового подключения ==
{{Note|Также для подключения можно использовать клиент [[Remmina]] или [[Connector]].}}
 
=== Создание нового подключения ===


{{Note|Если клиент X2Go запускается первый раз, окно создания новой сессии будет открыто автоматически.}}
{{Note|Если клиент X2Go запускается первый раз, окно создания новой сессии будет открыто автоматически.}}
Строка 56: Строка 58:
После сохранения настроек соединение появится в списке  в главном окне программы.
После сохранения настроек соединение появится в списке  в главном окне программы.


== Запуск сессии ==
=== Запуск сессии ===


Для запуска сессии необходимо выбрать подключение в списке, ввести пароль и нажать «ОК»:
Для запуска сессии необходимо выбрать подключение в списке, ввести пароль и нажать «ОК»:


[[Файл:X2Go-client-03.png|800px|Клиент X2Go. Запуск сессии]]  
[[Файл:X2Go-client-03.png|Клиент X2Go. Запуск сессии]]  


Появится удаленный рабочий стол.
Появится удаленный рабочий стол.
Строка 66: Строка 68:
Если в окне настроек сессии в поле «Тип сессии», был выбран пункт «Опубликованные приложения», то после подключения к удалённому рабочему столу появится возможность выбрать и запустить приложение:
Если в окне настроек сессии в поле «Тип сессии», был выбран пункт «Опубликованные приложения», то после подключения к удалённому рабочему столу появится возможность выбрать и запустить приложение:


[[Файл:X2Go-client-app.png|800px|Клиент X2Go. Выбор приложения для запуска]]
[[Файл:X2Go-client-app.png|Клиент X2Go. Выбор приложения для запуска]]


Для подключения к существующей сессии на удаленном компьютере, в окне настроек сессии в поле «Тип сессии» необходимо выбрать пункт «X2Go/X11 Desktop Sharing»:  
Для подключения к существующей сессии на удаленном компьютере, в окне настроек сессии в поле «Тип сессии» необходимо выбрать пункт «X2Go/X11 Desktop Sharing»:  
Строка 74: Строка 76:
После ввода пароля подключения необходимо предложено выбрать рабочий стол и нажать кнопку «Полный доступ» или «Только просмотр»:
После ввода пароля подключения необходимо предложено выбрать рабочий стол и нажать кнопку «Полный доступ» или «Только просмотр»:


[[Файл:X2Go-client-05.png|800px|X2Go. Общий доступ к рабочему столу]]
[[Файл:X2Go-client-05.png|X2Go. Общий доступ к рабочему столу]]
 
=== Подключение с использованием RSA-ключа ===
 
Можно настроить подключение с использованием RSA-ключа:
# На клиенте сгенерировать ключ SSH:
#: <syntaxhighlight lang="bash">$ ssh-keygen
Generating public/private rsa key pair.
Enter file in which to save the key (/home/user/.ssh/id_rsa): /home/user/.ssh/x2go
Enter passphrase (empty for no passphrase):
Enter same passphrase again:
Your identification has been saved in /home/user/.ssh/x2go
Your public key has been saved in /home/user/.ssh/x2go.pub
…</syntaxhighlight>
# Скопировать публичный ключ на сервер:
#: <syntaxhighlight lang="bash">$ ssh-copy-id -i ~/.ssh/x2go.pub user@192.168.0.104</syntaxhighlight>
# В настройках сессии (в клиенте X2Go) в поле «RSA/DSA-ключ для ssh соединения» указать приватную часть ключа и отметить пункт «Автоматический вход (через SSH-агент или стандартный SSH-ключ»:
#:[[Изображение:X2Go-client-13.png|X2Go. Настройки сессии]]
# При подключении будет запрошен пароль для ключа (если для ключа пароль не задавался, подключение произойдёт автоматически):
#:[[Изображение:X2Go-client-14.png|X2Go. Запрос пароля для ключа]]


= Использование x2gobroker =
== Использование x2gobroker ==
'''x2gobroker''' предоставляет профили сессий, что позволяет не определять их локально на каждом клиенте.
'''x2gobroker''' предоставляет профили сессий, что позволяет не определять их локально на каждом клиенте.


Настройка '''x2gobroker'''.
При запуске клиента X2Go в режиме брокера список профилей сеансов предоставляется брокером сеансов X2Go (локально определить их будет нельзя). Список предоставляемых профилей сеансов X2Go может зависеть от имени пользователя или адреса клиента.
 
=== Настройка x2gobroker ===


Установить пакеты:
Установить пакеты:
apt-get install x2gobroker x2gobroker-common x2gobroker-ssh x2gobroker-daemon x2gobroker-authservice
<syntaxhighlight lang="bash"># apt-get install x2gobroker x2gobroker-common x2gobroker-ssh x2gobroker-daemon x2gobroker-authservice</syntaxhighlight>


Добавить запись о сервере в {{path|/etc/hosts}}:
<!--Добавить запись о сервере в {{path|/etc/hosts}}:
echo "server_ip x2goserver" >>/etc/hosts
<syntaxhighlight lang="bash"># echo "server_ip x2goserver" >>/etc/hosts</syntaxhighlight>-->


В файл {{path|/etc/x2go/broker/x2gobroker-sessionprofiles.conf}} добавить:
В файле {{path|/etc/x2go/broker/x2gobroker-sessionprofiles.conf}} задать параметры сессии, например:
[x2goserver-mate]
<syntaxhighlight lang="ini">
name=Workstation 9 MATE
[x2goserver-mate]
host=x2goserver
name=Workstation 10 MATE
command=MATE
host=x2goserver
usebrokerpass=true
command=MATE
usebrokerpass=true</syntaxhighlight>
Где:
*'''[x2goserver-mate]''' — уникальный идентификатор сессии;
*'''name''' — имя сессии, которое будет отображаться на клиенте;
*'''host''' — IP-адрес или имя x2goserver;
*'''command''' — тип сессии (MATE, KDE и т.п.).


Запись '''[x2goserver-mate]''' - уникальный идентификатор сессии.
Запустить необходимые сервисы:
 
<syntaxhighlight lang="bash"># systemctl enable --now x2gobroker-authservice
Параметр '''name''' обозначает имя сессии, которое будет отображаться на клиенте, '''command''' - тип сессии (MATE, KDE и т.п.).
# systemctl enable --now x2gobroker-daemon</syntaxhighlight>


Запустить необходимые сервисы:
{{note|x2gobroker-daemon по умолчанию запускается на порту 8080, поэтому перед его запуском необходимо, либо остановить службу ahttpd:
systemctl enable --now x2gobroker-authservice
<syntaxhighlight lang="bash"># systemctl disable --now ahttpd</syntaxhighlight>
systemctl enable --now x2gobroker-daemon
либо указать другой допустимый номер порта в переменной DAEMON_BIND_ADDRESS в файле {{path|/etc/x2go/broker/defaults.conf}}, например:
<syntaxhighlight lang="ini">DAEMON_BIND_ADDRESS=0.0.0.0:8082</syntaxhighlight>}}


Настройка '''x2goserver'''.
=== Настройка x2goserver ===


Установить пакеты:
Установить пакеты:
apt-get install x2goserver x2goserver-printing cups-x2go x2goserver-x2goagent x2goserver-xsession
<syntaxhighlight lang="bash"># apt-get install x2goserver x2goserver-printing cups-x2go x2goserver-x2goagent x2goserver-xsession</syntaxhighlight>


Добавить запись о брокере в {{path|/etc/hosts}}:
<!--Добавить запись о брокере в {{path|/etc/hosts}}:
echo "broker_ip x2gobroker" >>/etc/hosts
<syntaxhighlight lang="bash"># echo "broker_ip x2gobroker" >>/etc/hosts</syntaxhighlight>-->


Запустить сервис:
Запустить сервис:
systemctl enable --now x2goserver
<syntaxhighlight lang="bash"># systemctl enable --now x2goserver</syntaxhighlight>


Настройка '''x2goclient'''.
=== Настройка x2goclient ===


Установить пакет:
Установить пакет:
apt-get install x2goclient
<syntaxhighlight lang="bash"># apt-get install x2goclient</syntaxhighlight>


Добавить запись о брокере в {{path|/etc/hosts}}:
Для возможности обращения к брокеру и серверу по имени добавить записи о брокере и о сервере в {{path|/etc/hosts}}:
echo "broker_ip x2gobroker" >>/etc/hosts
<syntaxhighlight lang="bash"># echo "broker_ip x2gobroker" >>/etc/hosts
# echo "server_ip x2goserver" >>/etc/hosts</syntaxhighlight>


Подключение:
Подключение:
x2goclient --broker-url=http://x2gobroker:8080/plain/
<syntaxhighlight lang="bash">$ x2goclient --broker-url=http://x2gobroker:8080/plain/</syntaxhighlight>


Вводим логин/пароль пользователя, которым хотим подключиться к серверу и выбираем нужную сессию.
Вводим логин/пароль пользователя, которым хотим подключиться к серверу и выбираем нужную сессию:


= Запуск отдельного графического приложения =
[[Файл:X2Go-broker-01.png|Выбор сессии в брокере X2Go]]
 
=== Запуск отдельного графического приложения ===
На брокере добавить конфигурацию новой сессии (файл {{path|/etc/x2go/broker/x2gobroker-sessionprofiles.conf}}):
На брокере добавить конфигурацию новой сессии (файл {{path|/etc/x2go/broker/x2gobroker-sessionprofiles.conf}}):
[x2goserver-firefox]
<syntaxhighlight lang="ini">[x2goserver-firefox]
name=Firefox
name=Firefox
host=x2goserver
host=x2goserver
command=firefox
command=firefox
usebrokerpass=true
usebrokerpass=true</syntaxhighlight>


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


= Общий каталог =
== Общий каталог ==
Для монтирования общего каталога необходимо, чтобы пользователь на сервере был добавлен в группу '''fuse'''.
Для монтирования общего каталога необходимо, чтобы пользователь на сервере был добавлен в группу '''fuse''':
<syntaxhighlight lang="bash"># gpasswd -a user fuse</syntaxhighlight>


Для любого пользователя это можно настроить с помощью модуля '''pam_group'''.
Для любого пользователя это можно настроить с помощью модуля '''pam_group'''.
Строка 147: Строка 181:
  auth            required        pam_group.so
  auth            required        pam_group.so


На клиенте выбираем нужную сессию, жмём на кнопку "Общий доступ к каталогам" - "Параметры" - "Общие каталоги".
Для экспорта каталога необходимо на клиенте выбрать нужную сессию, на вкладке «Общие каталоги», в строке «Путь» выбрать  каталог, нажать кнопку «Добавить», установить отметку «Соединять автоматически». Убедиться, что также выбран параметр «Перенаправлять SSH порт для туннельного подсоединения файловой системы через брандмауэры»:
 
[[Файл:X2Go-client-06.png|X2Go. Общие каталоги]]
 
При подключении к серверу общий каталог должен быть расположен по следующему пути: {{path|/home/<user>/media/disk}}.
 
Если автомонтирование не сработало, то на клиенте в окне «Общий доступ к каталогам» можно выбрать каталог и нажать кнопку «Общий доступ»:
 
[[Файл:X2Go-client-07.png|X2Go. Общий доступ к каталогам]]
 
== Печать ==
{{Note|Необходимо, чтобы пользователь на сервере был добавлен в группу '''fuse''':
<syntaxhighlight lang="bash"># gpasswd -a user fuse</syntaxhighlight>}}
 
На сервере X2Go:
# Установить пакеты {{pkg|x2goserver-printing}}, {{pkg|cups-x2go}}:
#: <syntaxhighlight lang="bash"># apt-get install x2goserver-printing cups-x2go</syntaxhighlight>
# Запустить {{cmd|system-config-printer}} и добавить принтер «Generic CUPS-X2Go-printer»:
#:[[Файл:X2Go-client-08.png|Добавление принтера Generic CUPS-X2Go]]


В строке "Путь" выбираем нужный каталог, жмём "Добавить". Ставим галочку "Соединять автоматически".
На клиенте X2Go:
# В окне «Параметры» выбрать принтер по умолчанию для печати. Установить параметр «Открывать этот диалог перед печатью»:
#:[[Файл:X2Go-client-09.png|X2Go. Окно «Параметры»]]
# При печати документа в сессии X2Go выбрать принтер «Generic CUPS-X2Go-printer» и нажать кнопку «Печать»:
#:[[Файл:X2Go-client-10.png|Выбор принтера для печати в сессии X2Go]]
# После этого на клиенте должно открыться окно выбора локального принтера для печати:
#:[[Файл:X2Go-client-11.png|X2Go. Окно выбора локального принтера для печати]]


Убедиться, что также выбран параметр "Перенаправлять SSH порт для туннельного подсоединения файловой системы через брандмауэры".
== Звук ==
На клиенте в настройках сессии открыть вкладку «Медиа», установить отметку «Включить звук» и выбрать «PulseAudio»:


Подключаемся к серверу. Общий каталог должен быть расположен по следующему пути: {{path|/home/<user>/media/disk}}.
[[Файл:X2Go-client-12.png|X2Go. Вкладка «Медиа»]]


Если автомонтирование не сработало, то на клиенте в окне "Общий доступ к каталогам" выбрать каталог и нажать "Общий доступ".
== Отладка ==
# Запуск клиента из консоли с параметром --debug:
#: <syntaxhighlight lang="bash">$ x2goclient --debug</syntaxhighlight>
# Просмотр в каталоге удалённого пользователя файлов:
#* {{path|.x2go/C-*/session.log}}
#* {{path| .xsession-x2go-*-errors}}


= Печать =
== Решение проблем ==
На сервере запустить system-config-printer и добавить принтер '''"Generic CUPS-X2Go"''' (должны быть установлены пакеты {{pkg|x2goserver-printing}} {{pkg|cups-x2go}} {{pkg|x2gobroker}}).
===Зависание подключений===
При зависании подключения помогает пересоздание базы данных сеансов (под правами root):
<syntaxhighlight lang="bash"># x2godbadmin --createdb</syntaxhighlight>


При печати документа выбрать принтер '''"Generic CUPS-X2Go"''', нажать печать. После этого на клиенте должно открыться окно выбора локального принтера для печати.
Просмотр активных сессий текущего пользователя:
<syntaxhighlight lang="bash">$ x2golistsessions
3602|user-50-1675775431_stDMATE_dp24|50|host-15|R|2023-02-07T16:10:31|7f4877a8ba48ebc9dd95378cf4504f2c|192.168.0.102|59630|59631|2023-02-07T16:10:34|user|185|59632|-1|-1</syntaxhighlight>
Просмотр активных сессий всех пользователей:
<syntaxhighlight lang="bash"># x2golistsessions_root</syntaxhighlight>
Завершение сессии:
<syntaxhighlight lang="bash"># x2goterminate-session user-50-1675775431_stDMATE_dp24</syntaxhighlight>


= Звук =
===Рендеринг в XFCE===
В настройках сессии на клиенте открыть вкладку "Медиа", поставить галочку "Включить звук" и выбрать "PulseAudio".
В [[XFCE]] или X2Go [https://gitlab.xfce.org/xfce/xfwm4/-/issues/551 существует баг], вызывающий проблемы с рендерингом в композиторе окон при использовании X2Go.


= Отладка =
Обходное решение — отключить композитинг:
1. Запуск клиента из консоли с параметром --debug:
x2goclient --debug
2. Просмотр в каталоге удалённого пользователя файлов:
.x2go/C-*/session.log
.xsession-x2go-*-errors


= Решение проблем =
  /usr/bin/xfconf-query -c xfwm4 -p /general/use_compositing -s false
1. При зависании подключения помогает пересоздание базы данных сеансов (под правами root):
  x2godbadmin --createdb


= Сравнение с RX@Etersoft =
== Сравнение с RX@Etersoft ==
* {{есть}} Полностью свободен
* {{есть}} Полностью свободен
* {{есть}} Актуальные, а не 4-х летней давности библиотеки NX
* {{есть}} Актуальные, а не 4-х летней давности библиотеки NX

Текущая версия от 22:48, 29 июля 2024

Описание

X2Go — свободное программное обеспечение удалённого доступа по протоколу NX.

Веб-сайт: http://x2go.org

Возможности

  • удалённый доступ к рабочему столу и приложениям на каналах связи даже с узкой полосой пропускания;
  • возможность отключения и переподключения в сеанс даже из другого клиента;
  • перенаправление звука;
  • отсутствие ограничения на количество одновременно работающих пользователей;
  • шифрование трафика посредством SSH;
  • общие папки с клиента, доступные на сервере;
  • использование локального принтера на сервере;
  • простой выбор рабочей среды (KDE, Mate, GNOME);
  • возможность оказания удалённой технической поддержки;
  • запуск отдельного приложения.

Установка

На сервере:

# apt-get update
# apt-get install x2goserver x2goserver-printing cups-x2go
# systemctl enable --now x2goserver
Внимание! systemd, начиная с версии 238-alt4, при разлогинивании по умолчанию завершает пользовательские процессы, поэтому пользовательские сессии будут завершаться даже из состояния Suspended.

Чтобы этого не случалось, необходимо на сервере в файле /etc/systemd/logind.conf установить KillUserProcesses=no или добавить нужного пользователя в KillExcludeUsers.

На клиенте:

# apt-get update
# apt-get install x2goclient

Подключение к удаленному рабочему столу

Запустить клиент X2Go можно из «Меню запуска приложений» («Интернет/Сеть» → «X2Go Client») или из командной строки:

$ x2goclient

Клиент X2Go

Примечание: Также для подключения можно использовать клиент Remmina или Connector.


Создание нового подключения

Примечание: Если клиент X2Go запускается первый раз, окно создания новой сессии будет открыто автоматически.


Для создания нового подключения необходимо выбрать в меню пункт «Сессия» → «Новая Сессия…» (<Ctrl>+<N>). На вкладке «Сессия» следует настроить следующие параметры:

  • «Имя сессии» — имя сессии, которое поможет отличать серверы друг от друга;
  • «Узел» — адрес подключения (IP-адрес или FQDN);
  • «Логин» — имя пользователя;
  • «SSH-порт»;
  • «Тип сессии» — выбрать среду рабочего стола. Если нужной среды нет в списке, можно выбрать пункт «Пользовательский рабочий стол» и в поле «Команда» указать команду, запускающую рабочую среду.

Клиент X2Go. Создание нового подключения

Примечание: Если подключение к серверу осуществляется с помощью ключей SSH, то можно указать ключ в поле «RSA/DSA-ключ для ssh соединения» или отметить пункт «Автоматический вход», в этом случае будет использоваться ssh-agent.


После сохранения настроек соединение появится в списке в главном окне программы.

Запуск сессии

Для запуска сессии необходимо выбрать подключение в списке, ввести пароль и нажать «ОК»:

Клиент X2Go. Запуск сессии

Появится удаленный рабочий стол.

Если в окне настроек сессии в поле «Тип сессии», был выбран пункт «Опубликованные приложения», то после подключения к удалённому рабочему столу появится возможность выбрать и запустить приложение:

Клиент X2Go. Выбор приложения для запуска

Для подключения к существующей сессии на удаленном компьютере, в окне настроек сессии в поле «Тип сессии» необходимо выбрать пункт «X2Go/X11 Desktop Sharing»:

X2Go. Общий доступ к рабочему столу

После ввода пароля подключения необходимо предложено выбрать рабочий стол и нажать кнопку «Полный доступ» или «Только просмотр»:

X2Go. Общий доступ к рабочему столу

Подключение с использованием RSA-ключа

Можно настроить подключение с использованием RSA-ключа:

  1. На клиенте сгенерировать ключ SSH:
    $ ssh-keygen
    Generating public/private rsa key pair.
    Enter file in which to save the key (/home/user/.ssh/id_rsa): /home/user/.ssh/x2go
    Enter passphrase (empty for no passphrase): 
    Enter same passphrase again: 
    Your identification has been saved in /home/user/.ssh/x2go
    Your public key has been saved in /home/user/.ssh/x2go.pub
    …
    
  2. Скопировать публичный ключ на сервер:
    $ ssh-copy-id -i ~/.ssh/x2go.pub user@192.168.0.104
    
  3. В настройках сессии (в клиенте X2Go) в поле «RSA/DSA-ключ для ssh соединения» указать приватную часть ключа и отметить пункт «Автоматический вход (через SSH-агент или стандартный SSH-ключ»:
    X2Go. Настройки сессии
  4. При подключении будет запрошен пароль для ключа (если для ключа пароль не задавался, подключение произойдёт автоматически):
    X2Go. Запрос пароля для ключа

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

x2gobroker предоставляет профили сессий, что позволяет не определять их локально на каждом клиенте.

При запуске клиента X2Go в режиме брокера список профилей сеансов предоставляется брокером сеансов X2Go (локально определить их будет нельзя). Список предоставляемых профилей сеансов X2Go может зависеть от имени пользователя или адреса клиента.

Настройка x2gobroker

Установить пакеты:

# apt-get install x2gobroker x2gobroker-common x2gobroker-ssh x2gobroker-daemon x2gobroker-authservice


В файле /etc/x2go/broker/x2gobroker-sessionprofiles.conf задать параметры сессии, например:

[x2goserver-mate]
name=Workstation 10 MATE
host=x2goserver
command=MATE
usebrokerpass=true

Где:

  • [x2goserver-mate] — уникальный идентификатор сессии;
  • name — имя сессии, которое будет отображаться на клиенте;
  • host — IP-адрес или имя x2goserver;
  • command — тип сессии (MATE, KDE и т.п.).

Запустить необходимые сервисы:

# systemctl enable --now x2gobroker-authservice
# systemctl enable --now x2gobroker-daemon
Примечание: x2gobroker-daemon по умолчанию запускается на порту 8080, поэтому перед его запуском необходимо, либо остановить службу ahttpd:
# systemctl disable --now ahttpd

либо указать другой допустимый номер порта в переменной DAEMON_BIND_ADDRESS в файле /etc/x2go/broker/defaults.conf, например:

DAEMON_BIND_ADDRESS=0.0.0.0:8082


Настройка x2goserver

Установить пакеты:

# apt-get install x2goserver x2goserver-printing cups-x2go x2goserver-x2goagent x2goserver-xsession


Запустить сервис:

# systemctl enable --now x2goserver

Настройка x2goclient

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

# apt-get install x2goclient

Для возможности обращения к брокеру и серверу по имени добавить записи о брокере и о сервере в /etc/hosts:

# echo "broker_ip x2gobroker" >>/etc/hosts
# echo "server_ip x2goserver" >>/etc/hosts

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

$ x2goclient --broker-url=http://x2gobroker:8080/plain/

Вводим логин/пароль пользователя, которым хотим подключиться к серверу и выбираем нужную сессию:

Выбор сессии в брокере X2Go

Запуск отдельного графического приложения

На брокере добавить конфигурацию новой сессии (файл /etc/x2go/broker/x2gobroker-sessionprofiles.conf):

[x2goserver-firefox]
name=Firefox
host=x2goserver
command=firefox
usebrokerpass=true

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

Общий каталог

Для монтирования общего каталога необходимо, чтобы пользователь на сервере был добавлен в группу fuse:

# gpasswd -a user fuse

Для любого пользователя это можно настроить с помощью модуля pam_group.

В файл /etc/security/group.conf добавляем строку:

*;*;*;Al0000-2400;fuse

В /etc/pam.d/sshd добавляем:

auth            required        pam_group.so

Для экспорта каталога необходимо на клиенте выбрать нужную сессию, на вкладке «Общие каталоги», в строке «Путь» выбрать каталог, нажать кнопку «Добавить», установить отметку «Соединять автоматически». Убедиться, что также выбран параметр «Перенаправлять SSH порт для туннельного подсоединения файловой системы через брандмауэры»:

X2Go. Общие каталоги

При подключении к серверу общий каталог должен быть расположен по следующему пути: /home/<user>/media/disk.

Если автомонтирование не сработало, то на клиенте в окне «Общий доступ к каталогам» можно выбрать каталог и нажать кнопку «Общий доступ»:

X2Go. Общий доступ к каталогам

Печать

Примечание: Необходимо, чтобы пользователь на сервере был добавлен в группу fuse:
# gpasswd -a user fuse


На сервере X2Go:

  1. Установить пакеты x2goserver-printing, cups-x2go:
    # apt-get install x2goserver-printing cups-x2go
    
  2. Запустить system-config-printer и добавить принтер «Generic CUPS-X2Go-printer»:
    Добавление принтера Generic CUPS-X2Go

На клиенте X2Go:

  1. В окне «Параметры» выбрать принтер по умолчанию для печати. Установить параметр «Открывать этот диалог перед печатью»:
    X2Go. Окно «Параметры»
  2. При печати документа в сессии X2Go выбрать принтер «Generic CUPS-X2Go-printer» и нажать кнопку «Печать»:
    Выбор принтера для печати в сессии X2Go
  3. После этого на клиенте должно открыться окно выбора локального принтера для печати:
    X2Go. Окно выбора локального принтера для печати

Звук

На клиенте в настройках сессии открыть вкладку «Медиа», установить отметку «Включить звук» и выбрать «PulseAudio»:

X2Go. Вкладка «Медиа»

Отладка

  1. Запуск клиента из консоли с параметром --debug:
    $ x2goclient --debug
    
  2. Просмотр в каталоге удалённого пользователя файлов:
    • .x2go/C-*/session.log
    • .xsession-x2go-*-errors

Решение проблем

Зависание подключений

При зависании подключения помогает пересоздание базы данных сеансов (под правами root):

# x2godbadmin --createdb

Просмотр активных сессий текущего пользователя:

$ x2golistsessions 
3602|user-50-1675775431_stDMATE_dp24|50|host-15|R|2023-02-07T16:10:31|7f4877a8ba48ebc9dd95378cf4504f2c|192.168.0.102|59630|59631|2023-02-07T16:10:34|user|185|59632|-1|-1

Просмотр активных сессий всех пользователей:

# x2golistsessions_root

Завершение сессии:

# x2goterminate-session user-50-1675775431_stDMATE_dp24

Рендеринг в XFCE

В XFCE или X2Go существует баг, вызывающий проблемы с рендерингом в композиторе окон при использовании X2Go.

Обходное решение — отключить композитинг:

/usr/bin/xfconf-query -c xfwm4 -p /general/use_compositing -s false

Сравнение с RX@Etersoft

  • Symbol support vote.svg  Полностью свободен
  • Symbol support vote.svg  Актуальные, а не 4-х летней давности библиотеки NX
  • Symbol oppose vote.svg  Не сертифицировано (RX есть в составе СПТ 7)
  • Symbol oppose vote.svg  Не умеет пробрасывать смарт-карты