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

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

Дата Автор 28 комментариев 102 535 просмотров

Если первое, что необходимо освоить пользователю 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

Автор статьи:
Дмитрий
Руководитель отдела в IT-компании. Веду этот блог с 2013 года, пишу о гаджетах и домашней автоматизации, обозреваю одноплатные компьютеры, неспешно собираю «умный дом».

28 комментария на «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…

  13. Удаленное управление рабочим столом по VNC — это хорошо, если есть роутер. А вот что делать, если роутера нет? Если в нале есть планшет и RPi 4 и более ничего. Как тогда осуществить удаленное управление с Андроида на RPi 4?

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

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

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