Удаленный доступ к Raspberry Pi 3 через SSH и VNC

Raspberry Pi 3. Удаленное управление через SSH и VNC

Дата Автор Dmitry25 комментариев 48 771 просмотров

Если первое, что необходимо освоить пользователю Raspberry Pi – это умение делать бэкапы, то следующим по важности и полезности пунктом идет организация удаленного доступа к микрокомпьютеру.

Единожды настроив удаленное управление Raspberry Pi, можно отсоединить от микрокомпьютера мышь, клавиатуру и монитор, да и вообще убрать “малину” с рабочего стола. А затем просто подключаться к ней со своего основного компьютера.

Что нам понадобится

Для осуществления описываемых в этой статье действий понадобится:

  • Raspberry Pi 3 Model B
  • Локальная сеть
  • Компьютер, смартфон или планшет

В этой статье я рассматриваю удаленное управление Raspberry Pi с компьютера под управлением Windows. Для устройств под управлением Linux и macOS также возможно осуществление всех описываемых здесь действий, отличаться будут только названия используемых программ.

В двух словах о SSH и VNC протоколах

SSH (Secure Shell) – сетевой протокол, позволяющий производить удаленное управление операционной системой через шифрованное соединение, а также передавать файлы, транслировать видео- и аудиопотоки и сжимать передаваемые данные на лету.

Говоря простым языком, SSH – это та штука, через которую можно запустить на компьютере терминал для выполнения консольных команд на другом компьютере.

VNC (Virtual Network Computing) – более продвинутый протокол, обеспечивающий удаленный доступ к рабочему столу другого компьютера по сети.

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

В отличие от SSH, по VNC предоставляется доступ не только к консоли, но ко всему компьютеру, включая графический интерфейс.

Доступ к Raspberry Pi 3 через SSH

Для получения доступа к Raspberry Pi 3 по протоколу SSH нужно открыть инструмент конфигурации raspi-config:

sudo raspi-config

Выбрать в нем Interfacing Options:

Удаленный доступ к Raspberry Pi 3 через SSH и VNCИ включить SSH:

Удаленный доступ к Raspberry Pi 3 через SSH и VNC

Все, больше с Raspberry Pi ничего делать не нужно.

Теперь скачиваем на свой основной компьютер (с которого будет осуществляться управление) бесплатный SSH-клиент PuTTY.

Запускаем его и вводим IP-адрес своей “малины”:

Удаленный доступ к Raspberry Pi 3 через SSH и VNC

По умолчанию SSH работает на 22 порту, его менять не нужно.

После ввода IP-адреса нажимаем “Соединиться” и вот перед нами консоль нашего микрокомпьютера:

Удаленный доступ к Raspberry Pi 3 через SSH и VNC

Остается ввести логин (по умолчанию pi) и пароль (по умолчанию raspberry, меняется через raspi-config) и можно пользоваться.

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

Доступ к Raspberry Pi 3 через VNC

Для получения доступа к Raspberry Pi 3 по протоколу VNC нужно открыть инструмент конфигурации raspi-config:

sudo raspi-config

Выбрать в нем Interfacing Options:

Удаленный доступ к Raspberry Pi 3 через SSH и VNCИ включить VNC:

Удаленный доступ к Raspberry Pi 3 через SSH и VNCПосле чего нужно установить сам VNC-сервер:

sudo apt-get update
sudo apt-get install realvnc-vnc-server

И запустить его:

vncserver :1

Теперь посмотрим на каком порту он прописался:

netstat -pan|grep 'vnc'

Скорее всего это будет порт 5901 или 5902:
Удаленный доступ к Raspberry Pi 3 через SSH и VNC

Теперь скачиваем на основной компьютер (с которого будет осуществляться управление) бесплатный VNC-клиент VNC Viewer.

Запускаем его:

Удаленный доступ к Raspberry Pi 3 через SSH и VNC

Через File -> New connection создаем подключение к Raspberry Pi, прописывая ее IP-адрес и порт, на котором прописался VNC-сервер.

Порт нужно писать через два двоеточия подряд!

