В качестве альтернативного VNC-сервера в Linux мы рекомендуем использовать сервер x11vnc. Его преимущества перед другими VNC серверами в том, что он может загружаться сразу же со стартом X Window System (то есть прямо с login screen’ом, до того, как вы осуществите вход пользователя в систему), а также в гибкости настроек. Установка x11vnc позволяет подключаться к рабочему столу на этапе входа пользователя в систему, в отличии от других VNC-серверов, подгружаемых только одновременно со входом в систему. Ниже будут приведены краткие типовые инструкции по его настройке, так, чтобы сервер не отключался при входе в систему (недостаток многих решений, встречающихся в сети).
Устанавливаем x11vnc
sudo apt-get install x11vnc
Генерируем пароль для доступа:
x11vnc -storepasswd
После этого пароль по-умолчанию сохраняется в /home/USERNAME/.vnc/passwd (где USERNAME – имя пользователя, под которым вы выполнили команду).
Теперь нам надо добавить автозагрузку сервера.
Если вы используете GDM старых версий (старые системы с gnome2 и аналогами):
Под рутом редактируем файл /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:
После установки 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 вы можете найти на этой странице.
помогло
Супер! Еще бы допилить загрузку иксов без подключенного монитора и вообще шоколад!
Если у Вас стоит 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 всё работает)
у меня Ubuntu 10.04 но файла /etc/gdm/gdm.conf-custom не оказалось как быть?
Nitronomicon, по-умолчанию, даже если x11vnc загружать без каких-либо дополнительных параметров, он успешно принимает входящие соединения. Проверьте, изменили ли вы ‘USERNAME’ в пути файла пароля и скажите какую ошибку выдает клиент.
LexT, просто создайте такой файл с одной единственной строкой, если его там нет.
здравствуйте! Спасибо большое за howto… x11vnc реально чустрее и работает… чем остальные vnc servera… может вы ответите… необходимо чтобы по умолчанию грузился gdm под rootom без вбивания руками паролей … как такое реализовать … тк gdm простот так грузиться по умолчанию под рутом не желает…
Gex, попробуйте вот эту инструкцию: http://oss-it.ru/171 только изменив содержание скрипта для запуска gdm
Как сделать, что бы “всё это” работало без подключения монитора? ОЧЕНЬ нада 🙂
Если интеловая встроенная графика, может помочь установка драйвера дисплея VESA (в openSUSE так боролся).
можно но-подробнее, я не “совсем” спец в linux…
как поменять драйвер дисплея?
Торт! То что нужно.
Только у меня при logoff’е TightVNC отваливается с ошибкой, хотя после этого логинится нормально и видит экран приглажения. Как в документации написано: Happy, happy, joy, joy!!!
После всего проделанного x-сервер стабильно вылетает минут через 5 после входа. При следующем входе на экране появляются артефакты но вылета не происходит
unwrecker: Видел подобное поведение на некоторых машинах в 10.10. Похоже что как-то связано с железом, а точнее с видео-картой – при использовании vesa-драйвера вместо проприетарного – не повторялось.
вместо /etc/gdm/gdm.conf-custom нужно править /etc/gdm/custom.conf
уменя сервер падает через некоторое время.Перезагружаю-снова работает
mob15a: Немного обновил пост, скорее всего дело в GDM Custom Config file – проверьте в тот ли файл вы добавили
KillInitClients=true
после перезапуска, работает мин. 3-5, а потом вся система ложится, вообще не реагирует..
в логах ничего не нашёл(
Система заработала только после дополнительного редактирования еще одного файла:
под рутом отредактировал файл/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генерированный вами файл с паролем).
x11vnc через определенное время очень сильно загружает систему ,даже когда с клиента не подрубаешся к машине,с чем это связано? еще такой момент при соединении с сервером все работает,когда закрываеш клиент ,(использую tightvnc) и при последующем соединение с сервером,не пускает,в процессах x11vnc не запущен
вот лог x11vnc http://paste.pocoo.org/show/492339/
настроил все как описано,Э но при скрине логина нифига не коннектит 🙂
стоит только залогиниться – вуаля , все пашет. ЧТо может быть то ?
может автор подскажет а где ковырять такое же для ubuntu 11.х где gdm просто нету ?
Присоединяюсь к вопросу Lucky_Den – как запустить сервер в 11.10?
Lucky_Den, oermolaev: дополнил пост настройкой x11vnc в Ubuntu 11.10. В новой ubuntu это сделать еще быстрее и проще чем прежде.
в kubuntu 11.10 заменил
-auth /var/run/lightdm/root/:0
на
-env FD_XDM=1 -auth guess
вроде как по man’у
У меня все пашет. А курсор в виде крестика можно как то исправить? Стрелочка то привычней 😉
! Если компьютер, на котором работает 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.”
Пока не получилось настроить по вашей статье, надо бы больше комментариев и разъяснений! Иначе не понятно, нет таких каталогов, файлов, не могу их найти!
не удается запустить сервис 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 отображается один и тот же рабочий стол, а нужно чтобы на каждом порту был доступен свой рабочий стол, для разных пользователей.
На xubuntu 12.04 куда прописывать gdm нету, помогите плиз
Супер спасибо, все работает. Вначале не мог подключится т.к. не знал что USERNAME в строке /home/USERNAME/.vnc/passwd чувствителен к регистру. Как додумался до этого все заработало
У меня на 12.04 с lightdm не получилось
Если запустить ручками (sudo start x11vnc), пишет что запустилось, однако в syslog появляется init: x11vnc main process (3691) terminated with status 1
В 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 и менее знаках длины.
Попытался установить в 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 система весьма надёжно зависла. После нескольких попыток загрузки снёс систему и восстановил с образа.