В очередной раз моя задача это организовать удаленное подключение к своему миникомпьютеру 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

Произвожу поиск пакета x11vnc в дефолтных репозитариях текущей системы 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

[stextbox id=’alert’]На заметку: В качестве пароля может быть только Ваша кодовая фраза ограниченная не более восемью символами.[/stextbox]

Создаю скрипт (нашел на просторах интернета) который устанавливает пакет 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 установленной на данный миникомпьютер Raspberry Pi 3 Model B сервис 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.

От ekzorchik

Всем хорошего дня, меня зовут Александр. Я под ником - ekzorchik, являюсь автором всех написанных, разобранных заметок. Большинство вещей с которыми мне приходиться разбираться, как на работе, так и дома выложены на моем блоге в виде пошаговых инструкции. По сути блог - это шпаргалка онлайн. Каждая новая работа где мне случалось работать вносила новые знания и нюансы работы и соответственно я расписываю как сделать/решить ту или иную задачу. Это очень помогает. Когда сам разбираешь задачу, стараешься ее приподнести в виде структурированной заметки чтобы было все наглядно и просто, то процесс усвоения идет в гору. Также прошу на https://win.ekzorchik.ru https://lin.ekzorchik.ru https://net.ekzorchik.ru https://voip.ekzorchik.ru https;//home.ekzorchik.ru