VPS на Linux с графическим интерфейсом: запускаем сервер X2Go на Ubuntu 18.04

jkuclbiljk6swoozkbk6thpcimw.jpeg


Настройку VNC и RDP на виртуальном сервере мы уже освоили, осталось изучить еще один вариант подключения к виртуальному рабочему столу Linux. Возможности созданного компанией NoMachine протокола NX достаточно интересны, к тому же он хорошо работает через медленные каналы. Фирменные серверные решения стоят дорого (клиентские бесплатны), но существует и свободная реализация, о которой пойдет речь в этой статье — система X2Go. Она отпочковалась от проекта с открытым исходным кодом FreeNX, когда NoMachine прекратила его поддерживать и отпустила в свободное плавание.

Оглавление:


Установка графического окружения
Русификация сервера и установка ПО
Установка сервера X2Go
Подключение к рабочему столу
Запуск приложения на удаленном компьютере
Преимущества X2Go

Установка графического окружения


Для виртуального графического десктопа на Linux мощные машины не нужны, пока пользователь не начнет запускать прикладные программы. Для тестов мы возьмем крепкого середнячка с Ubuntu Server 18.04 LTS с двумя вычислительными ядрами, четырьмя гигабайтами оперативной памяти и жестким диском (HDD) на двадцать гигабайт. На RuVDS уже доступны образы Ubuntu Server 20.04 LTS, процесс настройки более свежей версии будет аналогичным. Не забывайте использовать промокод Habrahabr10 для получения скидки в 10% при заказе.

nx2zcm01q4jikm4ulnfdffaqwou.png

В качестве окружения рабочего стола снова берем XFCE из-за относительно невысоких требований к вычислительным ресурсам. К тому же с запуском этого DE через удаленный доступ в виртуальных средах не возникает проблем:

sudo apt-get install xfce4 xfce4-goodies xorg dbus-x11 x11-xserver-utils


Русификация сервера и установка ПО


На следующем этапе стоит настроить локализацию и установить минимальный набор прикладных программ: браузер, почтовый клиент и офисный пакет. Сначала инсталлируем переводы для системных программ:

sudo apt-get install language-pack-ru


Настроим локализацию:

sudo update-locale LANG=ru_RU.UTF-8


Того же эффекта можно достичь, отредактировав вручную файл /etc/default/locale.

Для локализации GNOME и KDE в репозитории есть пакеты language-pack-gnome-ru и language-pack-kde-ru — они понадобятся, если вы будете использовать программы из этих сред рабочего стола. В XFCE переводы устанавливаются вместе с приложениями. Дальше можно инсталлировать словари:

# Словари для проверки орфографии
sudo apt-get install hunspell hunspell-ru

# Тезаурус для LibreOffice
sudo apt-get install mythes-ru

# Англо-русский словарь в формате DICT
sudo apt-get install mueller7-dict


Кроме того, инсталляция переводов может потребоваться для некоторых прикладных программ:

# Браузер Firefox
sudo apt-get install firefox firefox-locale-ru

# Почтовый клиент Thunderbird
sudo apt-get install thunderbird thunderbird-locale-ru

# Офисный пакет LibreOffice
sudo apt-get install libreoffice libreoffice-l10n-ru libreoffice-help-ru

На этом подготовка окружения рабочего стола завершена.


Установка сервера X2Go


Стабильные версии сервера и клиента X2Go можно установить из внешнего репозитория PPA (Personal Packages Archive) на Launchpad или из штатных репозиториев актуальных релизов Ubuntu. Мы остановимся на втором варианте, поскольку версии софта в обоих источниках одинаковы, но если вам потребуются дополнительные пакеты, сторонний репозиторий придется подключить. Нам необходимо инсталлировать два пакета:

sudo apt-get install x2goserver x2goserver-xsession


В случае если вы используете окружение MATE или LXDE, дополнительные пакеты потребуются (для XFCE они не нужны):

sudo apt-get install x2gomatebindings # if you use MATE/mubuntu
sudo apt-get install x2golxdebindings # if you use LXDE/lubuntu


Вишенка на торте: X2Go работает через SSH и в дальнейшей настройке не нуждается. На VPS должен быть запущен sshd и открыт доступ к порту 22 в правилах межсетевого экрана. Поскольку речь идет про виртуальный сервер, это наверняка уже сделано из коробки. На физической машине открыть удаленный доступ по SSH несложно. Остается только проверить статус сервера X2Go:

sudo systemctl status x2goserver


5omgvq_mfazzjabjbjpq8osregk.png

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

sudo adduser desktopuser


2krgauwnyogkdvc4qgmaekuwkfw.png

Добавим пользователя в группу sudo, чтобы он мог решать связанные с администрированием задачи. Если такой потребности нет, этот шаг можно пропустить:

sudo gpasswd -a desktopuser sudo


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


Клиентское ПО X2Go для Windows, Linux и OS X можно загрузить на сайте проекта. Клиент под Android находится в стадии разработки, а бесплатные мобильные приложения от NoMachine с сервером X2Go несовместимы. Если на локальном компьютере установлена Ubuntu, достаточно добавить пакет x2goclient:

sudo apt-get install x2goclient


Для сохранения видового разнообразия в этот раз мы возьмем клиент для Windows:

nt7vuyzlm2g_d0yyjjiq6hqlyam.png

Здесь можно настроить параметры соединения, устройств ввода-вывода, а также мультимедийных устройств.

r_rsskrc-g3um575cszzl8rb93w.png
pidnspy906fs-askm_vxc2ksv3a.png
9wsfzxzej-wt1ncemjwznpoyn7i.png

Если все сделано правильно, после подключения появится рабочий стол XFCE.

6cfk6vuw6234jfes_u_6irmxnh4.png

Запуск приложения на удаленном компьютере


Иногда вместо полноценного окружения рабочего стола на удаленном компьютере нужно запустить ресурсоемкое приложение (например, IDE). Сделать это несложно, достаточно указать в настройках соединения соответствующий тип сеанса и команду.

llcanqgrvvqun4llicujpkyj32s.png
v2lulzixlj8y17pcsjm16q0yw48.png


Браузер запущен на удаленном VPS с Ubuntu

Есть и более экзотические варианты использования X2Go: система позволяет, например, подключиться к сессии пользователя на удаленном компьютере (как в TeamViewer). В этом случае на обеих машинах должны быть установлены и клиентские, и серверные части. Кроме того, задавать профили сессий на каждом клиенте не обязательно: можно установить и настроить x2gobroker, чтобы определить их на сервере. Для этого придется подключить сторонний репозиторий с дополнительными пакетами.

Преимущества X2Go


В отличие от нуждающейся в высокой пропускной способности канала системы VNC, X2Go использует продвинутый протокол NX 3 для минимизации объема передаваемых данных. В системе есть собственный X-сервер, к тому же она практически не требует настроек и отличается продвинутыми возможностями. Мы рассказали только о самых основных, но X2Go умеет намного больше, включая трансляцию клиенту звука и видео с сервера, печать на локальном принтере (на VPS придется установить дополнительные пакеты для настройки виртуального принтера) и общие каталоги. Взаимодействие с сервером идет через надежный и проверенный временем sshd — пользователю доступны безопасные механизмы аутентификации, в т.ч. с ключами. X2Go автоматически настраивает среду при входе в систему (держать X-сервер постоянно запущенным не нужно), при этом поддерживается многопользовательская работа и большинство популярных окружений рабочего стола, а сеанс не убивается даже после разрыва соединения.

oug5kh6sjydt9llengsiebnp40w.png

© Habrahabr.ru