GrabDuck

Установка и настройка x2go клиент-сервера. Терминальные решения и удаленный доступ в ...

:

В данной статье я расскажу про установку и настройку клиент-сервера x2go - форка FreeNX 3.5, который можно использовать для организации терминального сервера или для удаленного доступа и управления удаленным компьютером.

Как я и обещал в статье про Remmina сегодня я расскажу про технологию удаленного доступа NX.

Предыстория.

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

Стоит упомянуть, что клиенты для доступа по технологии NX от NoMachine бесплатные, а вот серверные решения и платные и стоят очень много тысяч долларов.

Данная компания поддерживала OpenSource решение FreeNX, можно почитать опять же на википедии:

Но в один момент NoMachine забила на развитие свободного проекта FreeNX и в итоге данный продукт не развивался, завис на версии 3.5.

Так как NX протокол намного лучше и быстрее медленного и "ужасного" vnc.
Нашлись те, кто форкнул проект FreeNX 3.5 и назвали это x2go.

То есть, x2go это форк FreeNX. Хотя FreeNX и можно поставить, но это такой геморрой, а x2go усиленно разрабатывается и добавляются новые возможности и исправляются ошибки.
Кроме того x2go заводится "в пол пинка".

Жаль, что в России мало вообще уделяется вниманию этому замечательному решению, как x2go, даже странички в русскоязычной википедии нет, не говоря уже про статьи какие либо.

Пришло время исправить это. 🙂

Обзор клиента и сервера x2go.

В общих словах, что же собой представляет это x2go. Демонстрацию различных вариантов работы продемонстрирую ниже после пунктов установки.


На компьютере, к которому будут обращаться другие компьютеры устанавливается сервер x2go. Это могут быть только Linux системы.

На компьютерах, которые будет подключаться к серверу, устанавливается клиент программы x2go. Клиент программы есть для Windows, Linux, MacOS.
Еще они занимаются версией для Андроид, но она не готова даже близко. 
Доступна версия и для ChromeBook. Но так как у меня нет ни MacOS ни ChromeOS, то в статье будет рассказано только про подключение с Ubuntu на Ubuntu и c Windows на Ubuntu.

Из особенностей:

  • Подключение к удаленному компьютеру производится по ssh.
  • Передача звука, расшаривание принтеров.
  • Можно запускать просто отдельное приложение на удаленном компьютере.
  • Можно подключиться и управлять удаленным компьютером (типа TeamViewer).

Установка сервера x2go в Ubuntu.

Во-первых, не обязательно устанавливать x2go сервер на Ubuntu Unity, если собираетесь использовать его как толстый клиент.

Запуск x сессии Unity и Gnome3 не работает пока что, можно запустить либо отдельное приложение, либо управлять удаленным компьютером (аналогично как в TeamViewer).
Если Вы хотите именно этого, то тогда стоит ставить.

Поэтому в качестве терминального сервера лучше использовать сборки Ubuntu с XFCE, LXDE, Mate. Не советую ставить KDE и Cinnamon, так как они едят много оперативы, что для терминального сервера очень чувствительно (не один же пользователь подключаться будет одновременно).

Также можно поставить XFCE или LXDE на компьютер с Ubuntu.
Установка LXDE:

apt-get install lubuntu-desktop

Установка XFCE:

apt-get install xubuntu-desktop

Итак, определились с использованием. Ставить сам сервер очень просто.
Нужно доставить зависимости:

sudo apt-get install software-properties-common python-software-properties

Теперь добавляем репозиторий и устанавливаем из него следующие пакеты:

sudo add-apt-repository ppa:x2go/stable
sudo apt-get update
sudo apt-get install x2goserver x2goserver-xsession

Для использования горячих клавиш, нужно доставить следующий пакет.
Если у вас Mate, нужно поставить следующий пакет:

sudo apt-get install x2gomatebindings

Если у вас Lxde:

sudo apt-get install x2golxdebindings

Всё. После того, как установили эти пакеты, сервер установлен и ничего не надо настраивать.

Вам просто нужно узнать ip сервера и можно подключаться удаленно через клиент x2go.

Кроме того, вы можете создать пользователей для подключения к терминальному серверу с x2go. (Не под одним же пользователем всем подключаться).
Я писал подробные статейки (в LXDE и XFCE также как в Unity):
Управление пользователями в Ubuntu - часть 1.
Управление пользователями в Ubuntu - часть 2.

