company_banner

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


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

    Оглавление:



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


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



    В качестве окружения рабочего стола снова берем 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


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

    sudo adduser desktopuser


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

    sudo gpasswd -a desktopuser sudo

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


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

    sudo apt-get install x2goclient

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


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




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


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


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



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

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

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


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

    RUVDS.com
    RUVDS – хостинг VDS/VPS серверов

    Комментарии 14

      +1

      Отличная штука, пользуюсь ей с тех пор как Nomachine перешли на 4.0. Проблема в том, что все браузеры стали отрисовываться большими битмапами и теперь тормозят. Какое-то время назад firefox работал практически так же хорошо, как на локальной машине — теперь прокрутка подтормаживает так же как на chrome.

        +1
        стали отрисовываться большими битмапами

        А это проблема именно подсистемы X?
        Потому что на связке Win10(rdp patch)-Win7 браузер работает отлично на канале 10 Мбит…
        +1
        Самое ужасное, что глючит клавиатура. Часто не переключается раскладка, не работает буфер обмена (это если заходить с винды на линукс). Но в целом это все равно лучше других вариантов удаленной работы с X11.
          0
          Подскажите на сколько данный метод подключения безопасен?
          Верно ли я понимаю, что весь трафик идет по ssh? Возможно ли усилить шифрование дополнительным методом? Или это уже лишнее и все и так надежно?
            0
            Можно ограничить в sshd_conf допустимые виды шифрования, перейти на сертификаты с максимальной длиной ключа. Если очень хочется — пустить еще и по VPN, но любые меры будут снижать скорость отклика.
            +1
            Пытался юзать x2go для Visual Code (еще до того, как там появилась поддержка remote access) — тормозит рендер редактора. Подсветка синтаксиса языка идет в режиме «slowmotion». Вполне возможно, как уже упомянул boblenin, проблема из-за отрисовки веб-содержимого.
            Также при не самом стабильном LTE 4G (потери пакетов), клиент нередко виснет намертво, но при этом ssh работает. Снижение качества почему-то особо не решало проблемы.
            В третьих — как уже выше описали — проблемы с раскладкой при использовании клиента на Windows.

            Но тем не менее, при использовании стабильного Ethernet, x2go является интересным решением для запуска графических linux программ на удаленной машине, даже при низкой пропускной способности канала.
              0

              А сколько разных юзеров могут одновременно висеть, чтоб у каждого свой звук и видео?

                0
                X2GO конечно офигенен, но когда ж для него будет мобильный клиент :`(
                  0

                  Сколько одновременно держит клиентов? Сейчас у меня ThinLinc держит 11 клиентов. На 8 гигах. Клиенты — фаерфокс. Видео в полный экран, например ютюб не тянет.

                    0
                    Пробовал: VNC, RDP, X2Go в итоге остановился на xpra. Для меня оно оказалось зничтельно удобнее и универсальнее.
                      0
                      а можете поделиться опытом? у xpra нет таких проблем какие описаны выше с рендером и зависанием клиента на мобильном инете? всё быстро и отзывчиво?
                        0
                        Есть некоторые проблемы с DPI, но это некритично
                      +3

                      2020 год… до сих пор за инсталляцию надо платить… руками еще разворачиваете?)
                        0
                        Тариф за ресурсы предусматривает единовременное выделение вычислительных ресурсов при значительном времени простоя сервера без нагрузки. 99 рублей — это минимальный платеж, который складывается из оплаты за место на жестком диске и IPv4 адреса(ов) в аренде.

                      Только полноправные пользователи могут оставлять комментарии. Войдите, пожалуйста.

                      Самое читаемое