sonyps4.ru

Удаленный графический доступ к ubuntu через VNC. Методы удаленного доступа к Linux GUI Удаленный рабочий стол Ubuntu


Linux:
  1. OpenSSH; если Вы пользуетесь Linux, например Ubuntu, скорее всего всё уже установлено, до нас, так что можно смело писать в терминале: ssh root@.
  2. PuTTY есть и для Linux , в том числе в официальных репозиториях Debian и Ubuntu.
MAC OS:
  1. OpenSSH; это бесплатно!
Плагины для браузеров:

Также можно пробросить RDP-шный трафик через SSH-туннель. Для этого нужно поправить конфигурационный файл xrdp:

$ vi /etc/xrdp/xrdp.ini
В секцию нужно добавить строку: address=127.0.0.1

$ systemctl restart xrdp
Проверить, что всё правильно, можно так:

$ nmap -p 3389 Starting Nmap 6.47 (http://nmap.org) at 2016-10-04 13:07 MSK Nmap scan report for unspecified.mtw.ru () Host is up (0.0087s latency). PORT STATE SERVICE 3389/tcp closed ms-wbt-server
Затем если вы используете cygwin или mingw, linux или mac os:

Ssh root@ -L 3389:localhost:3389
Если PuTTY:

Запустите PuTTY. В древовидном меню слева Connection > SSH > Tunnels. Далее добавляем новый Forwarded Port (Source port: 3389, Destination: localhost:3389). Нажимаем Add.

VNC

Клиент:

Для примера поставим эту DE:

$ apt-key adv --recv-keys --keyserver keys.gnupg.net E1F958385BFE2B6E $ echo "deb http://packages.x2go.org/debian jessie main" > /etc/apt/sources.list.d/x2go.list $ echo "deb-src http://packages.x2go.org/debian jessie main" >> /etc/apt/sources.list.d/x2go.list $ apt-get update $ apt-get install x2go-keyring && apt-get update $ apt-get install x2goserver x2goserver-xsession
Вывод следующей команды должен показать, что x2go готов к работе:

$ systemctl status x2goserver ? x2goserver.service - LSB: Start and stop the X2Go daemon Loaded: loaded (/etc/init.d/x2goserver) Active: active (running) since Tue 2016-10-11 22:05:51 MSK; 30min ago ...
А теперь важный момент, подключиться без этого фикса не получится! Нужно найти в файле.profile строку «mesg n» и заменить её на «tty -s && mesg n».

$ vi .profile
Следующая команда выведет путь до исполняемого файла startfluxbox, понадобится при настройке клиента:

$ whereis startfluxbox
Установка сервера на Ubuntu:

$ apt-get install xfce4 xfce4-terminal $ add-apt-repository ppa:x2go/stable $ apt-get update $ apt-get install x2goserver x2goserver-xsession

$ vi .profile
Установка сервера на CentOS:

$ yum install epel-release $ yum install x2goserver x2goserver-xsession
Клиент для линукс ставится из вышеприведенных репозиториев следующей командой:

$ apt-get install x2goclient
Для Windows - скачиваем, ставим, запускаем. По той же ссылке, приведенной выше, есть клиент для OS X.

Запускаем клиент:

В настройках сессии указываем: в поле Host - IP вашего сервера, в поле Login - root, порт оставляем как есть, session type - тот GUI который ставили.

Как вы можете видеть, есть возможность аутентификации по ключу. В общем много всякого. Посмотрите сами. И звук можно через PulseAudio выводить.

После нажатия Ok вы увидите вот такие вот очаровательные штучки, на которые нужно нажать для получения запроса на ввод пароля и подключения к выбранной сессии:

Замечание: обратите внимание, что в списке нет Вашего любимого FluxBox’а поэтому путь к нему приходится прописывать руками.

Важной возможностью x2go является возможность запуска любого графического приложения вообще без установки DE. Для этого в настройках сессии нужно в секции session type нужно выбрать пункт single application и выбрать выполняемое приложение или ввести путь к программе которую следует запустить.

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

$ add-apt-repository ppa:x2go/stable $ apt-get update $ apt-get install x2goserver x2goserver-xsession
А теперь важный момент, подключиться без этого фикса не получится! Нужно найти в файле.profile строку «mesg n || true» и заменить её на «tty -s && mesg n».

$ vi .profile $ apt-get install firefox xterm
И настроив сессию как показано ниже, можно будет запустить браузер на удаленном сервере, а на вашей машине откроется окно его отображающее:

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

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

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

TeamViewer

Последний способ удаленного доступа к рабочему столу.

Установка на Ubuntu:

$ apt-get update $ apt-get install lubuntu-desktop $ reboot $ dpkg --add-architecture i386 $ apt-get update $ wget http://download.teamviewer.com/download/teamviewer_i386.deb $ dpkg -i teamviewer_i386.deb $ apt-get -f install $ teamviewer --passwd
Установка на Debian:

$ apt-get update $ apt-get install lxde lightdm $ reboot $ dpkg --add-architecture i386 $ apt-get update $ wget http://download.teamviewer.com/download/teamviewer_i386.deb $ dpkg -i teamviewer_i386.deb $ apt-get -f install $ teamviewer --passwd
Установка на CentOS:

$ yum groupinstall "X Window system" $ yum install epel-release $ yum install fluxbox xterm lightdm $ systemctl set-default graphical.target $ reboot $ curl -o TeamViewer_Linux_PubKey.asc -Lk http://www.teamviewer.com/link/?url=354858 $ rpm --import TeamViewer_Linux_PubKey.asc $ curl -LOk http://download.teamviewer.com/download/teamviewer.i686.rpm $ yum install teamviewer.i686.rpm $ teamviewer --passwd
Также необходимо принять лицензионное соглашение TeamViewer’а, это можно сделать с помощью «Аварийного режима», либо добавить следующие строки в конец файла /opt/teamviewer/config/global.conf:

$ echo " EulaAccepted = 1" >> /opt/teamviewer/config/global.conf $ echo " EulaAcceptedRevision = 6" >> /opt/teamviewer/config/global.conf $ teamviewer --daemon restart
Следующая команда покажет состояние демона TeamViewer’а и необходимый для подключения девятизначный TeamViewer ID:

$ teamviewer --info

После запуска клиента скачанного тут, нужно ввести TeamViewer ID в поле Partner UD и нажать на кнопку «Connect to partner». Далее TeamViewer запросит пароль: .

Вместо заключения

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

Для работы удаленных рабочих столов Linux чаще всего используют следующие программы: Remote Desktop Protocol и Virtual Network Computer.

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

RDP – протокол, который сделала Microsoft, он для систем Windows.

Может показаться, что открытый код это идеальное решение. Если в организации используют в основном продукты Windows, то RDP более удобно целесообразно. Даже если офис на Linux, ведь настройка и установка RDP более проста.

Данная краткая статья описывает процесс настройки RDP на Linux. Настройка данного сервера поможет без проблем юзерам Windows, подключаться через удаленный рабочий стол Linux через стандартное подключение к аппаратам на этой ОС.

Установка сервера xrdp

Нам понадобиться сервер с открытым кодом – xrdp. Удаленный юзер будет видеть лишь чистый удаленный рабочий стол Linux юзера. Если нужен удаленный доступ Linux к протекающей сессии пользователя, то без установки x0vncserver не обойтись.

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

После инсталляции xrdp, он сразу сможет принимать входящие коннекты. При установленном и рабочем firewall-е, нужно убедится в разрешении работы TCP-порта 3389. Также нужно перенаправить порты роутера, для возможности доступа из вне рабочей сети.

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

Также требуется отредактировать конфигурации портов на аппаратах c Windows, которые ловят RDP соединения.

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

Для смены порта нужно открыть файл: etc/xrdp/xrdp.ini, могут быть необходимы права суперпользователя. Править нужно port в и перезапустить xrdp.

Ещё способ подключения удаленного рабочего стола Linux

Еще способ для RDP-подключения к любым машинам. На железе с Linux установить xrdp сервер с портом по умолчанию, на прочие машины поставить VNC, тоже со стандартным портом. При подключении по RDP, будет появляться окно xrdp, где нужно будет ввести сетевой адрес нужного компьютера.

Подключение к созданному серверу xrdp

Для юзеров Windows, нужно воспользоваться встроенной утилитой «Подключение к удаленному…», в Linux же используют tsclient и rdesktop.

Номер порта нужно указать таким образом: после сетевого IP или доменного имени нужно ставить две точки, а потом адрес. Если порты никто не настраивал, то просто нужно ввести IP адрес. В окне xrdp вводим логин и пароль и входим.

Установка rdesktop и tsclient

Для возможности удаленного доступа Linux юзеров, нужно установить софт rdesktop. По необходимости можно поставить GUI, tsclient подойдет. Для справки можно использовать команды в терминале: man xrdp, man rdesktop, man tsclient

Может рассматриваться как акт агрессии, но иногда он просто необходим.

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

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

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

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

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

Как проходило тестирование

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

При тестировании проверялась способность удаленно воспроизводить игру Armegatron. В этой нетребовательная игре на OpenGL на обновление экрана требуются доли секунд времени. Результаты могут быть несколько субъективны, но данный способ оказался очень действенным при демонстрации отзывчивости клиентов.

Клиенты были протестированы совместно с локальным компьютером с 4-х ядерным процессором и 16 гигабайтами памяти в гигабитной локальной сети под Ubuntu 14.04.3. В качестве серверов использовался сервер X11 VNC и официальный сервер NX для клиентов NX. Функциональность на базе протокола RDP поддерживается некоторыми продуктами, но на практике не была протестирована.

Сами клиенты работали на виртуальной машине с 2-х ядерным процессом Core i7, 4Гб ОЗУ и Fedora 23.

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

Также можно пробросить RDP-шный трафик через SSH-туннель. Для этого нужно поправить конфигурационный файл xrdp:

$ vi /etc/xrdp/xrdp.ini
В секцию нужно добавить строку: address=127.0.0.1

$ systemctl restart xrdp
Проверить, что всё правильно, можно так:

$ nmap -p 3389 Starting Nmap 6.47 (http://nmap.org) at 2016-10-04 13:07 MSK Nmap scan report for unspecified.mtw.ru () Host is up (0.0087s latency). PORT STATE SERVICE 3389/tcp closed ms-wbt-server
Затем если вы используете cygwin или mingw, linux или mac os:

Ssh root@ -L 3389:localhost:3389
Если PuTTY:

Запустите PuTTY. В древовидном меню слева Connection → SSH → Tunnels. Далее добавляем новый Forwarded Port (Source port: 3389, Destination: localhost:3389). Нажимаем Add.

VNC

Клиент:

Для примера поставим эту DE:

$ apt-key adv --recv-keys --keyserver keys.gnupg.net E1F958385BFE2B6E $ echo "deb http://packages.x2go.org/debian jessie main" > /etc/apt/sources.list.d/x2go.list $ echo "deb-src http://packages.x2go.org/debian jessie main" >> /etc/apt/sources.list.d/x2go.list $ apt-get update $ apt-get install x2go-keyring && apt-get update $ apt-get install x2goserver x2goserver-xsession
Вывод следующей команды должен показать, что x2go готов к работе:

$ systemctl status x2goserver ● x2goserver.service - LSB: Start and stop the X2Go daemon Loaded: loaded (/etc/init.d/x2goserver) Active: active (running) since Tue 2016-10-11 22:05:51 MSK; 30min ago ...
А теперь важный момент, подключиться без этого фикса не получится! Нужно найти в файле.profile строку «mesg n» и заменить её на «tty -s && mesg n».

$ vi .profile
Следующая команда выведет путь до исполняемого файла startfluxbox, понадобится при настройке клиента:

$ whereis startfluxbox
Установка сервера на Ubuntu:

$ apt-get install xfce4 xfce4-terminal $ add-apt-repository ppa:x2go/stable $ apt-get update $ apt-get install x2goserver x2goserver-xsession

$ vi .profile
Установка сервера на CentOS:

$ yum install epel-release $ yum install x2goserver x2goserver-xsession
Клиент для линукс ставится из вышеприведенных репозиториев следующей командой:

$ apt-get install x2goclient
Для Windows - скачиваем, ставим, запускаем. По той же ссылке, приведенной выше, есть клиент для OS X.

Запускаем клиент:

В настройках сессии указываем: в поле Host - IP вашего сервера, в поле Login - root, порт оставляем как есть, session type - тот GUI который ставили.

Как вы можете видеть, есть возможность аутентификации по ключу. В общем много всякого. Посмотрите сами. И звук можно через PulseAudio выводить.

После нажатия Ok вы увидите вот такие вот очаровательные штучки, на которые нужно нажать для получения запроса на ввод пароля и подключения к выбранной сессии:

Замечание: обратите внимание, что в списке нет Вашего любимого FluxBox’а поэтому путь к нему приходится прописывать руками.

Важной возможностью x2go является возможность запуска любого графического приложения вообще без установки DE. Для этого в настройках сессии нужно в секции session type нужно выбрать пункт single application и выбрать выполняемое приложение или ввести путь к программе которую следует запустить.

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

$ add-apt-repository ppa:x2go/stable $ apt-get update $ apt-get install x2goserver x2goserver-xsession
А теперь важный момент, подключиться без этого фикса не получится! Нужно найти в файле.profile строку «mesg n || true» и заменить её на «tty -s && mesg n».

$ vi .profile $ apt-get install firefox xterm
И настроив сессию как показано ниже, можно будет запустить браузер на удаленном сервере, а на вашей машине откроется окно его отображающее:

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

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

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

TeamViewer

Последний способ удаленного доступа к рабочему столу.

Установка на Ubuntu:

$ apt-get update $ apt-get install lubuntu-desktop $ reboot $ dpkg --add-architecture i386 $ apt-get update $ wget http://download.teamviewer.com/download/teamviewer_i386.deb $ dpkg -i teamviewer_i386.deb $ apt-get -f install $ teamviewer --passwd
Установка на Debian:

$ apt-get update $ apt-get install lxde lightdm $ reboot $ dpkg --add-architecture i386 $ apt-get update $ wget http://download.teamviewer.com/download/teamviewer_i386.deb $ dpkg -i teamviewer_i386.deb $ apt-get -f install $ teamviewer --passwd
Установка на CentOS:

$ yum groupinstall "X Window system" $ yum install epel-release $ yum install fluxbox xterm lightdm $ systemctl set-default graphical.target $ reboot $ curl -o TeamViewer_Linux_PubKey.asc -Lk http://www.teamviewer.com/link/?url=354858 $ rpm --import TeamViewer_Linux_PubKey.asc $ curl -LOk http://download.teamviewer.com/download/teamviewer.i686.rpm $ yum install teamviewer.i686.rpm $ teamviewer --passwd
Также необходимо принять лицензионное соглашение TeamViewer’а, это можно сделать с помощью «Аварийного режима», либо добавить следующие строки в конец файла /opt/teamviewer/config/global.conf:

$ echo " EulaAccepted = 1" >> /opt/teamviewer/config/global.conf $ echo " EulaAcceptedRevision = 6" >> /opt/teamviewer/config/global.conf $ teamviewer --daemon restart
Следующая команда покажет состояние демона TeamViewer’а и необходимый для подключения девятизначный TeamViewer ID:

$ teamviewer --info

После запуска клиента скачанного тут, нужно ввести TeamViewer ID в поле Partner UD и нажать на кнопку «Connect to partner». Далее TeamViewer запросит пароль: .

Вместо заключения

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

Июль 28

В новых версиях Ubuntu уже есть встроенный VNC сервер . Мы будем использовать его стандартные средства. Пока разбирался в данном вопросе — пришлось почитать приличное количество форумов. Так вот, многие пользователи пишут, что в версии ubuntu 14.04 данный фокус не проходит из-за каких-то внутренних тонкостей устройства ядра. Я в данный вопрос глубоко не вдавался…в любом случае, если вдруг вы являетесь счастливым обладателем именно этой версии — можете воспользоваться альтернативным сервером x11vnc.

Ставится он довольно просто:

Sudo apt-get remove vino sudo apt-get install x11vnc

В этой же статье, будет рассмотрен стандартный VNC сервер уже включенный в ubuntu по умолчанию. Как все настроить?

Коннектимся к удаленному хосту.

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

Итак, допустим в локальной сети мы имеем компьютер под ubuntu с ip адресом 10.20.0.30 и пользователем feanor184 . Коннектимся к нему из консоли с ключем -X (для запуска графических иксов):

Ssh -X [email protected]

вводим пароль и попадаем в консоль нашего удаленного компьютера.

Теперь, вводим в ней:

Sudo vino-preferences

и видим графическое окно

Тут ставим галочки:

allow other users to view your desktop — разрешаем смотреть рабочий стол.

allow other users to control your desktop — разрешаем управлять мышкой и клавиатурой удаленно.

require the user to enter this password — обязательно устанавливаем пароль на подключение. Мало ли кто лазиет в нашей сети

show notification area icon: always — всегда отображаем иконку vnc вверху экрана в трее.

Вы можете выставить так же свои настройки — здесь описаны мои настройки)

Сохраняем настройки и отсоединяемся от удаленного хоста.

Для подключения к настроенному компьютеру используем любой клиент с поддержкой vnc.

Например, Remmina — для Linux.

UltraVNC Viewer — для Windows.

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

Что имеем в итоге?

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



Загрузка...