Задача: получить доступ к рабочему столу домашнего компьютера с работы.Стандартный vino из GNOME не подошел, так как его надо было каждый раз запускать. Выбор остановился на x11vnc, настроить с первого захода который не получилось - GMOME вылетал через 5 минут после логина с такой ошибкой:
gdm-session-worker[2473]: GLib-GObject-CRITICAL: g_value_get_boolean: assertion `G_VALUE_HOLDS_BOOLEAN (value)' failed
gdm-session-worker[2473]: pam_succeed_if(gdm:auth): requirement "user ingroup no passwdlogin" not met by user "males"
gdm-session-worker[2473]: pam_unix(gdm:session): session opened for user males by (uid=0)
gdm-session-worker[2473]: pam_ck_connector(gdm:session): nox11 mode, ignoring PAM_TTY :0
Ниже, пошаговая инструкция настройки рабочей конфигурации x11vnc:
Удаляем vino и установим x11vnc
sudo apt-get remove vino
sudo apt-get install x11vnc
после того как все прошло успешно создаем пароль для VNC:
sudo x11vnc -storepasswd пароль /etc/vnc/passwd
если запускать просто x11vnc -storepasswd то пароль создастся в ~/.vnc/passwd, что мне не очень-то хотелось.
После того как пароль создан и записан добавим в самый конец файла
/etc/gdm/PreSession/Default такую строчку:
/usr/bin/x11vnc -dontdisconnect -display :0 -shared -noxfixes -forever \
-rfbport 5900 -bg -o /var/log/x11vnc.log -rfbauth /etc/vnc/passwd
теперь по опциям:
-dontdisconnect не отключать клиентов при новом соединении
-display :0 какой дисплей использовать. Если не указать этот параметр у меня создавался новый дисплей.
-shared Для подключения более одного пользователя
-noxfixes Что-то связанное с отрисовкой курсора.
-forever не закрывать x11vnc после разрыва соединения
-rfbport 5900 какой порт использовать
-bg запускать в фоне
последние два параметра это лог и файл паролей.
Если канал маленький можно добавить параметр -notruecolor, чтобы выдавался 8-битный цвет.
С запуском закончили. Теперь добавим в /etc/gdm/custom.conf строчку "KillInitClients=true" чтобы при запуске gdm убивал X-клиенты запущенные через init.
Перезапускаем X-ы, заходим от любого пользователя, смотрим запустился ли VNC:
ps -ax | grep x11vnc
1726 ? Ss 1:51 /usr/bin/x11vnc -dontdisconnect -display :0
-noxfixes -shared -forever -rfbport 5900 -bg -o /var/log/x11vnc.log -rfbauth /etc/vnc/passwd
sudo netstat -antp | grep x11vnc
tcp 0 0 0.0.0.0:5900 0.0.0.0:* LISTEN 1726/x11vnc
tcp6 0 0 :::5900 :::* LISTEN 1726/x11vnc
вот и всё. теперь можно смело подключаться с удаленного компьютера через VNC.
Для статьи использовались Google, хендбуки и http://linux.die.net/man/1/x11vnc
URL:
Обсуждается: https://www.opennet.ru/tips/info/2442.shtml