В очередной раз моя задача это организовать удаленное подключение к своему миникомпьютеру 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
и подключение успешно проходит.
Заметка работоспособна. Сервис x11vnc
успешно настроен на Raspbian Stretch
и принимает удаленные подключения с моей домашней системы Ubuntu 18.04 Desktop amd64
через клиент Remmina
. На этом я прощаюсь, с уважением автор блога Олло Александр aka ekzorchik.