VNC сервис для Raspbian Stretch

Posted by

В очередной раз моя задача это организовать удаленное подключение к своему миникомпьютеру Rasbperry Pi 3 Model B с установленной системой Raspbian Stretch (Jessie был до него и на нем данная заметка также работала). Я обычно использую ssh подключение, но текущая тема это подключение к графическое оболочки чтобы видеть как и что творится в системе. На Ubuntu Bionic Desktop, Trusty Desktop я применяю сервис x11vnc и проблем не знаю, значит чтобы все было стандартизировано, то и на Raspbian Stretch данный сервис необходимо взгромоздить. Установленный образ на карте памяти формата MicroSD: 2018-11-13-raspbian-stretch.img

pi@raspberrypi:~$ sudo rm -Rf /var/lib/apt/lists

pi@raspberrypi:~$ sudo apt-get update && sudo apt-get upgrade -y

После вывожу на консоль какова текущая система:

pi@raspberrypi:~$ uname -a && lsb_release -a

Linux raspberrypi 4.14.79-v7+ #1159 SMP Sun Nov 4 17:50:20 GMT 2018 armv7l GNU/Linux

No LSB modules are available.

Distributor ID: Raspbian

Description: Raspbian GNU/Linux 9.6 (stretch)

Release: 9.6

Codename: stretch

Произвожу поиск пакета в дефолтных репозитариях текущей системы Raspbian Stretch:

pi@raspberrypi:~$ apt-cache search x11vnc

x11vnc - VNC server to allow remote access to an existing X session

x11vnc-data - data files for x11vnc

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

Создаю скрипт (нашел на просторах интернета) который устанавливает пакет x11vnc, запрашивает установку пароля и прописывает запуск приложения в автозагрузку если система Raspbian Stretch была перезагружена:

pi@raspberrypi:~ $ nano x11vnc.sh

#!/bin/bash

if [ -z $1 ]

then

HDIR="/home/pi"

USERID="pi"

GROUPID="pi"

else

HDIR=/home/$1

USERID=`id -n -u $1`

GROUPID=`id -n -g $1`

fi

echo

echo "This script will install X11VNC server (to let you remotely control your Pi) in a very simple manner"

echo " "

echo "It only requires the password you wish to use"

echo "I recommend using raspberry as the password unless your working in a dangerous hackers paradise"

echo " "

read -p "Press any key to continue..." -n1 -s

echo

echo

while true; do

echo

read -p "Please enter the password you wish to use for remote access - " X11PASS

echo

echo "You have set your remote access password to \"$X11PASS\", is that correct?"

echo

read -p "press Y to continue, any other key to re-enter the name. " -n1 RESPONSE

if [ "$RESPONSE" == "Y" ] || [ "$RESPONSE" == "y" ]; then

echo

break

fi

echo

done

apt-get update

apt-get install -q -y x11vnc

#smbpasswd -a pi

mkdir -p $HDIR/.vnc

chown -R $USERID:$GROUPID $HDIR/.vnc

x11vnc -storepasswd $X11PASS $HDIR/.vnc/passwd

chown -R $USERID:$GROUPID $HDIR/.vnc

mkdir -p $HDIR/.config

chown -R $USERID:$GROUPID $HDIR/.config

cd $HDIR/.config

mkdir -p autostart

chown -R $USERID:$GROUPID $HDIR/.config/autostart

cd autostart

rm -f x11vnc.desktop

#touch -f x11vnc.desktop

echo "[Desktop Entry]" > x11vnc.desktop

echo "Encoding=UTF-8" >> x11vnc.desktop

echo "Type=Application" >> x11vnc.desktop

echo "Name=X11VNC" >> x11vnc.desktop

echo "Comment=" >> x11vnc.desktop

echo "Exec=x11vnc -forever -usepw -display :0 -ultrafilexfer" >> x11vnc.desktop

echo "StartupNotify=false" >> x11vnc.desktop

echo "Terminal=false" >> x11vnc.desktop

echo "Hidden=false" >> x11vnc.desktop

chown -R $USERID:$GROUPID $HDIR/.config/autostart

# time to finish!

echo

echo

echo "X11VNC installed"

echo

echo

Инсталлирую в систему Raspbian Stretch сервис x11vnc запуском составленного скрипта выше (на Raspbian Jessie у меня все в этой заметке также работает)

pi@raspberrypi:~ $ sudo ./x11vnc.sh

This script will install X11VNC server (to let you remotely control your Pi) in a very simple manner

It only requires the password you wish to use

I recommend using raspberry as the password unless your working in a dangerous hackers paradise

Press any key to continue...

Please enter the password you wish to use for remote access Aa123456

You have set your remote access password to «Aa123456«, is that correct?

press Y to continue, any other key to re-enter the name. y

Get:1 http://archive.raspberrypi.org/debian stretch InRelease [25.3 kB]

Hit:2 http://raspbian.raspberrypi.org/raspbian stretch InRelease

Fetched 25.3 kB in 1s (20.8 kB/s)

Reading package lists... Done

Reading package lists...

Building dependency tree...

Reading state information...

x11vnc is already the newest version (0.9.13-2+deb9u1).

0 upgraded, 0 newly installed, 0 to remove and 1 not upgraded.

stored passwd in file: /home/pi/.vnc/passwd

X11VNC installed

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

pi@raspberrypi:~$ sudo reboot

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

pi@raspberrypi:~ $ sudo netstat -tulpn | grep x11vnc

tcp 0 0 0.0.0.0:5900 0.0.0.0:* LISTEN 728/x11vnc

tcp6 0 0 :::5900 :::* LISTEN 728/x11vnc

После со своей рабочей системы Ubuntu 18.04 Desktop amd64 через клиент Remmina подключаюсь на адрес 172.33.33.10 pass: Aa123456

и подключение успешно проходит.

Успешно подключение через Remmina к VNC Raspbian StretchЗаметка работоспособна. Сервис x11vnc успешно настроен на Raspbian Stretch и принимает удаленные подключения с моей домашней системы Ubuntu 18.04 Desktop amd64 через клиент Remmina. На этом я прощаюсь, с уважением автор блога Олло Александр aka ekzorchik.