X2Go: различия между версиями
мНет описания правки |
Нет описания правки |
||
Строка 21: | Строка 21: | ||
На сервере: | На сервере: | ||
<syntaxhighlight lang="bash"># apt-get update</syntaxhighlight> | |||
<syntaxhighlight lang="bash"># apt-get install x2goserver x2goserver-printing cups-x2go</syntaxhighlight> | |||
<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>. | ||
На клиенте: | На клиенте: | ||
<syntaxhighlight lang="bash"># apt-get update</syntaxhighlight> | |||
<syntaxhighlight lang="bash"># apt-get install x2goclient</syntaxhighlight> | |||
== Подключение к удаленному рабочему столу == | == Подключение к удаленному рабочему столу == | ||
Строка 60: | Строка 60: | ||
Для запуска сессии необходимо выбрать подключение в списке, ввести пароль и нажать «ОК»: | Для запуска сессии необходимо выбрать подключение в списке, ввести пароль и нажать «ОК»: | ||
[[Файл:X2Go-client-03.png | [[Файл:X2Go-client-03.png|Клиент X2Go. Запуск сессии]] | ||
Появится удаленный рабочий стол. | Появится удаленный рабочий стол. | ||
Строка 66: | Строка 66: | ||
Если в окне настроек сессии в поле «Тип сессии», был выбран пункт «Опубликованные приложения», то после подключения к удалённому рабочему столу появится возможность выбрать и запустить приложение: | Если в окне настроек сессии в поле «Тип сессии», был выбран пункт «Опубликованные приложения», то после подключения к удалённому рабочему столу появится возможность выбрать и запустить приложение: | ||
[[Файл:X2Go-client-app.png | [[Файл:X2Go-client-app.png|Клиент X2Go. Выбор приложения для запуска]] | ||
Для подключения к существующей сессии на удаленном компьютере, в окне настроек сессии в поле «Тип сессии» необходимо выбрать пункт «X2Go/X11 Desktop Sharing»: | Для подключения к существующей сессии на удаленном компьютере, в окне настроек сессии в поле «Тип сессии» необходимо выбрать пункт «X2Go/X11 Desktop Sharing»: | ||
Строка 74: | Строка 74: | ||
После ввода пароля подключения необходимо предложено выбрать рабочий стол и нажать кнопку «Полный доступ» или «Только просмотр»: | После ввода пароля подключения необходимо предложено выбрать рабочий стол и нажать кнопку «Полный доступ» или «Только просмотр»: | ||
[[Файл:X2Go-client-05.png | [[Файл:X2Go-client-05.png|X2Go. Общий доступ к рабочему столу]] | ||
== Использование x2gobroker == | == Использование x2gobroker == | ||
'''x2gobroker''' предоставляет профили сессий, что позволяет не определять их локально на каждом клиенте. | '''x2gobroker''' предоставляет профили сессий, что позволяет не определять их локально на каждом клиенте. | ||
Настройка | === Настройка x2gobroker === | ||
Установить пакеты: | Установить пакеты: | ||
<syntaxhighlight lang="bash"># apt-get install x2gobroker x2gobroker-common x2gobroker-ssh x2gobroker-daemon x2gobroker-authservice</syntaxhighlight> | |||
Добавить запись о сервере в {{path|/etc/hosts}}: | Добавить запись о сервере в {{path|/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}} добавить: | ||
<syntaxhighlight lang="ini"> | |||
[x2goserver-mate] | |||
name=Workstation 10 MATE | |||
host=x2goserver | |||
command=MATE | |||
usebrokerpass=true</syntaxhighlight> | |||
Где: | |||
*'''[x2goserver-mate]''' — уникальный идентификатор сессии; | |||
*'''name''' — имя сессии, которое будет отображаться на клиенте; | |||
*'''command''' — тип сессии (MATE, KDE и т.п.). | |||
Запустить необходимые сервисы: | Запустить необходимые сервисы: | ||
<syntaxhighlight lang="bash"># systemctl enable --now x2gobroker-authservice</syntaxhighlight> | |||
<syntaxhighlight lang="bash"># systemctl enable --now x2gobroker-daemon</syntaxhighlight> | |||
Настройка | === Настройка x2goserver === | ||
Установить пакеты: | Установить пакеты: | ||
<syntaxhighlight lang="bash"># apt-get install x2goserver x2goserver-printing cups-x2go x2goserver-x2goagent x2goserver-xsession</syntaxhighlight> | |||
Добавить запись о брокере в {{path|/etc/hosts}}: | Добавить запись о брокере в {{path|/etc/hosts}}: | ||
<syntaxhighlight lang="bash"># echo "broker_ip x2gobroker" >>/etc/hosts</syntaxhighlight> | |||
Запустить сервис: | Запустить сервис: | ||
<syntaxhighlight lang="bash"># systemctl enable --now x2goserver</syntaxhighlight> | |||
Настройка | === Настройка x2goclient === | ||
Установить пакет: | Установить пакет: | ||
<syntaxhighlight lang="bash"># apt-get install x2goclient</syntaxhighlight> | |||
Добавить запись о брокере в {{path|/etc/hosts}}: | Добавить запись о брокере в {{path|/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}}): | ||
<syntaxhighlight lang="ini">[x2goserver-firefox] | |||
name=Firefox | |||
host=x2goserver | |||
command=firefox | |||
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. Общие каталоги]] | |||
При подключении к серверу общий каталог должен быть расположен по следующему пути: {{path|/home/<user>/media/disk}}. | |||
Если автомонтирование не сработало, то на клиенте в окне «Общий доступ к каталогам» можно выбрать каталог и нажать кнопку «Общий доступ»: | |||
[[Файл:X2Go-client-07.png|X2Go. Общий доступ к каталогам]] | |||
== Печать == | == Печать == | ||
На сервере | На сервере 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. Окно выбора локального принтера для печати]] | |||
== Звук == | == Звук == | ||
На клиенте в настройках сессии открыть вкладку «Медиа», установить отметку «Включить звук» и выбрать «PulseAudio»: | |||
[[Файл:X2Go-client-12.png|X2Go. Вкладка «Медиа»]] | |||
== Отладка == | == Отладка == | ||
# Запуск клиента из консоли с параметром --debug: | |||
#: <syntaxhighlight lang="bash">$ x2goclient --debug</syntaxhighlight> | |||
# Просмотр в каталоге удалённого пользователя файлов: | |||
#* {{path|.x2go/C-*/session.log}} | |||
#* {{path| .xsession-x2go-*-errors}} | |||
== Решение проблем == | == Решение проблем == | ||
При зависании подключения помогает пересоздание базы данных сеансов (под правами root): | |||
<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
Чтобы этого не случалось, необходимо на сервере в файле /etc/systemd/logind.conf установить KillUserProcesses=no или добавить нужного пользователя в KillExcludeUsers.
На клиенте:
# apt-get update
# apt-get install x2goclient
Подключение к удаленному рабочему столу
Запустить клиент X2Go можно из «Меню запуска приложений» («Интернет/Сеть» → «X2Go Client») или из командной строки:
$ x2goclient
Создание нового подключения
Для создания нового подключения необходимо выбрать в меню пункт «Сессия» → «Новая Сессия…» (<Ctrl>+<N>). На вкладке «Сессия» следует настроить следующие параметры:
- «Имя сессии» — имя сессии, которое поможет отличать серверы друг от друга;
- «Узел» — адрес подключения (IP-адрес или FQDN);
- «Логин» — имя пользователя;
- «SSH-порт»;
- «Тип сессии» — выбрать среду рабочего стола. Если нужной среды нет в списке, можно выбрать пункт «Пользовательский рабочий стол» и в поле «Команда» указать команду, запускающую рабочую среду.
После сохранения настроек соединение появится в списке в главном окне программы.
Запуск сессии
Для запуска сессии необходимо выбрать подключение в списке, ввести пароль и нажать «ОК»:
Появится удаленный рабочий стол.
Если в окне настроек сессии в поле «Тип сессии», был выбран пункт «Опубликованные приложения», то после подключения к удалённому рабочему столу появится возможность выбрать и запустить приложение:
Для подключения к существующей сессии на удаленном компьютере, в окне настроек сессии в поле «Тип сессии» необходимо выбрать пункт «X2Go/X11 Desktop Sharing»:
После ввода пароля подключения необходимо предложено выбрать рабочий стол и нажать кнопку «Полный доступ» или «Только просмотр»:
Использование 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 порт для туннельного подсоединения файловой системы через брандмауэры»:
При подключении к серверу общий каталог должен быть расположен по следующему пути: /home/<user>/media/disk.
Если автомонтирование не сработало, то на клиенте в окне «Общий доступ к каталогам» можно выбрать каталог и нажать кнопку «Общий доступ»:
Печать
На сервере X2Go:
- Установить пакеты x2goserver-printing, cups-x2go:
# apt-get install x2goserver-printing cups-x2go
- Запустить system-config-printer и добавить принтер «Generic CUPS-X2Go-printer»:
На клиенте X2Go:
- В окне «Параметры» выбрать принтер по умолчанию для печати. Установить параметр «Открывать этот диалог перед печатью»:
- При печати документа в сессии X2Go выбрать принтер «Generic CUPS-X2Go-printer» и нажать кнопку «Печать»:
- После этого на клиенте должно открыться окно выбора локального принтера для печати:
Звук
На клиенте в настройках сессии открыть вкладку «Медиа», установить отметку «Включить звук» и выбрать «PulseAudio»:
Отладка
- Запуск клиента из консоли с параметром --debug:
$ x2goclient --debug
- Просмотр в каталоге удалённого пользователя файлов:
- .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
- Полностью свободен
- Актуальные, а не 4-х летней давности библиотеки NX
- Не сертифицировано (RX есть в составе СПТ 7)
- Не умеет пробрасывать смарт-карты