В консоле пользователь добавляется следующей командой (username - это имя пользователя по вашему вкусу):

sudo adduser username

И следовать инструкциям в терминале.

Я описал установку для Ubuntu. Но x2go сервер можно установить и для других дистрибутивов, следуйте инструкциям с официального сайта:
http://wiki.x2go.org/doku.php/doc:installation:x2goserver

Установка клиента в Windows 8.1 и Ubuntu.

Установка клиента x2go в Ubuntu.

Ничего сложного нет, добавляем тот же репозиторий, через  который устанавливали сервер x2go, и ставим из него пакет клиента:

sudo apt-add-repository ppa:x2go/stable
sudo apt-get update
sudo apt-get install x2goclient

В установленных приложениях можно найти x2go клиент и можно подключаться. (Об этом ниже описано подробнее в демонстрации работы).

Установка клиента x2go в Windows 8.1.

Также ничего сложного, есть установочный пакет на офф. сайте.

http://wiki.x2go.org/doku.php/doc:installation:x2goclient

В секции для Windows скачиваем exe файл:

Устанавливаем программу. Потребуются права администратора. Всё. Можно подключаться.

Кроме того, клиент доступен еще для многих других дистрибутивов Linux и других ОС, просто следуйте инструкции на офф. сайте (англ.):
http://wiki.x2go.org/doku.php/doc:installation:x2goclient

Демонстрация работы x2go.

Использование как терминального сервера.

Если вы используете сервер, как терминальный сервер, в качестве толстого клиента, подключаясь к нему тонкими клиентами.

На компьютере с x2go сервер должна быть установлена легкое окружение рабочего стола, типа XFCE или LXDE, ну или MATE.
Нужно создать пользователей для каждого, кто будет одновременно работать с терминальным сервером.
Узнаем ip сервера и открываем клиент.

Открываем клиент и создаем новое подключение.
Пример создания подключения и соединение с сервером в Windows:

Откроется окно создания "Новой сессии":

Нужно ввести:

  • Имя сессии - какое хотите.
  • Хост - ip сервера, к которому подключаться.
  • Пользователь - имя пользователя.
  • Тип сессии - здесь выбираем оболочку рабочего стола. В примере XFCE.

В принципе всё. Можно подключаться. Но на остальных вкладках можно настроить еще много всего.
К примеру разрешение экрана:

А также можно настроить, нужен ли нам звук:

Это всего можно отредактировать и позднее. Жмём "Ок" и соединение появится в списке:

Теперь щелкаем по нужному соединению из списка (сейчас оно одно) и появится окно с вводом пароля:

Если всё правильно, то запустится удаленная сессия в окне:

Вот таким образом это работает.

Использование для запуска программы на удаленном компьютере.

Этот случай, когда есть ресурсоёмкое приложение, к примеру, какое то IDE и нужно подключаться к нему, чтобы не забивать ресурсы своего маломощного компьютера. Это как пример, возможно какие-то другие есть причины. Но это очень удобно. Делается это следующим образом.

И важное замечание, что здесь окружение рабочего стола вообще не играет роли. Поэтому можно подключаться к компьютеру с Unity или KDE, вообще роли DE не играет.

Всё то же самое, как в предыдущем варианте, создаём новую сессию и вводим

  • Имя сессии - какое хотите.
  • Хост - ip сервера, к которому подключаться.
  • Пользователь - имя пользователя.

Только теперь в пункте Тип сессии нужно выбрать "Приложение" и ввести путь до приложения или команду запуска приложения:

В примере это Firefox, который в итоге и запускается:

Вот таким образом можно запускать приложения с удаленного компьютера без запуска X-сессии.

Использование для удаленного доступа компьютером (как в TiemViewer).

Есть и такой вариант удаленного доступа. Просто подключаемся к сессии удаленного компьютера и управляем им, либо смотрим демонстрацию экрана.

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

Либо еще можно установить x2go сервер на компьютерах в офисе, оперативы они едят мало и админ будет подключаться с помощью клиента к рабочим компам, тоже как вариант.

Всё делается тоже самое, создается новое подключение вписываются данные, только в тип соединения выбираем:

Выбираем:
Тип сессии - Соединение с локальным десктопом.

Всё. Подключаемся, будет спрошено:

Выбираем Полный доступ, если хотим управлять удаленным компьютером, откроется запущенный сеанс:

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

Вот и всё.

Программа умеет гораздо больше. Показал самое основное.