В данной статье я расскажу про установку и настройку клиент-сервера 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:
1 |
apt-get install lubuntu-desktop |
Установка XFCE:
1 |
apt-get install xubuntu-desktop |
Итак, определились с использованием. Ставить сам сервер очень просто.
Нужно доставить зависимости:
1 |
sudo apt-get install software-properties-common python-software-properties |
Теперь добавляем репозиторий и устанавливаем из него следующие пакеты:
1 2 3 |
sudo add-apt-repository ppa:x2go/stable sudo apt-get update sudo apt-get install x2goserver x2goserver-xsession |
Для использования горячих клавиш, нужно доставить следующий пакет.
Если у вас Mate, нужно поставить следующий пакет:
1 |
sudo apt-get install x2gomatebindings |
Если у вас Lxde:
1 |
sudo apt-get install x2golxdebindings |
Всё. После того, как установили эти пакеты, сервер установлен и ничего не надо настраивать.
Вам просто нужно узнать ip сервера и можно подключаться удаленно через клиент x2go.
Кроме того, вы можете создать пользователей для подключения к терминальному серверу с x2go. (Не под одним же пользователем всем подключаться).
Я писал подробные статейки (в LXDE и XFCE также как в Unity):
Управление пользователями в Ubuntu – часть 1.
Управление пользователями в Ubuntu – часть 2.
В консоле пользователь добавляется следующей командой (username – это имя пользователя по вашему вкусу):
1 |
sudo adduser username |
И следовать инструкциям в терминале.
Я описал установку для Ubuntu. Но x2go сервер можно установить и для других дистрибутивов, следуйте инструкциям с официального сайта:
http://wiki.x2go.org/doku.php/doc:installation:x2goserver
Установка клиента в Windows 8.1 и Ubuntu.
Установка клиента x2go в Ubuntu.
Ничего сложного нет, добавляем тот же репозиторий, через который устанавливали сервер x2go, и ставим из него пакет клиента:
1 2 3 |
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 сервер на компьютерах в офисе, оперативы они едят мало и админ будет подключаться с помощью клиента к рабочим компам, тоже как вариант.
Всё делается тоже самое, создается новое подключение вписываются данные, только в тип соединения выбираем:
Выбираем:
Тип сессии – Соединение с локальным десктопом.
Всё. Подключаемся, будет спрошено:
Выбираем Полный доступ, если хотим управлять удаленным компьютером, откроется запущенный сеанс:
Получили доступ, управляем и делаем что хотим с удаленным компом.
Вот и всё.
Программа умеет гораздо больше. Показал самое основное.
Источник: http://www.linuxrussia.com/2015/06/x2go-ubuntu.html
Моё почтение автору. Написано достаточно чётко и ясно. Только по этой статье смог подключиться к удаленному компьютеру. И много узнал про функции x2go.
Спасибо за инструкцию!
Назрел вопрос: есть ли способ захвата клавиатуры внутри виртулаки?
Чтобы, например, Alt+Tab не перехватывала родительская система, а он срабатывал в x2go?
Просто пользуйтесь Nomachine. Там захватывается клавиатура. И вобще всё работает прекрасно.