1,2K подписчиков

Удаленное управление raspberry pi по VNC

 Virtual Network Computing (VNC) — система удалённого доступа к рабочему столу компьютера, использующая протокол RFB (англ. Remote FrameBuffer, удалённый кадровый буфер).

Virtual Network Computing (VNC) — система удалённого доступа к рабочему столу компьютера, использующая протокол RFB (англ. Remote FrameBuffer, удалённый кадровый буфер). Управление осуществляется путём передачи нажатий клавиш на клавиатуре и движений мыши с одного компьютера на другой и ретрансляции содержимого экрана через компьютерную сеть.

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

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

Для начала нам нужно подключиться к raspberry pi по ssh. Как настроить ssh после установки ОС, описано в этой статье.

После подключения по ssh к малинке, нам нужно открыть инструмент конфигурации командой:

sudo raspi-config

Выбираем там пункт Interfacing Options:

 Virtual Network Computing (VNC) — система удалённого доступа к рабочему столу компьютера, использующая протокол RFB (англ. Remote FrameBuffer, удалённый кадровый буфер).-2

Далее выбираем p3 VNC и соглашаемся с включением VNC:

 Virtual Network Computing (VNC) — система удалённого доступа к рабочему столу компьютера, использующая протокол RFB (англ. Remote FrameBuffer, удалённый кадровый буфер).-3

После этого нужно установить сам VNC сервер, но в последних версиях он уже установлен. Все равно для полной картины попробуем его установить командами:

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

После установки, нам необходимо запустить VNC сервер. Это можно сделать следующей командой:

vncserver :1
После запуска, нужно посмотреть какой порт открыт для подключения по VNC. Это можно сделать следующей командой:

netstat -pan|grep 'vnc' 
После ввода команды у нас появится информация примерно вот такая:


Где желтым выделен порт по которому нужно подключаться. В данном случае это порт 5901.

Теперь нам нужно скачать VNC viewer для того чтоб подключиться к удаленному рабочему столу raspberry pi. Скачивать будем от сюда: https://www.realvnc.com/en/connect/download/viewer/
netstat -pan|grep 'vnc' После ввода команды у нас появится информация примерно вот такая: Где желтым выделен порт по которому нужно подключаться. В данном случае это порт 5901. Теперь нам нужно скачать VNC viewer для того чтоб подключиться к удаленному рабочему столу raspberry pi. Скачивать будем от сюда: https://www.realvnc.com/en/connect/download/viewer/

После скачивания и установки программы VNC viewer откроем ее и введем следующий адрес “ip adress::5901” выглядеть это будет следующим образом:

 Virtual Network Computing (VNC) — система удалённого доступа к рабочему столу компьютера, использующая протокол RFB (англ. Remote FrameBuffer, удалённый кадровый буфер).-5

После этого у нас запросит логин и пароль

 Virtual Network Computing (VNC) — система удалённого доступа к рабочему столу компьютера, использующая протокол RFB (англ. Remote FrameBuffer, удалённый кадровый буфер).-6

Логин будет pi пароль: raspberry – такие же как и на вход по ssh.

Вот и все, при удачном вводе учетных данных у нас появится рабочий стол ОС raspbian установленной на raspberry pi.

 Virtual Network Computing (VNC) — система удалённого доступа к рабочему столу компьютера, использующая протокол RFB (англ. Remote FrameBuffer, удалённый кадровый буфер).-7

Все хорошо, но теперь после перезагрузки нашей raspberry pi VNC сервер отключится и подключиться заново не сможем пока опять не запустим его командой vncserver :1

Чтоб этого не делать каждый раз, нам нужно добавить запуск VNC server  в автозагрузку.

Добавление VNC в автозагрузку:

Нужно обратить внимание, что когда мы в консоли вводили команду:

Для этого в консоли ssh введем следующую команду: vncserver :1 мы были не в привилегированном режиме и запустили vncserver из под учетки pi/raspberry и следовательно эти же учетные данные у нас и запросил VNC сервер. А если бы мы запустили сервер командой sudo vncserver :1 то vnc сервер запустился бы под root учеткой. и логин и пароль pi/raspberry у нас бы не подошел для в хода в систему.

Так вот чтоб добавить автозагрузку VNC в систему нам нужно сначала установить пароль учетной записи root

Для этого введем команду:

sudo passwd root

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

sudo nano /etc/rc.local

В открывшемся окне перед exit 0 добавим строчку vncserver :1 , после этого нажимаем ctrl+X и Y для сохранения. Выглядит это следующим образом:

 Virtual Network Computing (VNC) — система удалённого доступа к рабочему столу компьютера, использующая протокол RFB (англ. Remote FrameBuffer, удалённый кадровый буфер).-8

И перезагружаем raspberry pi. После перезагрузки  у нас сам VNC сервер запустится, но при входе уже нужно будет вводить учетные данные root/пароль который вы установили выше.

Но это не совсем безопасно входить под “рутом” поэтому можно использовать следующий способ, а именно добавить запуск VNC сервера только под учетной записью “pi” для этого создадим папку и отредактируем файл командами:

mkdir /home/pi/.config/autostart

nano /home/pi/.config/autostart/vnc.desktop

и в этот пустой файл напишем следующие параметры:

[Desktop Entry]
Type=Application

Name=VNCServer

Exec=vncserver :1

StartupNotify=false

После этого перезагружаем малинку командой sudo reboot и можем уже логиниться под учетными данными pi/raspberry только если вы выбираете этот способ, то в /etc/rc.loca