Линукс удаленные рабочие столы

Методы удаленного доступа к Linux GUI

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

Введение

На всякий случай возможно стоит упомянуть, что SSH — основной способ предоставления доступа к линуксовым виртуалкам на RUVDS. Большая часть действий описываемых в этой статье будет осуществляться именно таким образом.

Для подключения необходимо найти SSH-клиент для вашей операционной системы.

  1. OpenSSH; если Вы пользуетесь Linux, например Ubuntu, скорее всего всё уже установлено, до нас, так что можно смело писать в терминале: ssh root@[IP].
  2. 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:

  1. Можно использовать вышеупомянутый клиент: remmina
  2. Если в браузере хотите: novnc — HTML5 VNC client
  3. И ещё куча всяких разных: directvnc, gnome-rdp, krdc, xtightvncviewer, vinagre, xvnc4viewer
Читайте также:  Fermi bios editor windows 10

Для 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 и выбрать выполняемое приложение или ввести путь к программе которую следует запустить.

Читайте также:  Windows 10 виснет спящий режим

В этом случае установка ПО на сервер будет выглядеть следующим образом. В случае с Ubuntu:

А теперь важный момент, подключиться без этого фикса не получится! Нужно найти в файле .profile строку «mesg n || true» и заменить её на «tty -s && mesg n».

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

Или так; тогда просто откроется окно терминала:

Ниже вы можете видеть скриншот окна статуса текущей сессии. Оранжевыми цифрами отмечены кнопки:

  1. «Suspend session» — после нажатия на эту кнопку соединение будет разорвано, но сессия останется и будет ожидать повторного подключения. Все запущенные вами на сервере приложения продолжат свою работу;
  2. «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 — лучшие клиенты для удаленного рабочего стола

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

Это отличная функция, потому что у нее много приложений, таких как:

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

O RDP

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

Существует много известных протоколов удаленных рабочих столов, таких как RDP (Remote Desktop Protocol). Он является проприетарным протоколом, разработанным Microsoft и реализованным в ОС Windows.

Протокол VNC (Virtual Network Computing), который является бесплатным и открытым исходным кодом.

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

Подробнее о TeamViewer можно узнать в данной статье.

В этой статье мы перечислим лучшие из этих программ с открытым исходным кодом для удаленного рабочего стола.

TigerVNC

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

Разработка TigerVNC началась еще в 1999 году компанией At & T, где она была проприетарным ПО. Позже, спустя много лет, он был разветвлен между различными компаниями. В результате, стабилизировался как приложение с открытым исходным кодом. Он выпущен под лицензией GPL.

TigerVNC доступен для Windows, MacOS и Linux. Вы также обычно найдете его в официальных репозиториях вашего дистрибутива Linux.

Rdesktop

Это программа с открытым исходным кодом для подключения к хостам Windows по протоколу RDP.

Разработка Rdesktop началась еще в 2001 году, когда Microsoft начала распространять свой новый протокол RDP в ОС. В то время еще не было реализации с открытым исходным кодом для этого протокола. Разработчик программы спроектировал протокол RDP для создания Rdesktop и сделал его открытым исходным кодом.

Читайте также:  Настройка имени компьютера windows 10

Rdesktop очень легкий. Размер загружаемого файла менее 500 КБ. Просто, потому что это не идет с пользовательским интерфейсом. Rdesktop — это приложение командной строки, поэтому вам нужно запустить командную строку и запустить ее с IP-адресом хоста, который вам нужен. В результате вы откроите окно, достаточное для отображения интерфейса удаленного рабочего стола:

Последний выпуск реализован недавно. Вы найдете его в официальных репозиториях дистрибутива или загрузить вместе с исходным кодом с GitHub. Rdesktop выпускается под лицензией GPL.

FreeRDP

FreeRDP является одним из самых известных решений с открытым исходным кодом, когда речь идет об удаленном рабочем столе. Его разработка началась еще в 2009 году как программы rdesktop. FreeRDP лицензируется Apache 2.0.

FreeDRP разветвлен от Rdesktop, потому что, по словам разработчиков , первоначально Rdesktop не хотели использовать открытые спецификации Microsoft, которые были выпущены в этом году для протокола RDP. Вместо этого они предпочитали продолжать работу по обратному инжинирингу. И, похоже, начались жаркие споры о принятии конкретных решений, что привело к созданию FreeRDP в 2009 году.

FreeRDP позволяет вам подключаться к любому хосту Windows, используя протокол RDP.

Он также поддерживает перенаправление:

  • аудио
  • принтеров
  • серийных номеров
  • буфера обмена
  • дисков с хост-компьютера на ваш компьютер

Вы также можете выбрать собственную ширину или высоту для:

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

Кроме того, можете запускать RemoteApps.

Вы можете скачать FreeRDP или получить доступ к исходному коду на GitHub.

Remmina

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

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

Кроме того, приложение поддерживает:

  • автоматическое масштабирование
  • снимки экрана
  • сочетания клавиш
  • функции VNC / RDP
  • шифрование
  • совместное использование устройств
  • перенаправление
  • другие вещи

Приложение доступно для простой установки во всех основных дистрибутивах Linux, поставляется в форматах Flatpak и Snap и работает на Raspberry Pi. Однако приложение недоступно ни для Windows, ни для MacOS. Он выпущен под лицензией GPL.

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

Apache Guacamole

Apache Guacamole — это уникальное ПО в нашем списке. Причина в том что, в отличие от других, работает как веб-приложение для просмотра всех удаленных рабочих столов, которые вы хотите. Вот почему разработчики ПО называют его «удаленным рабочим столом без клиента». Потому что, ему не нужен клиент (хотя он и есть), но работает из веб-браузера. Все, что нужно сделать, это установить серверную версию на свой хост, чтобы получить к ней доступ из Интернета.

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

Официальный сайт Apache Guacamole

Вывод

Как вы уже могли видеть, существует множество альтернатив TeamViewer и другим программам удаленного рабочего стола в мире открытого исходного кода. Этот список должен помочь вам в этом.

Кроме того, есть некоторые другие проекты с открытым исходным кодом, которые не были упомянуты здесь подробно, такие как:

  • Grdesktop (графический интерфейс пользователя для Rdesktop, слишком старый),
  • XRDP
  • mRemoteNG
  • UltraVNC

Источник

Оцените статью