Установить VNC-сервер x11vnc на Ubuntu 18.04 и добавить в автозагрузку

Цикл статей по установке VNC-сервера для удаленного подключения к рабочему столу

Устанавливаем x11vnc

user@localhost:~$ sudo apt-get install x11vnc

Создаем пароль на подключение

user@localhost:~$ mkdir /home/user/.vnc/
user@localhost:~$ sudo x11vnc -storepasswd /home/user/.vnc/passwd
Enter VNC password: 
Verify password:    
Write password to /home/user/.vnc/passwd?  [y]/n 
Password written to: /home/user/.vnc/passwd

Для создания сервиса и добавления его в автозагрузку, создаем файл

user@localhost:~$ sudo nano /lib/systemd/system/x11vnc.service

[Unit]
Description=Start x11vnc at startup.
After=multi-user.target
[Service]
Type=simple
ExecStart=/usr/bin/x11vnc -auth /home/user/.Xauthority -forever -loop -noxdamage -repeat -rfbauth /home/user/.vnc/passwd -rfbport 5900 -shared -display :1 -ncache 10 -bg -o /var/log/x11vnc.log
[Install]
WantedBy=multi-user.target

Перезагружаем systemctl, добавляем созданные файл в автозагрузку и стартуем

user@localhost:~$ sudo systemctl daemon-reload
user@localhost:~$ sudo systemctl enable x11vnc.service
user@localhost:~$ sudo systemctl start x11vnc.service

Максим Макаров
У блога появился хостинг, его любезно предоставила компания Облакотека.
Облакотека - облачные сервисы для создания и управления виртуальной ИТ-инфраструктурой.
Если вам понравился мой блог и вы хотели бы видеть на нем еще больше полезных статей, большая просьба поддержать этот ресурс. Для этого достаточно кликнуть на контекстную рекламу, расположенную на сайте.
Оцените автора
IT Draft
Добавить комментарий

