How to setup x11vnc

  • 3rd day of Chaos, in the yold 3176
  • 35 Comments

How to setup x11vnc to access with graphical login screen.

English version of this page under construction. You can read automatic translation.


В качестве альтернативного VNC-сервера в Linux мы рекомендуем использовать сервер x11vnc. Его преимущества перед сервером vino (установленном в Ubuntu по-умолчанию) в том, что он может загружаться сразу же со стартом X Window System (то есть прямо с login screen’ом, до того, как вы осуществите вход пользователя в систему), а также в гибкости настроек. Установка x11vnc позволяет подключаться к рабочему столу на этапе входа пользователя в систему, в отличии от других VNC-серверов, подгружаемых только одновременно со входом в систему. Ниже будут приведены краткие типовые инструкции по его настройке, так, чтобы сервер не отключался при входе в систему (недостаток многих решений, встречающихся в сети).

Итак, удаляем vino, в Ubuntu и Debian это:

sudo apt-get remove vino

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

sudo apt-get install x11vnc

Генерируем пароль для доступа:

x11vnc -storepasswd

После этого пароль по-умолчанию сохраняется в /home/USERNAME/.vnc/passwd (где USERNAME – имя пользователя, под которым вы выполнили команду).

Теперь нам надо добавить автозагрузку сервера.

Если вы используете GDM:

Под рутом редактируем файл /etc/gdm/PreSession/Default (sudo nano /etc/gdm/PreSession/Default), где в самом конце добавим следующую строку:

/usr/bin/x11vnc -dontdisconnect -display :0 -notruecolor -noxfixes -shared -forever -rfbport 5900 -bg -o /var/log/x11vnc.log -rfbauth /home/USERNAME/.vnc/passwd

Не забывайте в этой строке изменить ‘USERNAME’ в пути к паролю, на адрес вашей домашней папки (ну или любой другой путь, куда вы положите cгенерированный вами файл с паролем).

Также необходимо добавить одну строку GDM Custom Configuration file. Путь к этому файлу зависит от дистрибутива, может быть /etc/gdm/gdm-custom.conf, /etc/gdm/gdm.conf, в последних Ubuntu это, как правило, /etc/gdm/custom.conf:

KillInitClients=true

В графическом менеджере LXDM:

Нужен файл /etc/lxdm/PreLogin – добавьте в него ту же самую строку запуска:

/usr/bin/x11vnc -dontdisconnect -display :0 -notruecolor -noxfixes -shared -forever -rfbport 5900 -bg -o /var/log/x11vnc.log -rfbauth /home/USERNAME/.vnc/passwd

После этих несложных инструкций x11vnc должен автоматически запускаться со стартом X Window System (то есть для того, чтобы эти параметры вступили в силу – надо перезагрузить систему или непосредственно X11).

При использовании LightDM (в последних Ubuntu):

После установки x11vnc создайте файл /etc/init/x11vnc.conf, в который добавьте следующий код:

start on login-session-start
script
x11vnc -dontdisconnect -display :0 -auth /var/run/lightdm/root/:0 -notruecolor -noxfixes -shared -forever -rfbport 5900 -bg -o /var/log/x11vnc.log -rfbauth /home/USERNAME/.vnc/passwd
end script

Соответственно, измените путь к файлу с паролем и параметры запуска x11vnc. После перезагрузки системы x11vnc будет готов к работе.

