cookieOptions

вторник, 3 сентября 2013 г.

Допиливаем напильником x11vnc для автозапуска

Решение:

1. Удаляем vino (чтобы не было проблем с занятием порта и т.п.)

sudo apt-get remove vino


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

sudo apt-get install x11vnc

3. Делаем пароль для доступа к VNC. Тут надо быть очень внимательными вот почему. По-умолчанию VNC не использует туннель shh следовательно информация не шифруется, потому если машина для вас очень важная и критичная, надо погуглить на тему проброса VNC и его портов через туннель SSH




x11vnc -storepasswd

Пароль сохраняется в /home/ВАШЕ ИМЯ ПОЛЬЗОВАТЕЛЯ/.vnc/passwd (где ВАШЕ ИМЯ ПОЛЬЗОВАТЕЛЯ – имя пользователя, под которым вы выполнили команду). Важно выполнить эту команду не из под sudo иначе будут проблемы с правами доступа при логине.

4. Автозагрузка службы x11vnc. Очень важно (для меня) чтобы служба была уже доступна при загрузке Х т.е. пользователь еще не зашел в систему, но доступ к машине уже есть. Почему это важно? Ответ прост. В BIOS включено включение по питанию, следовательно если даже на "сервачке" пропало питание, то как только оно появится он включится сам опять и загрузится. Для этого и нужно иметь доступ уже на уровне GDM. Так же надо учесть что в Gnome3 версии Mint используется уже GDM3!!!

Редактируем файл /etc/gdm3/Init/Default (не забываем выполнить это из под root или sudo иначе не сохраните изменения)
Добавить в конец файла до exit 0 следующую строку:

## /usr/bin/x11vnc -dontdisconnect -notruecolor -noxfixes -shared -forever -rfbport 5900 -bg -o /var/log/x11vnc.log -rfbauth /home/ВАШЕ ИМЯ ПОЛЬЗОВАТЕЛЯ/.vnc/passwd ##(  #одной строкой# )

Из ключевых параметров стоит обратить внимание на следующие:
-dontdisconnect - не отключать при простоях, что важно если свернули окно сессии
-forever - очень важный параметр. Без него x11vnc после завершения сеанса выключается и больше вы не зайдете пока по ssh опять не запустите его, что не удобно.
-rfbport - указываем на каком порту будет работать наш VNC

Далее сохраняем файл и перегружаем машину.

В некоторых статьях попадается что эту же строку надо добавить в файл /etc/gdm/gdm.conf-custom но его в Mint нет, но все работает и так. Я так понимаю с GDM3 его просто выкинули.

1 комментарий:

  1. Можно ещё в systemd создать его как сервис от рута, так его система будет поднимать, если он падает (а он иногда падает, особенно при наличии вайна). Проблема в том, что при поднятии интерфейсов он поднимается раньше них и иногда не видит сеть из-за этого, я создал в systemd ещё и таймер, который бы дёрнул x11vnc через минуту-две после запуска (т.к. комп старый уже, меньше ставить не стал). Вроде отчасти помогло - хоть и падает, но поднимается.
    vino не падает, но он тормоз. Хотелось бы попробовать заюзать turbovnc - он вроде не должен иметь недостатков vino и x11vnc, но я что-то сделал не так и он не работает.
    Кстати, можно ещё установить на сервак в инете ultravnc repeater (во 2-м режиме) и вывести x11vnc на него обратным подключением для обхода NAT (если подсеть без внешнего IP), это должно работать и с turbovnc. C x11vnc у меня даже получалось это сделать - в итоге имеем бесплатную замену teamviewer.

    ОтветитьУдалить