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
Добавить комментарий