X2Go

Материал из ALT Linux Wiki

Описание

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

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

Возможности

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

Установка

На сервере:

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

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

На клиенте:

apt-get update
apt-get install x2goclient

Использование 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 9 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.

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

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

*;*;*;Al0000-2400;fuse

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

auth            required        pam_group.so

На клиенте выбираем нужную сессию, жмём на кнопку "Общий доступ к каталогам" - "Параметры" - "Общие каталоги".

В строке "Путь" выбираем нужный каталог, жмём "Добавить". Ставим галочку "Соединять автоматически".

Убедиться, что также выбран параметр "Перенаправлять SSH порт для туннельного подсоединения файловой системы через брандмауэры".

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

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

Печать

На сервере запустить system-config-printer и добавить принтер "Generic CUPS-X2Go" (должны быть установлены пакеты x2goserver-printing cups-x2go x2gobroker).

При печати документа выбрать принтер "Generic CUPS-X2Go", нажать печать. После этого на клиенте должно открыться окно выбора локального принтера для печати.

Звук

В настройках сессии на клиенте открыть вкладку "Медиа", поставить галочку "Включить звук" и выбрать "PulseAudio".

Отладка

1. Запуск клиента из консоли с параметром --debug:

x2goclient --debug

2. Просмотр в каталоге удалённого пользователя файлов:

.x2go/C-*/session.log
.xsession-x2go-*-errors

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

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

x2godbadmin --createdb

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

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