vnc
Быстрая настройка x11vnc

  • January 3rd, 2010
  • 34 Comments

В качестве альтернативного 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. Vlad left a comment on 20.02.2010 at 14:11

    помогло

  2. Dmurr left a comment on 13.05.2010 at 09:45

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

  3. Nitronomicon left a comment on 01.06.2010 at 14:52

    Если у Вас стоит 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 всё работает)

  4. LexT left a comment on 08.06.2010 at 13:31

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

  5. info left a comment on 13.06.2010 at 22:03

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

  6. info left a comment on 13.06.2010 at 22:04

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

  7. Gex left a comment on 30.07.2010 at 12:49

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

    • info left a comment on 30.07.2010 at 18:44

      Gex, попробуйте вот эту инструкцию: http://oss-it.ru/171 только изменив содержание скрипта для запуска gdm

  8. DOXTOP left a comment on 08.09.2010 at 14:07

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

  9. Вася Прокулукарпенко left a comment on 27.09.2010 at 02:38

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

  10. DOXTOP left a comment on 28.09.2010 at 16:01

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

  11. Max left a comment on 07.10.2010 at 15:32

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

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

  12. unwrecker left a comment on 30.11.2010 at 11:37

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

  13. info left a comment on 03.12.2010 at 10:34

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

  14. san left a comment on 04.12.2010 at 12:04

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

  15. mob15a left a comment on 24.01.2011 at 20:52

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

    • info left a comment on 27.01.2011 at 13:11

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

  16. onotole left a comment on 06.02.2011 at 11:47

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

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

  17. pumbaster left a comment on 18.08.2011 at 21:15

    Система заработала только после дополнительного редактирования еще одного файла:
    под рутом отредактировал файл/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генерированный вами файл с паролем).

  18. moog left a comment on 14.10.2011 at 12:38

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

  19. moog left a comment on 14.10.2011 at 12:41
  20. Lucky_Den left a comment on 18.10.2011 at 09:38

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

  21. Lucky_Den left a comment on 18.10.2011 at 15:28

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

  22. oermolaev left a comment on 14.11.2011 at 13:17

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

    • info left a comment on 22.11.2011 at 14:25

      Lucky_Den, oermolaev: дополнил пост настройкой x11vnc в Ubuntu 11.10. В новой ubuntu это сделать еще быстрее и проще чем прежде.

  23. Baster left a comment on 02.12.2011 at 02:23

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

  24. pavel left a comment on 15.02.2012 at 10:43

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

  25. Андрей left a comment on 21.03.2012 at 11:05

    ! Если компьютер, на котором работает 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.”

  26. LS left a comment on 11.04.2012 at 10:32

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

  27. beatseed left a comment on 19.04.2012 at 09:13

    не удается запустить сервис 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 отображается один и тот же рабочий стол, а нужно чтобы на каждом порту был доступен свой рабочий стол, для разных пользователей.

  28. sashokaaa left a comment on 01.05.2012 at 09:12

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

  29. sui left a comment on 07.09.2012 at 15:06

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

  30. STinger left a comment on 15.11.2012 at 11:05

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

  31. sandvm left a comment on 24.07.2015 at 01:08

    В 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 и менее знаках длины.

Leave a Reply