Как настроить удаленный рабочий стол с X2Go в Debian 8

Вступление

Для эффективности, безопасности и возможности делать все из командной строки многие серверы не используют графический интерфейс пользователя (GUI). Однако бывают случаи, когда вы хотите запускать приложения с графическим интерфейсом на своих удаленных серверах, например, когда вы тестируете веб-сайты в браузерах или хотите установить удаленно доступную рабочую станцию ​​с полной средой рабочего стола (DE).

Типичным решением для взаимодействия с графическим интерфейсом на удаленном компьютере под управлением Linux или других * nix-вариантов является Virtual Network Computing (VNC). К сожалению, VNC общеизвестно вялый, небезопасный по умолчанию и требует много ручной настройки, чтобы начать работу.

Напротив, X2Go предоставляет несколько преимуществ:

  • Вместо отправки изображений с удаленного компьютера на ваш компьютер, например, VNC, X2Go использует модифицированную версию X (графического) сервера и протокол X11, чтобы минимизировать объем данных, которыми обмениваются клиент и сервер. Это дает вам почти локальный опыт рабочего стола. Единственное требование к производительности такого рода состоит в том, что сетевое расстояние между клиентом и сервером не слишком велико. Когда вы отправляете эхо-запрос на сервер с клиентского компьютера, время приема-передачи не должно превышать 100 миллисекунд. Близко к 50 мс будет оптимальным, а 200 мс будет приемлемым, но не большим.

  • X2Go работает с вашим существующим SSH-демоном, шифруя весь трафик между клиентом и сервером, используя тот же проверенный и безопасный механизм аутентификации.

  • X2Go не требует сложной ручной настройки. Он знает, как настроить сеанс и автоматически запускать популярные среды рабочего стола, такие как XFCE, LXDE, MATE и другие.

  • В отличие от VNC, X2Go настраивает среду при входе в систему, поэтому вам не нужно постоянно запускать X-сервер. Кроме того, ваша сессия продолжается даже после вашего отключения, а это означает, что при повторном подключении вы найдете все, как вы его оставили, как на локальном рабочем столе.

  • X2Go поддерживает несколько сеансов входа, рабочие столы и пользователи, вошедшие в свои собственные отдельные среды.

  • Вместо целой среды рабочего стола вы можете запускать отдельные графические приложения в X2Go, сохраняя ресурсы вашего локального компьютера, используя преимущества более мощных ресурсов сервера, даже оставляя задачи, выполняемые удаленно, на несколько дней подряд.

Такая настройка полезна, когда:

  • Вам необходим этот тип рабочего стола, но вы не можете установить операционную систему на базе Linux локально.

  • Вы отправляетесь в путешествие, но не можете взять с собой компьютер.

  • Ваш интернет-провайдер предоставляет вам очень небольшую пропускную способность, но вам нужен доступ к десяткам или сотням гигабайт данных.

  • Вам нужна отдельная машина, чтобы работать над чем-то неделями или месяцами.

  • Вы работаете с командой, и всем нужен доступ к одному удаленному рабочему столу.

  • Вам нужна некоторая комбинация графического рабочего стола, высокоскоростного Интернета, надежного источника питания и способности быстро масштабировать ресурсы вверх и вниз.

В этом руководстве мы рекомендуем Debian поверх Ubuntu, потому что некоторые версии стандартного DE Ubuntu, Unity, не совместимы с X2Go. И альтернативные окружения рабочего стола иногда могут быть проблематичными в Ubuntu.

Кроме того, мы рекомендуем XFCE, поскольку для его работы не требуется выделенная видеокарта, что делает ее более совместимой с X2Go. Но LXDE, Mate (с отключенным наложением) и даже более старые KDE, Unity и Cinnamon (с некоторыми настройками) тоже могут работать.

Наконец, Firefox-if * xrender * активен (что по умолчанию в Debian 8) - обычно обеспечивает более плавную работу с X2Go.