Описание параметров запуска x11vnc вы можете найти на этой странице.

  1. Dmurr says:

    Супер! Еще бы допилить загрузку иксов без подключенного монитора и вообще шоколад!

  2. Nitronomicon says:

    Если у Вас стоит Xubuntu 10.04, то файл /etc/gdm/gdm.conf-custom, там называется “custom.conf”.

    Вопрос: Спасибо за инструкцию. Всё запускается. Но… После загрузки x11vnc, надо ей ещё разрешить принимать входящие соединения. Через графический интерфейс программки называется: Accept connection. В хелпе написано, что через консоль – это параметр -R unlock. Но добавив его в строку таким образом: /usr/bin/x11vnc -R unlock -dontdisconnect -notruecolor -noxfixes -shared -forever -rfbport 5900 -bg -o /var/log/x11vnc.log -rfbauth /home/USERNAME/.vnc/passwd у меня он перестал запускаться при загрузке. Подскажите, в чём я ошибся? (через gui всё работает)

  3. LexT says:

    у меня Ubuntu 10.04 но файла /etc/gdm/gdm.conf-custom не оказалось как быть?

  4. info says:

    Nitronomicon, по-умолчанию, даже если x11vnc загружать без каких-либо дополнительных параметров, он успешно принимает входящие соединения. Проверьте, изменили ли вы ‘USERNAME’ в пути файла пароля и скажите какую ошибку выдает клиент.

  5. info says:

    LexT, просто создайте такой файл с одной единственной строкой, если его там нет.

  6. Gex says:

    здравствуйте! Спасибо большое за howto… x11vnc реально чустрее и работает… чем остальные vnc servera… может вы ответите… необходимо чтобы по умолчанию грузился gdm под rootom без вбивания руками паролей … как такое реализовать … тк gdm простот так грузиться по умолчанию под рутом не желает…

  7. DOXTOP says:

    Как сделать, что бы “всё это” работало без подключения монитора? ОЧЕНЬ нада 🙂

  8. Вася Прокулукарпенко says:

    Если интеловая встроенная графика, может помочь установка драйвера дисплея VESA (в openSUSE так боролся).

  9. DOXTOP says:

    можно но-подробнее, я не “совсем” спец в linux…
    как поменять драйвер дисплея?

  10. Max says:

    Торт! То что нужно.

    Только у меня при logoff’е TightVNC отваливается с ошибкой, хотя после этого логинится нормально и видит экран приглажения. Как в документации написано: Happy, happy, joy, joy!!!

  11. unwrecker says:

    После всего проделанного x-сервер стабильно вылетает минут через 5 после входа. При следующем входе на экране появляются артефакты но вылета не происходит

  12. info says:

    unwrecker: Видел подобное поведение на некоторых машинах в 10.10. Похоже что как-то связано с железом, а точнее с видео-картой – при использовании vesa-драйвера вместо проприетарного – не повторялось.

  13. san says:

    вместо /etc/gdm/gdm.conf-custom нужно править /etc/gdm/custom.conf

  14. mob15a says:

    уменя сервер падает через некоторое время.Перезагружаю-снова работает

    • info says:

      mob15a: Немного обновил пост, скорее всего дело в GDM Custom Config file – проверьте в тот ли файл вы добавили KillInitClients=true

  15. onotole says:

    после перезапуска, работает мин. 3-5, а потом вся система ложится, вообще не реагирует..

    в логах ничего не нашёл(

  16. pumbaster says:

    Система заработала только после дополнительного редактирования еще одного файла:
    под рутом отредактировал файл/etc/gdm/Init/Default , в самом конце перед строкой ‘exit 0′ добавил следующую строку:
    /usr/bin/x11vnc -dontdisconnect -notruecolor -noxfixes -shared -forever -rfbport 5900 -bg -o /var/log/x11vnc.log -rfbauth /home/USERNAME/.vnc/passwd

    После этого:
    Теперь нам надо добавить автозагрузку сервера, для этого под рутом редактируем файл /etc/gdm/PreSession/Default (sudo nano /etc/gdm/PreSession/Default), где в самом конце добавим следующую строку:

    /usr/bin/x11vnc -dontdisconnect -display :0 -notruecolor -noxfixes -shared -forever -rfbport 5900 -bg -o /var/log/x11vnc.log -rfbauth /home/USERNAME/.vnc/passwd

    Не забывайте в этой строке изменить ‘USERNAME’ в пути к паролю, на адрес вашей домашней папки (ну или любой другой путь, куда вы положите cгенерированный вами файл с паролем).

  17. moog says:

    x11vnc через определенное время очень сильно загружает систему ,даже когда с клиента не подрубаешся к машине,с чем это связано? еще такой момент при соединении с сервером все работает,когда закрываеш клиент ,(использую tightvnc) и при последующем соединение с сервером,не пускает,в процессах x11vnc не запущен

  18. Lucky_Den says:

    настроил все как описано,Э но при скрине логина нифига не коннектит 🙂
    стоит только залогиниться – вуаля , все пашет. ЧТо может быть то ?

  19. Lucky_Den says:

    может автор подскажет а где ковырять такое же для ubuntu 11.х где gdm просто нету ?

  20. oermolaev says:

    Присоединяюсь к вопросу Lucky_Den – как запустить сервер в 11.10?

  21. Baster says:

    в kubuntu 11.10 заменил
    -auth /var/run/lightdm/root/:0
    на
    -env FD_XDM=1 -auth guess
    вроде как по man’у

  22. pavel says:

    У меня все пашет. А курсор в виде крестика можно как то исправить? Стрелочка то привычней 😉

  23. Андрей says:

    ! Если компьютер, на котором работает X11VNC, будет периодически (через разные интервалы времени) “выбрасывать” из системы, то включите опцию “-noxrecord”.
    Здесь описаны подробности: http://ubuntuforums.org/showthread.php?t=1612704&page=4
    Пояснение, не очень понятное, такое:
    “Disable any use of the RECORD extension. This is currently used by the -scrollcopyrect scheme and to monitor X server grabs.
    As I understand it, this X extension provides a simple way to record/playback events within the X server.”

  24. LS says:

    Пока не получилось настроить по вашей статье, надо бы больше комментариев и разъяснений! Иначе не понятно, нет таких каталогов, файлов, не могу их найти!

  25. beatseed says:

    не удается запустить сервис x11vnc для дисплея :1.
    В /etc/gdm/PreSession/Default
    добавил такие строчки:
    /usr/bin/x11vnc -dontdisconnect -display :0 -notruecolor -noxfixes -shared -forever -rfbport 5900 -bg -o /var/log/x11vnc.log -rfbauth /home/USER1/.vnc/passwd
    /usr/bin/x11vnc -dontdisconnect -display :1 -notruecolor -noxfixes -shared -forever -rfbport 5901 -bg -o /var/log/x11vnc.log -rfbauth /home/USER2/.vnc/passwd
    дисплей 0 создается , дисплей 1 нет, в логе ошибка:
    XOpenDisplay failed (:1) + куча строк не меняющегося набора предложений, что нужно проверить.
    без параметра -display:1 второй сервис запускается , но тогда при подключении на порт 5900 и 5901 отображается один и тот же рабочий стол, а нужно чтобы на каждом порту был доступен свой рабочий стол, для разных пользователей.

  26. sashokaaa says:

    На xubuntu 12.04 куда прописывать gdm нету, помогите плиз

  27. sui says:

    Супер спасибо, все работает. Вначале не мог подключится т.к. не знал что USERNAME в строке /home/USERNAME/.vnc/passwd чувствителен к регистру. Как додумался до этого все заработало

  28. STinger says:

    У меня на 12.04 с lightdm не получилось
    Если запустить ручками (sudo start x11vnc), пишет что запустилось, однако в syslog появляется init: x11vnc main process (3691) terminated with status 1

  29. sandvm says:

    В ubuntu 15.04
    Сделал через “Автоматически запускаемые программы” следующей командой:

    x11vnc -dontdisconnect -display :0 -auth /home/USER/.Xauthority -notruecolor -noxfixes -shared -forever -rfbport 5900 -bg -o /home/USER/.vnc/x11vnc.log -rfbauth /home/USER/.vnc/passwd -ultrafilexfer

    Чтобы работала передача файлов при пользовании UltraVNC viewer необходимо добавить опцию
    -ultrafilexfer

    Внимание! Пароль для подключения из винды к x11vnc должен быть не более 8 знаков!

    В виндовом вьювере и в виндовом же сервере почему-то пропускает и больше, но тут при выполнении
    x11vnc -storepasswd
    и записи пароля из 9 знаков виндовый UltraVNC viewer выдает ошибку
    “VNC authentication failed!” В общем пароль корректно отработал при 8 и менее знаках длины.

  30. Николай says:

    Попытался установить в Debian 9. Первая проблема, отсутствует папка /etc/gdm, предполжил, что в Debian 9 это папка /etc/gdm3 (у меня используется дисплейный менеджер gdm3), отредактировал файл /etc/gdm3/PreSession/Default. Вторая проблема отсутствуют файлы etc/gdm/gdm-custom.conf, /etc/gdm/gdm.conf, /etc/gdm/custom.conf, зато есть /etc/gdm3/daemon.conf, внёс строку KillInitClients=true в него. Перезагрузил Debian и после выбора ОС в меню grub система весьма надёжно зависла. После нескольких попыток загрузки снёс систему и восстановил с образа.

Leave a Comment

Your email address will not be published. Required fields are marked *