Удаленный доступ к Raspberry Pi 3 через SSH и VNC

Если IP-адрес и порт указаны верно, то при подключении VNC-клиент запросит имя пользователя и пароль:

Удаленный доступ к Raspberry Pi 3 через SSH и VNC

И после их ввода мы получаем полный доступ к интерфейсу Raspbian PIXEL:

Удаленный доступ к Raspberry Pi 3 через SSH и VNC

Которым можно управлять при помощи мыши и клавиатуры.

Добавляем VNC-сервер в автозагрузку

Теперь пропишем запуск VNC-сервера в автозагрузку Raspbian чтобы не приходилось каждый раз вручную запускать его после перезагрузки.

Для этого перейдем в папку, где хранятся конфиги текущего пользователя:

cd /home/pi/.config

И посмотрим ее содержимое:

ls

Интересует наличие папки “autostart”. Если ее нет – ее нужно создать, а если она уже есть – просто игнорируем этот шаг и идем дальше:

mkdir autostart

Переходим в только что созданную или уже существующую папку “autostart”:

cd autostart

Создаем новый файл:

nano realvnc.desktop

И прописываем в нем следующее:

[Desktop Entry]
Type=Application
Name=RealVNCServer
Exec=vncserver :1
StartupNotify=false

Этот файл при каждой загрузке графического интерфейса будет выполнять команду “vncserver :1”.

Перезагружаем “малину” для применения изменений:

sudo reboot

Если все прошло верно, то VNC-сервер будет запущен автоматически и к нему можно будет подключиться.

Подключение к рабочему столу Raspberry Pi с Android-устройства

Установив VNC-сервер на Raspberry Pi, можно управлять ею не только с компьютера, но и со смартфона или планшета на Android.

Для этого скачиваем VNC Viewer в Google Play и конфигурируем соединение так же, как на компьютере:

Удаленный доступ к Raspberry Pi 3 через SSH и VNC

Подключаемся, вводим логин и пароль, попадаем в графический интерфейс Raspbian:

Удаленный доступ к Raspberry Pi 3 через SSH и VNC

Свайпами по экрану перемещается курсор мыши, “клик левой кнопкой мыши” осуществляется тапом по экрану, “клик правой кнопкой мыши” осуществляется тапом двумя пальцами по экрану, ну а средней кнопкой можно “кликнуть” посредством тапа тремя пальцами одновременно.

Подключение к рабочему столу Raspberry Pi с iPhone/iPad

Посредством VNC можно подключаться к рабочему столу Raspberry Pi и с устройств под управлением iOS.

Скачиваем VNC Viewer в App Store и конфигурируем соединение так же, как на компьютере:

Удаленный доступ к Raspberry Pi 3 через SSH и VNC

Подключаемся, вводим логин и пароль, попадаем в графический интерфейс Raspbian:

Удаленный доступ к Raspberry Pi 3 через SSH и VNC

Методы управления тут те же самые, что и в случае использования Android-приложения. Те же свайпы, те же тапы.

Но вообще, управлять “малиной” с маленького экрана iPhone – то еще извращение :).

Заключение

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

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

Raspberry Pi 3B (английская сборка)в интернет-магазине GearBest Raspberry Pi 3B (китайская сборка)в интернет-магазине GearBest

