Методы удаленного доступа к Linux GUI
В службу технической поддержки RUVDS регулярно обращаются по поводу GUI и удаленного доступа к нему на виртуальных серверах с Linux, несмотря на то что в интернете достаточно много материалов освещающих эту проблему. Поэтому, для наших пользователей мы решили собрать всё по этой теме в одну статью.
Введение
На всякий случай возможно стоит упомянуть, что SSH — основной способ предоставления доступа к линуксовым виртуалкам на RUVDS. Большая часть действий описываемых в этой статье будет осуществляться именно таким образом.
Для подключения необходимо найти SSH-клиент для вашей операционной системы.
- OpenSSH; если Вы пользуетесь Linux, например Ubuntu, скорее всего всё уже установлено, до нас, так что можно смело писать в терминале: ssh root@[IP].
- PuTTY есть и для Linux, в том числе в официальных репозиториях Debian и Ubuntu.
MAC OS:
Установка GUI
Итак, перейдем к установке GUI. Сначала нужно поставить графическую подсистему:
Для Debian/Ubuntu:
Далее следует установка Desktop Environment (DE). Их существует великое множество. Мы рекомендуем ставить на сервер более легковесные среды, а еще лучше, не ставить вовсе. Первые две DE достаточно компактные, функциональные и «привычные».
1. Xfce
Для Debian/Ubuntu:
Можно поставить дополнительно:
Добавление русской раскладки:
Сочетание клавиш можно менять на свое усмотрение, например:
Чтобы эта команда запускалась каждый раз при запуске LXDE, нужно добавить в конец файла с помощью вашего любимого vi строку: @setxkbmap -option grp:switch,grp:ctrl_shift_toggle,grp_led:scroll us,ru. Или вот так…
Следующие две DE являются чрезвычайно легкими. Если уж GUI нужен на сервере, вероятно, стоит использовать именно их.
3. FluxBox
Для Debian/Ubuntu:
4. Openbox
Для Debian/Ubuntu:
Далее следуют наиболее популярные на десктопах графические оболочки.
5. Gnome
Для Ubuntu/Debian:
Замечание: с настройкой VNC-сервера под Gnome что-то пошло не так… Сервера из репозиториев tightvncserver и vnc4server так и не согласились сотрудничать, поэтому пришлось собрать пару deb-пакетов руками. Если у Вас не получится настроить сервер, то мы можем порекомендовать скачать собранный нами архив с tigervnc-server’ом и поставить его. Для этого:
7. Cinnamon
Для Debian/Ubuntu:
Если Вы хотите получать доступ к GUI через «Аварийный режим», то необходимо сделать следующее:
Мало того, необходимо обеспечить запуск графической оболочки при старте системы. Для этого можно установить какой-нибудь экранный менеджер (Display Manager, DM), например:
Или в случае с CentOS:
Если необходимости в доступе из личного кабинета нет, то следует выполнить:
Заметка: Ubuntu предлагает своим пользователям несколько метапакетов для более удобной установки нужной DE:
Далее, есть много способов получить удаленный доступ к GUI.
Удаленный доступ
На виртуальном сервере, в зависимости от OS нужно произвести следующие действия.
Далее, если вы используете Windows, подключаемся через встроенный RDP-клиент, Remote Desktop Connection (Подключение к удаленному рабочему столу).
Стандартный порт 3389. Для Linux есть масса клиентов которые можно установить из репозиториев: freerdp и remmina, gnome-rdp, vinagre и т.п.
Также можно пробросить RDP-шный трафик через SSH-туннель. Для этого нужно поправить конфигурационный файл xrdp:
В секцию [globals] нужно добавить строку: address=127.0.0.1
Проверить, что всё правильно, можно так:
Затем если вы используете cygwin или mingw, linux или mac os:
Запустите PuTTY. В древовидном меню слева Connection → SSH → Tunnels. Далее добавляем новый Forwarded Port (Source port: 3389, Destination: localhost:3389). Нажимаем Add.
Далее следуете в секцию Session. Вводите IP вашего сервера в поле Host Name (or IP address). Нажимаете кнопку Open, вводите пароль для подключения по SSH.
Далее для Windows:
- Можно использовать вышеупомянутый клиент: remmina
- Если в браузере хотите: novnc — HTML5 VNC client
- И ещё куча всяких разных: directvnc, gnome-rdp, krdc, xtightvncviewer, vinagre, xvnc4viewer
Для MAC OS:
OS X предоставляет для этого встроенное приложение Screen Sharing. Можно также использовать Safari
Сервер: На Вашей виртуальной машине установите VNC сервер:
Если на Вашей системе работает файрвол необходимо открыть соответствующие порты. Пример для CentOS
При возникновении проблем с отображением иконок и шрифтов при использовании xfce4 по Ubuntu/Debian:
Если вы хотите, чтобы VNC-сервер стартовал автоматически, создайте файл:
Со следующим содержимым:
Теперь можно подключиться, например, через UltraVNC. Для этого нужно запустить UltraVNC Viewer, в поле VNC Server записать [IP]::5901 (по-умолчанию: 5901, 5902 и т.п. для первого дисплея, второго и т.д. соответственно) и нажать на кнопку подключиться.
Также можно пустить vnc-шный трафик через ssh-туннель. Для этого отредактируйте:
Затем если вы используете cygwin или mingw, linux или mac os:
Если PuTTY:
Запустите PuTTY. В древовидном меню слева Connection → SSH → Tunnels. Далее добавляем новый Forwarded Port (Source port: 5901, Destination: localhost:5901). Нажимаем Add.
Далее следуете в секцию Session. Вводите IP вашего сервера в поле Host Name (or IP address). Нажимаете кнопку Open, вводите пароль для подключения по SSH.
Затем открываете UltraVNC Viewer и в поле VNC Server вводите: localhost::5901 после чего подключаетесь.
Также можете попробовать другие VNC-сервера:
x11vnc — фактически VNC-сервер (как vnc4server или tightvnc), но позволяет получать доступ к уже существующей X-сессии. Т.е. если Вы настроили графическую оболочку таким образом, что она запускается при старте системы, то можно использовать следующий вариант:
После подключения по VNC (на порт 5900) Вы должны увидеть тоже что и в «Аварийном режиме».
Для старта x11vnc при запуске OS необходимо проделать следующее:
Теперь немного поинтереснее. Одна замечательная компания NoMachine разработала отличный протокол NX на замену VNC. Клиенты для подключения по этому протоколу бесплатны, а официальное серверное ПО от NoMachine стоит много денег. В свое время, эта же компания поддерживала проект FreeNX работы на котором со временем затихли; текущая версия 0.7.2 от 2008-08-22. Но, к счастью, нашлись люди создавшие форк и назвавшие его x2go. К сожалению, x2go не совместим ни с NX от NoMachine, ни с freeNX. Так что клиент берем тут.
Установка сервера на Debian (источник):
Для примера поставим эту DE:
Далее следуем инструкциям с оффициального сайта:
Вывод следующей команды должен показать, что x2go готов к работе:
А теперь важный момент, подключиться без этого фикса не получится! Нужно найти в файле .profile строку «mesg n» и заменить её на «tty -s && mesg n».
Следующая команда выведет путь до исполняемого файла startfluxbox, понадобится при настройке клиента:
Установка сервера на Ubuntu:
А теперь важный момент, подключиться без этого фикса не получится! Нужно найти в файле .profile строку «mesg n || true» и заменить её на «tty -s && mesg n».
Установка сервера на CentOS:
Клиент для линукс ставится из вышеприведенных репозиториев следующей командой:
Для Windows — скачиваем, ставим, запускаем. По той же ссылке, приведенной выше, есть клиент для OS X.
В настройках сессии указываем: в поле Host — IP вашего сервера, в поле Login — root, порт оставляем как есть, session type — тот GUI который ставили.
Как вы можете видеть, есть возможность аутентификации по ключу. В общем много всякого. Посмотрите сами. И звук можно через PulseAudio выводить.
После нажатия Ok вы увидите вот такие вот очаровательные штучки, на которые нужно нажать для получения запроса на ввод пароля и подключения к выбранной сессии:
Замечание: обратите внимание, что в списке нет Вашего любимого FluxBox’а поэтому путь к нему приходится прописывать руками.
Важной возможностью x2go является возможность запуска любого графического приложения вообще без установки DE. Для этого в настройках сессии нужно в секции session type нужно выбрать пункт single application и выбрать выполняемое приложение или ввести путь к программе которую следует запустить.
В этом случае установка ПО на сервер будет выглядеть следующим образом. В случае с Ubuntu:
А теперь важный момент, подключиться без этого фикса не получится! Нужно найти в файле .profile строку «mesg n || true» и заменить её на «tty -s && mesg n».
И настроив сессию как показано ниже, можно будет запустить браузер на удаленном сервере, а на вашей машине откроется окно его отображающее:
Или так; тогда просто откроется окно терминала:
Ниже вы можете видеть скриншот окна статуса текущей сессии. Оранжевыми цифрами отмечены кнопки:
- «Suspend session» — после нажатия на эту кнопку соединение будет разорвано, но сессия останется и будет ожидать повторного подключения. Все запущенные вами на сервере приложения продолжат свою работу;
- «Terminate session» — после нажатия подключение к серверу будет разорвано, а запущенные вами на сервере приложения будут завершены.
TeamViewer
Последний способ удаленного доступа к рабочему столу.
Установка на Ubuntu:
Установка на Debian:
Установка на CentOS:
Также необходимо принять лицензионное соглашение TeamViewer’а, это можно сделать с помощью «Аварийного режима», либо добавить следующие строки в конец файла /opt/teamviewer/config/global.conf:
Следующая команда покажет состояние демона TeamViewer’а и необходимый для подключения девятизначный TeamViewer ID:
После запуска клиента скачанного тут, нужно ввести TeamViewer ID в поле Partner UD и нажать на кнопку «Connect to partner». Далее TeamViewer запросит пароль: [PASSWD].
Источник
Лучшие RDP клиенты для Linux
Протокол RDP или Remote Desktop Protocol — это основной протокол удалённого доступа в операционных системах семейства Windows. В современных версиях Windows уже по умолчанию предустановлено всё необходимое программное обеспечение для обеспечения доступа к вашему компьютеру удалённо, а также для удалённого подключения к другим компьютерам с Windows.
Для операционных систем на базе ядра Linux было разработано несколько свободных клиентов, реализующих поддержку протокола RDP. В этой статье мы собрали лучшие клиенты RDP для Linux, работающие как в графическом интерфейсе, так и в командной строке.
Лучшие RDP клиенты в Linux
1. Remmina
Для этой операционной системы существует не так много клиентов и это лучший клиент RDP для Linux. У программы есть удобный графический интерфейс, множество различных настроек, возможность сохранения ярлыков для быстрого подключения к удалённым узлам с нужными вам настройками. Но автоматически ярлыки не сохраняются, вам надо будет делать это вручную. Кроме протокола RDP поддерживается VNC и SSH. Программа разрабатывается в рамках проекта FreeRDP, с использованием библиотеки GTK. Есть порт на Qt. Разрабатывается достаточно активно и новые версии выходят раз в несколько месяцев. Для установки достаточно выполнить команду:
sudo apt install remmina
2. Gnome Connections
Это совсем новая утилита, разработка которой стартовала в начале 2020 года. Connections — очень простое приложение, сделанное специально для Gnome и предназначенное для управления удалёнными подключениями. Из протоколов поддерживаются RDP и VNC. В отличие от Remmina, настроек в утилите совсем нет, вы можете только указать адрес и порт компьютера, к которому надо подключится и включить или отключить масштабирование. И всё никаких настроек передачи звука, буфера обмена, захвата клавиш, разрешения экрана нет. Программа всё ещё находится в разработке, но её уже можно установить из Flathub:
flatpak install flathub org.gnome.Connections
А для запуска используйте команду:
flatpak run org.gnome.Connections
3. Vinagre
Это ещё одно приложение для Gnome, которое раньше позиционировалось как программа по умолчанию для управления удалёнными соединениями в Gnome. Настроек здесь уже немного больше, по сравнению с Connections, но всё ещё меньше, чем у Remmina. При подключении вы можете выбрать протокол, имя пользователя и разрешение экрана, а также надо ли масштабировать рабочий стол удалённой машины. Из протоколов поддерживается RDP, SSH, SPICE и VNC. Программа довольно простая и свою работу выполняет, но разрабатывается уже не очень активно. Установить в Ubuntu можно командой:
sudo apt install vinagre
4. Xfreerdp
С полностью графическими клиентами RDP для Linux мы закончили. Но есть ещё несколько использующих консольный интерфейс. Первая из них — xfreerdp. Настроек здесь ещё больше чем у Remmina, но задавать их все надо в командной строке. Поддерживается только протокол RDP. Программа достаточно активно разрабатывается и поддерживает все необходимые новшества протокола RDP. Для подключения к серверу используется опция /v. Например:
xfreerdp /v:ip_сервера:порт /u:имя_пользователя
Для установки программы в Ubuntu используйте команду:
sudo apt install freerdp2-x11
5. Rdesktop
Последняя в нашем списке консольная утилита rdesktop. Это самая первая реализация клиента RDP для Linux. В далёком 2009 году, проект FreeRDP был создан на основе форка Rdesktop. Сейчас проект почти не развивается, а с 2019 года ищет мэйнтейнера. И у программы есть ещё одна проблема. В новых версиях Windows компания Microsoft добавила новую авторизацию NLA (Network Level Authentication). Программа Rdesktop её не поддерживает, поэтому если вы захотите использовать её для подключения к Windows, эту технологию стоит отключить. Или же вы можете использовать любую другую программу из перечисленных выше. Чтобы подключится к удалённой машине надо просто передать её адрес программе:
Для установки rdesktop выполните:
sudo apt install rdesktop
Выводы
В этой статье мы разобрали лучшие программы для подключения по RDP из Linux, которые вы можете использовать для своей работы. Может некоторые из них не такие уже и лучшие, но других у нас нет. А каким клиентом пользуетесь вы? Напишите в комментариях!
Источник