Нажимая на кнопку "Отправить комментарий", я даю согласие на обработку персональных данных и принимаю политику конфиденциальности.

  1. Николай

    если коротко, то не работает.

    Ответить
    1. Максим Макаров автор

      А если развернуто?

      Ответить
  2. Valentina

    Здравствуйте. На Ubuntu 18.04 все действия строго по данной выше инструкции. Но подключиться можно только после авторизации пользователя. А как сделать, чтобы х11vnc работал без входа пользователя?

    Ответить
    1. Максим Макаров автор

      Добрый день. К сожалению подсказать не могу, т.к. в данный момент на рабочем ПК установлена другая операционная система.
      Надо в терминале тестировать команду запуска x11vnc с разными параметрами (user@localhost:~$ sudo x11vnc -auth guess …)

      Ответить
  3. Андрей

    Я частично присоединюсь к Николаю. Не работает. Но… Разверну, как вижу сам. Выполнил все шаги. Сервис действительно запускается, status active (running). Но соединения не происходит. Для того, чтобы Ваша инструкция воплотилась в реальноcть, мне понадобилось сделать ещё несколько шагов, которых быть не должно. А именно: сесть за сервер, войти в аккаунт, запустить графическую оболочку x11vnc server, в стиле а-ля windows выставить Port:5900, переключатель file transfer: Ultra VNC, в следующем окне Properties поставить галочку напротив Accept Connections. Теперь можно пересесть за управляющий компьютер, но перед этим задать пароль. Иначе на тот пароль, что создан по инструкции, система плюёт и можно войти вовсе без пароля. Где изъян? Причём команда запуска графической оболочки очень похожа на запись ExecStart. Непонятина полная

    Ответить
    1. Максим Макаров автор

      Добрый день.
      На днях постараюсь поднять виртуалку с Ubuntu и разобраться с проблемой

      Ответить
    2. Максим Макаров автор

      Частично разобрался, из-за чего не происходит подключение.
      Пользователь должен быть авторизован на ПК к которому подключаетесь, иначе в логах ошибка на параметр «auth»
      Строка ExecStart у меня в Ubuntu 18.10 выглядит следующим образом:
      ExecStart=/usr/bin/x11vncc -auth /run/user/1000/gdm/Xauthority -display :0 -forever -loop -noxdamage -repeat -rfbauth /home/user/.vnc/passwd -rfbport 5900 -shared -ncache 10 -o /var/log/x11vnc.log
      где параметр:
      -auth /run/user/1000/gdm/Xauthority
      я получил для авторизованного пользователя, выполнив команду в терминале:
      user@VirtualBox:~$ ps wwwaux | grep auth

      Остальные параметры:

      • -display :0 -явно указываем используемый дисплей;
      • -forever — заставляет сервер работать постоянно, даже после завершения клиентского соединения;
      • -loop – после отключения клиента перезапускает x11vnc;
      • -shared – разрешить подключение нескольким клиентам одновременно;
      • -o /var/log/x11vnc.log — записывать логи;
      • -rfbauth /home/user/.vnc/passwd — указываем файл с паролем;

      И еще, команду для генерации пароля надо выполнять не от супер-пользователя, а от текущего:
      user@VirtualBox:~$ x11vnc -storepasswd /home/user/.vnc/passwd

      Таким образом, что бы заработало VNC-подключение к рабочему столу, надо:

      • Сгенерировать пароль не от супер-пользователя
      • Сессия должна быть активной
      • Подправить строку запуска сервиса (ExecStart) в файле /lib/systemd/system/x11vnc.service
      Ответить
      1. Андрей

        Спасибо! Заработало

        Ответить
  4. Pasha

    Че-то тоже не работает:

    [pasmo@w8pro ~]$ nl /lib/systemd/system/x11vnc.service
    1 [Unit]
    2 Description=Start x11vnc at startup.
    3 After=multi-user.target
    4 [Service]
    5 Type=simple
    6 ExecStart=/usr/bin/x11vnc -auth /home/user/.Xauthority -forever -loop -noxdamage -repeat -rfbauth /home/user/.vnc/passwd -rfbport 5900 -shared -display :1 -ncache 10 -bg -o /var/log/x11vnc.log
    7 [Install]
    8 WantedBy=multi-user.target

    [pasmo@w8pro ~]$ systemctl status x11vnc.service
    ● x11vnc.service — Start x11vnc at startup.
    Loaded: loaded (/usr/lib/systemd/system/x11vnc.service; enabled; vendor preset: disabled)
    Active: active (running) since Mon 2019-06-24 17:02:43 PDT; 46min ago
    Main PID: 1718 (x11vnc)
    Tasks: 1 (limit: 4628)
    Memory: 4.5M
    CGroup: /system.slice/x11vnc.service
    └─1718 /usr/bin/x11vnc -auth /home/user/.Xauthority -forever -loop -noxdamage -repeat -rfbauth /home/user/.vnc/passwd -rfbport >

    Jun 24 17:48:57 w8pro x11vnc[1718]: disabling -bg in -loop mode
    Jun 24 17:48:57 w8pro x11vnc[1718]: — x11vnc loop: sleeping 2000 ms —
    Jun 24 17:48:59 w8pro x11vnc[1718]: — x11vnc loop: 1050 —
    Jun 24 17:49:00 w8pro x11vnc[1718]: — x11vnc loop: waiting for: 2910
    Jun 24 17:49:00 w8pro x11vnc[1718]: disabling -bg in -loop mode
    Jun 24 17:49:00 w8pro x11vnc[1718]: — x11vnc loop: sleeping 2000 ms —
    Jun 24 17:49:02 w8pro x11vnc[1718]: — x11vnc loop: 1051 —
    Jun 24 17:49:02 w8pro x11vnc[1718]: — x11vnc loop: waiting for: 2911
    Jun 24 17:49:02 w8pro x11vnc[1718]: disabling -bg in -loop mode
    Jun 24 17:49:02 w8pro x11vnc[1718]: — x11vnc loop: sleeping 2000 ms —
    lines 1-19/19 (END)

    [pasmo@w8pro ~]$ nl /var/log/x11vnc.log
    1 24/06/2019 18:01:09 passing arg to libvncserver: -rfbauth
    2 24/06/2019 18:01:09 passing arg to libvncserver: /home/user/.vnc/passwd
    3 24/06/2019 18:01:09 passing arg to libvncserver: -rfbport
    4 24/06/2019 18:01:09 passing arg to libvncserver: 5900
    5 24/06/2019 18:01:09 x11vnc version: 0.9.16 lastmod: 2019-01-05 pid: 3219
    6 24/06/2019 18:01:09 Using X display :1
    7 24/06/2019 18:01:09 rootwin: 0x14d reswin: 0x1e00001 dpy: 0x27b6f900
    8 24/06/2019 18:01:09
    9 24/06/2019 18:01:09 —————— USEFUL INFORMATION ——————
    10 24/06/2019 18:01:09 X COMPOSITE available on display, using it for window polling.
    11 24/06/2019 18:01:09 To disable this behavior use: ‘-noxcomposite’
    12 24/06/2019 18:01:09 …. …

    Ответить