Ubuntu 18.04 VNC

Столкнулся с необходимостью использования удалённого доступа в Ubuntu, начал искать варианты, tightvnc и vnc4server не подошли, так как нет экрана выбора пользователя и не получилось подружить с Gnome 3, в тоже время с xfce эти программы заработали, но без экрана приветствия.

Оказалось, что существует ещё одна реализация VNC — x11vnc.
Вот с ним у меня всё и получилось, но не без проблем, о возможных проблемах и расскажу.

Итак, после установки и обновления Ubuntu 18.04, установим x11vnc:

apt install x11vnc

Далее установим пароль — 123123 для VNC:

x11vnc -storepasswd "123123" /etc/x11vnc.pass

Обычно следующим шагом все проверяют работоспособность, но тут и начинается проблема. Ubuntu 18.04 использует Wayland и gdm3, что вносит определённые проблемы, а именно вот строка запуска, которую мы будем использовать позднее:

x11vnc -rfbauth /etc/x11vnc.pass -noxdamage -shared -dontdisconnect -many -noxfixes -auth /run/user/121/gdm/Xauthority -loop

Это даёт нам возможность подключиться к компьютеру и выбрать пользователя, после чего мы увидим чёрный экран, то есть ничего более обновляться на экране не будет, так как теперь необходимо запустить vnc с другим параметром:

x11vnc -rfbauth /etc/x11vnc.pass -noxdamage -shared -dontdisconnect -many -noxfixes -auth /run/user/1000/gdm/Xauthority -loop

Теперь мы можем управлять рабочим столом до тех пор, пока не завершим сеанс пользователя.

Были предложения запускать сразу 2 сервера VNC один для выбора пользователя, а другой для рабочего стола, но это всё неудобно.
Есть более «правильное решение», которым воспользовался я — установил LightDM и проблема решилась

Установка достаточно проста, во время установки будет задан вопрос, какой менеджер использовать, надо выбрать LightDM:

apt install lightdm
dpkg-reconfigure lightdm

После чего необходимо перезагрузить компьютер и можно пробовать подключиться по VNC:

x11vnc -rfbauth /etc/x11vnc.pass -noxdamage -shared -dontdisconnect -many -noxfixes -auth /var/run/lightdm/root/:0 -loop

Отмечу так же то, что после завершения сеанса пользователя, VNC отключается, но поскольку мы использовали опцию -loop, то он сразу же и запустится.

Если есть некоторые расхождения со стандартной установки Ubuntu, то может возникнуть ошибка

XOpenDisplay failed (:0)
*** x11vnc was unable to open the X DISPLAY: ":0", it cannot continue.
*** There may be "Xlib:" error messages above with details about the failure.

x11vnc не может открыть X дисплей «:0», так как не правильно указан путь /var/run/lightdm/root/:0,

Для её решения мы и используем параметр -auth, но поскольку имеются расхождения то необходимо подкорректировать параметр, для этого выполним:

ps wwwwaux | grep auth

У меня в ответ:

root      3663  0.2  1.5 393392 64100 tty7     Ssl+ 10:32   0:05 /usr/lib/xorg/Xorg -core :0 -seat seat0 -auth /var/run/lightdm/root/:0 -nolisten tcp vt7 -novtswitch

До установки LightDM, вывод был такой (пользователь авторизован):

 923 tty1    Sl+   0:03 /usr/lib/xorg/Xorg vt1 -displayfd 3 -auth /run/user/121/gdm/Xauthority -background none -noreset -keeptty -verbose 3 
 2197 tty2    Sl+   0:00 /usr/lib/xorg/Xorg vt2 -displayfd 3 -auth /run/user/1000/gdm/Xauthority -background none -noreset -keeptty -verbose 3

Так же в ошибке будет предложены возможные варианты, для различных менеджеров.

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

Запускаем редактирование файла:

nano /lib/systemd/system/x11vnc.service

Содержимое файла:

[Unit]
Description=Start x11vnc at startup.
After=multi-user.target
[Service]
Type=simple
ExecStart=/usr/bin/x11vnc -rfbauth /etc/x11vnc.pass -noxdamage -shared -dontdisconnect -many -noxfixes -auth /var/run/lightdm/root/:0 -loop
[Install]
WantedBy=multi-user.target

Попросим Systemd перечитать свои конфигурационные файлы, включим автозапуск службы, запустим службу и посмотрим её состояние:

systemctl daemon-reload
systemctl enable x11vnc.service
systemctl start x11vnc.service
systemctl status x11vnc.service

Мы рассмотрели базовую настройку x11vnc под Ubuntu 18.04, дальнейшие «улучшения» возможны на основе выше написанного и инструкций с других ресурсов.

Как выяснилось, при использовании LightDM и Gnome, если заблокировать экран, то в VNC-соединении будет чёрный экран, то есть ситуация аналогична той, что была ранее при использовании GDM. Но при этом если вместо gnome использовать оболочку xfce, то такой проблемы нет.

Возможно пригодится для настройки:
https://help.ubuntu.com/community/VNC/Servers
http://ubuntugeeks.com/questions/263917/ubuntu-18-04-lts-x11vnc-no-longer-works
https://askubuntu.com/questions/1035598/ubuntu-18-04-lts-x11vnc-no-longer-works
https://askubuntu.com/questions/1033274/ubuntu-18-04-connect-to-login-screen-over-vnc/
https://gita-dev.ru/blog/graficheskoe-udalennoe-upravlenie-sovremennymi-versijami-ubuntu-linux-wayland/
https://losst.ru/nastrojka-x11vnc-na-ubuntu
http://www.creative-impulse.ru/2018/06/configuring-x11vnc-on-ubuntu-18-04/
https://1cloud.ru/help/linux/vnc-i-gnome-dlja-ubuntu

Добавить комментарий для brainz Отменить ответ

Ваш адрес email не будет опубликован.