VNC на display :0

Вариант 1

Добавляем наш сервис в /etc/services.

$ sudo echo "vnc 5900/tcp" >> /etc/services

Конфигурируем inetd (я использую xinetd):

$ cat /etc/xinetd.d/x11vnc
service vnc
{
    disable     = no
    socket_type = stream
    protocol    = tcp
    wait        = no
    user        = ronix
    instances = 1
    server = /usr/bin/x11vnc
    server_args = -display :0 -inetd -q -passwdfile /home/ronix/.vnc/passwdfile
    only_from = 127.0.0.1
    log_type = SYSLOG auth notice
}

Как вы видите, сервис доступен только с адреса локалхоста. Попытаюсь объяснить зачем это сделано. Как известно, VNC имеет большую проблему с security в виде максимальной длины пароля в 8-символов, что не есть хорошо. Так что оставить его открытым всему миру будет большой ошибкой. Собственно говоря, ограничить доступ можно и с помощью пакетного фильтра, но это не всегда удобно или уместно. Второй путь — запустить сервис на 127.0.0.1. Вы спросите, а как же я с удаленного хоста попаду на этот 127.0.0.1 ? Все очень просто. Достаточно воспользоватся возможностью туннелирования трафика в ssh. Это и вызовет увеличение безопасности, ведь перед тем, как подключится к VNC, вам придется ещё дополнительно аутентифицироватся в системе.

Осталась самая малость. Создать файл с паролем /home/ronix/.vnc/passwdfile и перезапустить xinetd.

Подключение к VNC серверу выполняется в два этапа. Подключение к ssh с созданием тунеля:

remotehost$ ssh -C -L5900:127.0.0.1:5900 ronix@desktop.domain.com

И, собственно, подключение к VNC-серверу:

remotehost$ vncviewer localhost

Вариант 2

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

x11vnc -auth /home/user/.Xauthority  -display :0
vnc_na_0_display.txt · Последние изменения: 2014/08/27 17:25 (внешнее изменение)
GNU Free Documentation License 1.3
Driven by DokuWiki Recent changes RSS feed Valid CSS Valid XHTML 1.0 Яндекс.Метрика