25 комментария на «Raspberry Pi 3. Удаленное управление через SSH и VNC»

  1. ЭТО vncserver :1 – нужно делать каждый раз при включении Малинки? Вчера все сделал, сегодня попытался зайти – никак, подключился терминалом, запустил, потом зашел… Не сильно удобно, особенно если со смартфона планируется заходить.

    • Дополнил статью пунктом про добавление VNC-сервера в автозагрузку.
      Совсем забыл об этом во время ее написания, действительно, сам по себе vncserver после перезагрузки “малинки” не перезапускается.

  2. Как я вижу по ip адресу, то дозвон идет по адресам в одной сети, а как стучаться к своему устройству совсем с другого подключения?

    • Чтобы иметь доступ из интернета, нужно пробросить порты на роутере и настроить динамический DNS на самой малине. Я не стал об этом писать, т.к. на мой взгляд такое решение небезопасно.

      Более безопасный вариант – сделать Telegram-бота для управления малиной и залочить его на прием команд только со своего телеграмного ID. В будущем напишу пост про это.

  3. Уважаемый Дмитрий!
    Подскажите пожалуйста как решить проблему масштаба окон интерфейса малины на экране клиента VNC- некоторые окна не масштабируются и нижние кнопки находятся за рамками экрана, доступа к ним нет.
    Большое спасибо!
    Андрей

    • Возможно поэкспериментировать с разрешением экрана в самом VNC? По умолчанию оно на минимуме, стоит повысить хотя бы до 1366×768.

  4. Dmitry, спасибо Вам огромнейшее!!
    Есть проблема…не работает автозагрузка я уже несколько переписывал загрузочный файл, может быть проблема в том,что он имеет расширение .desktop.save?

  5. Дмитрий, добрый день. После проделанных мной вышеописанных операций с автозагрузкой, система при загрузке стала выдавать: GDBus.Error:org.freedesktop.PolicyKit1.Error.Failed: An authentication agent already exists for the given subject. Какой-то агент уже создан. Что бы это значило?

  6. Dmitry Здравствуйте!
    Запустил удаленный доступ. Задумывался удаленный доступ что-бы работал как Teamviewer.
    То есть я работаю удаленно , но на основном рабочем столе все так-же происходило синхронно как на удаленном. Бился по всякому, в инете ничего не нашел.Большая просьба если не затруднит,возможно ли все таки это реализовать ?
    C уважением Виктор

  7. Dmitry, а как быть если у меня к малине подключен Wi-Fi адаптер, который работает в режиме мониторинга и он ругается на сетевой интерфейс, и работает нестабильно, пока принудительно не вырубишь сеть ? А если вырублю сетевой интерфейс, то, соответственно, не смогу управлять малиной удаленно. Есть какое-то решение или мне придется в любом случае чем-то жертвовать ?

  8. Dmitry, подскажите пожалуйста новичку, как и где задать пароль и логин на расбери или где их посмотреть, при установки ОС пароль не устанавливал.

    • Логин и пароль по умолчанию – pi / raspberry.

      Пароль можно менять при помощи команды “sudo passwd” или через меню с настройками системы (“sudo raspi-config”)

  9. здравствуйте. большое спасибо за интересную и полезную статью.
    У меня возник один вопрос, был бы очень признателен если подскажете.
    вы написали о том, что в настройке putty мы должны написать ip address своей “малины”. не подскажете пожалуйста как и откуда ее получить? заранее огромное спасибо!

  10. в одном tutorial, я видел как один парень настраивает putty. и там, где вы написали ип аддресс, он написал просто raspberrypi.local. я еще новичек, пока много чего не понимаю.

    • Можно посмотреть IP при помощи команд “hostname -I” (I – большая) или “ifconfig”.
      Либо же посмотреть в веб-интерфейсе роутера список всех активных клиентов и найти там Raspberry Pi с присвоенным ей IP-адресом.

      Подключаться по raspberry.local тоже вариант, но не всегда автоматическое присвоение имени работает корректно. Кроме того, если в локальной сети находится несколько “малинок”, то они будут конфликтовать из-за этого имени и его необходимо будет перенастраивать для каждой.

      • Огромное спасибо! Второй вариант попробовал, однако не нашел там ip address с именем raspberry pi, попробую первый вариант. Спасибо большое!

      • Здравствуйте!
        Извините, сначало набираю команду raspberry pi local и тому подобное, только потом, когда будет доступ к shell и подключаю монитор к ноутбук набираю hostname -I, Я правильно вас понял?

  11. Огромное спасибо! Второй вариант попробовал, однако не нашел там ip address с именем raspberry pi, попробую первый вариант. Спасибо большое!

  12. По какой-то причине на компьютере VNC клиент заработал лишь однажды. Дальше ни в какую, хотя на планшете все здорово работает. Что я только не писал: :1, :5900, :5901, ::1…

Добавить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *

[Хамство, оскорбления и попытки крауд-маркетинга будут удалены]