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

Материал из ALT Linux Wiki
мНет описания правки
Нет описания правки
Строка 21: Строка 21:


На сервере:
На сервере:
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 --now x2goserver
<syntaxhighlight lang="bash"># systemctl enable --now x2goserver</syntaxhighlight>


{{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>


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


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


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


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


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


[[Файл:X2Go-client-05.png|800px|X2Go. Общий доступ к рабочему столу]]
[[Файл:X2Go-client-05.png|X2Go. Общий доступ к рабочему столу]]


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


Настройка '''x2gobroker'''.
=== Настройка 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]''' - уникальный идентификатор сессии.
Где:
 
*'''[x2goserver-mate]''' уникальный идентификатор сессии;
Параметр '''name''' обозначает имя сессии, которое будет отображаться на клиенте, '''command''' - тип сессии (MATE, KDE и т.п.).
*'''name''' имя сессии, которое будет отображаться на клиенте;
*'''command''' тип сессии (MATE, KDE и т.п.).


Запустить необходимые сервисы:
Запустить необходимые сервисы:
systemctl enable --now x2gobroker-authservice
<syntaxhighlight lang="bash"># systemctl enable --now x2gobroker-authservice</syntaxhighlight>
systemctl enable --now x2gobroker-daemon
<syntaxhighlight lang="bash"># systemctl enable --now x2gobroker-daemon</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</syntaxhighlight>


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


== Запуск отдельного графического приложения ==
=== Запуск отдельного графического приложения ===
На брокере добавить конфигурацию новой сессии (файл {{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: Строка 149:
  auth            required        pam_group.so
  auth            required        pam_group.so


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


В строке "Путь" выбираем нужный каталог, жмём "Добавить". Ставим галочку "Соединять автоматически".
[[Файл:X2Go-client-06.png|X2Go. Общие каталоги]]


Убедиться, что также выбран параметр "Перенаправлять SSH порт для туннельного подсоединения файловой системы через брандмауэры".
При подключении к серверу общий каталог должен быть расположен по следующему пути: {{path|/home/<user>/media/disk}}.


Подключаемся к серверу. Общий каталог должен быть расположен по следующему пути: {{path|/home/<user>/media/disk}}.
Если автомонтирование не сработало, то на клиенте в окне «Общий доступ к каталогам» можно выбрать каталог и нажать кнопку «Общий доступ»:


Если автомонтирование не сработало, то на клиенте в окне "Общий доступ к каталогам" выбрать каталог и нажать "Общий доступ".
[[Файл:X2Go-client-07.png|X2Go. Общий доступ к каталогам]]


== Печать ==
== Печать ==
На сервере запустить system-config-printer и добавить принтер '''"Generic CUPS-X2Go"''' (должны быть установлены пакеты {{pkg|x2goserver-printing}} {{pkg|cups-x2go}} {{pkg|x2gobroker}}).
На сервере 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]]


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


== Звук ==
== Звук ==
В настройках сессии на клиенте открыть вкладку "Медиа", поставить галочку "Включить звук" и выбрать "PulseAudio".
На клиенте в настройках сессии открыть вкладку «Медиа», установить отметку «Включить звук» и выбрать «PulseAudio»:
 
[[Файл:X2Go-client-12.png|X2Go. Вкладка «Медиа»]]


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


== Решение проблем ==
== Решение проблем ==
1. При зависании подключения помогает пересоздание базы данных сеансов (под правами root):
При зависании подключения помогает пересоздание базы данных сеансов (под правами root):
x2godbadmin --createdb
<syntaxhighlight lang="bash"># x2godbadmin --createdb</syntaxhighlight>
 
Просмотр активных сессий текущего пользователя:
<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>


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

Версия от 16:33, 7 февраля 2023

Описание

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

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

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


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

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

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

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


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

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

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

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

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

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

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

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

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

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

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

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

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

Настройка x2gobroker

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

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

Добавить запись о сервере в /etc/hosts:

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

В файл /etc/x2go/broker/x2gobroker-sessionprofiles.conf добавить:

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

Где:

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

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

# systemctl enable --now x2gobroker-authservice
# systemctl enable --now x2gobroker-daemon

Настройка x2goserver

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

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

Добавить запись о брокере в /etc/hosts:

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

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

# systemctl enable --now x2goserver

Настройка x2goclient

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

# apt-get install x2goclient

Добавить запись о брокере в /etc/hosts:

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

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

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

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

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

На брокере добавить конфигурацию новой сессии (файл /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. Общий доступ к каталогам

Печать

На сервере 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

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

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