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 --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  Не умеет пробрасывать смарт-карты