После прохождения этого руководства у вас будет рабочий стол Linux, к которому вы сможете подключиться удаленно, и он будет включать в себя те же утилиты, которые вы получите, установив Debian XFCE локально. Кроме того, установив и настроив брандмауэр, вы обезопасите свой удаленный рабочий стол, что затруднит его использование.

Предпосылки

Прежде чем приступить к работе с этим учебником, вам потребуется:

  • Экземпляр Debian 8 x64 с 1 или 2 ГБ ОЗУ. (1 ГБ минимально, 2 ГБ безопаснее начать, и 4 ГБ будет оптимальным). Выберите расположение сервера, которое находится максимально близко к области, с которой вы собираетесь подключаться.

  • Пользователь с привилегиями sudo; следуя этому руководству, вы начнете: Initial Настройка сервера с Debian 8.

Помните, что если у вас заканчивается ОЗУ, приложение будет остановлено ядром Linux, и вы можете потерять свою работу. Если вы знаете или замечаете, что используемым программам требуется много оперативной памяти, вы можете отключить каплю и изменить ее размер по мере необходимости.

Шаг 1 - Брандмауэр сервера

Установка всей среды рабочего стола требует множества дополнительных программных зависимостей и рекомендаций, некоторые из которых могут попытаться открыть сетевые порты. Например, общая система печати UNIX (CUPS), включенная во многие DE, может попытаться открыть порт 631. Хотя такая служба, как CUPS, может быть полезна дома, мы не хотим, чтобы наш сервер был открыт для всего Интернета, поэтому хорошая идея - блокировать каждое входящее соединение. Единственным исключением будет порт 22, который останется открытым, чтобы мы могли соединяться с SSH и X2Go.

Чтобы обезопасить наш сервер, мы будем использовать Uncomplicated Firewall (UFW), потому что он менее подвержен ошибкам для начинающих, проще для понимания и управления и лучше подходит для нашей цели - разрешить подключения только к одному порту. iptables и другие более сложные брандмауэры лучше подходят для сложных и сложных правил, требующих более детальной детализации. (См. Https://www.digitalocean.com/community/tutorials/ufw-essentials-common-firewall-rules-and-commands[UFW Essentials: Общие правила и команды брандмауэра] для краткого справочного руководства по распространенным командам.)

Сначала установите UFW:

sudo apt-get install ufw

По умолчанию брандмауэр должен быть неактивным на этом этапе. Вы можете проверить с помощью:

sudo ufw status verbose

Результат должен быть:

OutputStatus: inactive

Проверка состояния на этом этапе важна, чтобы не блокировать себя, если + ufw + активен, когда мы блокируем все входящие соединения позже.

Если UFW уже активен, отключите его с помощью:

sudo ufw disable

Теперь установите правила брандмауэра по умолчанию, чтобы запретить все входящие подключения и разрешить все исходящие:

sudo ufw default deny incoming
sudo ufw default allow outgoing

И разрешите SSH-соединения с сервером (порт 22):

sudo ufw allow 22

Установив правила, давайте активируем + ufw +:

sudo ufw enable

Это выведет:

OutputCommand may disrupt existing ssh connections. Proceed with operation (y|n)?

Введите + a + и нажмите + ENTER, чтобы активировать брандмауэр.

Если вы столкнулись с проблемой и обнаружили, что доступ по SSH заблокирован, вы можете следовать https://www.digitalocean.com/community/tutorials/how-to-use-the-digitalocean-console-to-access-your-droplet [Как использовать консоль DigitalOcean для доступа к капле], чтобы восстановить доступ.

С нашим брандмауэром есть только одна точка входа на наш сервер, и мы готовы установить графическую среду для сервера X2Go.

Шаг 2 - Установка среды рабочего стола

В этом руководстве вы установите среду рабочего стола XFCE. Есть два способа добиться этого, но вам нужно только * выбрать один * - либо Минимальную среду рабочего стола, либо _ Полную среду рабочего стола.

  • Минимальная среда рабочего стола *: если вы хотите установить небольшой базовый набор пакетов, а затем собрать поверх них, вручную добавив все, что вам нужно, вы можете использовать + xfce4 + metapackage.

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

Установите + xfce4 + и все дополнительные зависимости, необходимые для его поддержки:

sudo apt-get install xfce4
  • Полная среда рабочего стола: * Если вы не хотите вручную выбирать каждый компонент, который вам нужен, и предпочитаете предварительно установить набор пакетов по умолчанию, например, текстовый процессор, веб-браузер, почтовый клиент и другие аксессуары, вы можете выбрать + проблемно-Xfce-рабочий стол +.

Установите и настройте полную среду рабочего стола, аналогичную той, которую вы получите с Debian XFCE с загрузочного DVD на вашем локальном ПК:

sudo apt-get install task-xfce-desktop

Теперь, когда наша графическая среда установлена ​​и настроена, нам нужно настроить способ ее просмотра с другого компьютера.

Шаг 3 - Установка X2Go на сервер

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

Поскольку Debian не включает сервер X2Go в свои репозитории по умолчанию, мы должны добавить дополнительный репозиторий в конфигурацию менеджера пакетов.

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

sudo apt-key adv --recv-keys --keyserver keys.gnupg.net E1F958385BFE2B6E

Теперь добавьте репозиторий в файлы конфигурации менеджера пакетов:

echo 'deb http://packages.x2go.org/debian jessie main' | sudo tee /etc/apt/sources.list.d/x2go.list

Это создаст файл + / etc / apt / sources.list.d / x2go.list + и добавит к нему строку + deb http://packages.x2go.org/debian jessie main +, сообщая менеджеру пакетов, где найти дополнительные пакеты.

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

sudo apt-get update

И, наконец, установите X2Go на сервер:

sudo apt-get install x2goserver x2goserver-xsession

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

Теперь мы закончили настройку сервера и можем набрать + exit + или закрыть окно терминала. Остальные шаги будут сосредоточены на клиенте для вашей локальной машины.

Шаг 4 - Локальная установка клиента X2Go

Если вы используете Windows на своем локальном компьютере, вы можете загрузить клиентское программное обеспечение с http://code.x2go.org/releases/X2GoClient_latest_mswin32-setup.exe.

После того, как вы выберете предпочитаемый язык и согласитесь с лицензией, мастер проведет вас через каждый шаг процесса установки. Как правило, не должно быть никаких причин изменять какие-либо значения по умолчанию, предварительно заполненные или предварительно выбранные в этих шагах.

Если вы используете macOS локально, вы можете найти клиентское программное обеспечение по адресу http://code.x2go.org/releases/X2GoClient_latest_macosx_10_9.dmg.

Дважды щелкните файл .dmg, чтобы открыть папку, содержащую авторские права, лицензию и исполняемый файл клиента X2Go, затем дважды щелкните исполняемый файл, чтобы запустить клиент.

И, если вы используете Debian или Ubuntu, вы можете установить клиент X2Go с:

sudo apt-get install x2goclient

Если вам нужна дополнительная информация о клиентах или вы хотите создать ее из исходного кода, вы можете посетить X2Go официальную документацию.

Теперь, когда настольный клиент установлен, мы можем настроить его параметры и подключиться к серверу X2Go, чтобы использовать наш удаленный рабочий стол XFCE.

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

При первом открытии клиента X2Go должно появиться следующее окно. Если этого не произойдет, нажмите * Session * в верхнем левом меню, а затем выберите * New session… *.

изображение: http: //assets.digitalocean.com/articles/how-to-setup-a-remote-desktop-with-x2go-on-debian-8/create-new-session.png [Скриншот клиента X2Go - Создание Новая сессия]

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

Введите IP-адрес или имя хоста вашего сервера в поле * Host * под * Server *.

Введите имя пользователя, которое вы использовали для подключения SSH, в поле * Логин *.

И, поскольку это то, что мы установили на втором шаге, выберите + XFCE + в качестве * типа сеанса *.

Наконец, поскольку мы подключаемся к серверу с помощью ключей SSH, щелкните значок папки рядом с * Использовать ключ RSA / DSA для подключения SSH * и перейдите к своему личному ключу.

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

После нажатия кнопки * OK * вы можете начать графическую сессию, щелкнув по белому полю с названием вашей сессии в правой верхней части экрана.

изображение: http: //assets.digitalocean.com/articles/how-to-setup-a-remote-desktop-with-x2go-on-debian-8/main-window.png [Главное окно X2Go - список сеансов]

Через несколько секунд отобразится ваш удаленный рабочий стол, и вы сможете начать с ним взаимодействовать. При первом входе в систему XFCE спросит, хотите ли вы * Использовать конфигурацию по умолчанию * или * Одна пустая панель *. Первый вариант создаст прямоугольную панель, закрепленную в нижней части экрана и содержащую несколько полезных ярлыков приложений (например, файловый менеджер, эмулятор терминала, браузер и т. д.). Эта опция также добавит верхнюю панель на рабочий стол, которая включает в себя такие утилиты, как панель запуска приложений, часы, меню выключения и многое другое.

Если вы уже не знакомы с XFCE, выбор пустой панели может быть более сложным, поскольку вы начнете с нуля. Там не будет ни панели задач, ни часов, ни заранее настроенного меню «Пуск»; это будет зависеть от вас, чтобы добавить все на пустую панель самостоятельно.

Кроме того, в операционных системах на базе Windows и Linux есть несколько полезных сочетаний клавиш, которые можно использовать для удобства работы:

+ CTRL + ALT + F + включает и выключает полноэкранный режим. Работа в полноэкранном режиме может больше походить на локальный рабочий стол. Кроме того, удаленные ОС будут использовать другие сочетания клавиш вместо локальной.

+ CTRL + ALT + M + минимизирует удаленный просмотр, даже если вы находитесь в полноэкранном режиме

+ CTRL + ALT + T + отключится от сеанса, но оставит GUI работающим на сервере. Это просто быстрый способ отключения без выхода из системы или закрытия приложений на сервере. То же самое произойдет, если вы нажмете кнопку закрытия окна.

Наконец, есть два способа завершить удаленный сеанс, закрыв все графические программы, запущенные в нем. Вы можете удаленно выйти из меню «Пуск» XFCE или нажать кнопку, помеченную кружком и маленькой линией (например, значок питания / режима ожидания) в правом нижнем углу основной части экрана.

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

изображение: http: //assets.digitalocean.com/articles/how-to-setup-a-remote-desktop-with-x2go-on-debian-8/terminate-session.png [Главное окно X2Go - кнопка завершения сеанса]

В заключение, хотя это и не требуется, давайте перейдем в панель управления XFCE, перейдем к настройкам питания и отключим все функции ожидания. Если вы некоторое время не используете рабочий стол, XFCE попытается запустить режим ожидания. Хотя сервер обычно ничего не делает, когда получает этот запрос, лучше вообще избегать непредвиденных действий.

Заключение

Теперь у вас есть рабочий «облачный рабочий стол» со всеми преимуществами постоянно доступной удаленной компьютерной системы.

Чтобы продвинуться дальше, вы могли бы централизовать свою работу по разработке: creating git repository, установив удаленный редактор кода, такой как Eclipse, или configuring web server для тестирование веб-приложений. Вы также можете соединить свой удаленный рабочий стол с https://www.digitalocean.com/community/tutorials/how-to-choose-an-effective-backup-strategy-for-your-vps настолько хорошей схемой резервного копирования], чтобы убедиться, что что ваша рабочая среда доступна из любого места и она защищена от потери данных.

Если вы хотите узнать больше, посетите официальный веб-сайт документации X2Go.