Всё оказалось довольно просто: дисплейный менеджер LightDM умеет работать совместно с VNC-сервером, позволяя авторизоваться в системе и начать новый X-сеанс.
Установка и настройка VNC-сервера
Для начала устанавливаем пакет с VNC-сервером TightVNCServer:
# apt-get install tightvncserverВ файле конфигурации /etc/lightdm/lightdm.conf находим секцию VNCServer и приводим её к следующему виду:
[VNCServer] enable=true port=5900 width=1024 height=768 depth=8Смысл всех настроек очевиден:
- enable включает возможность подключиться к LightDM по протоколу VNC,
- port задаёт номер TCP-порт, на котором VNC-сервер будет ожидать подключений,
- width задаёт ширину экрана для VNC-сервера,
- height задаёт высоту экрана для VNC-сервера,
- depth задаёт глубину цвета для точки - 8 бит, 16 бит, 24 бита,
# /etc/init.d/lightdm restartТеперь LightDM будет ожидать подключений на TCP-порту 5900 и при подключении клиента будет запускать VNC-сервер. Узнать, какой VNC-сервер будет запускаться, можно при помощи следующей команды:
# update-alternatives --list vncserverВыбрать используемый VNC-сервер можно при помощи следующей команды:
# update-alternatives --config vncserverЕсли в системе установлен только один VNC-сервер, будет использоваться он. При удалении используемого VNC-сервера система переключится на использование другого.
Лучше использовать клиент наиболее совместимый с сервером. В нашем случае - это TightVNCViewer из пакета xtightvncviewer. VNC-сервер одновременно будет выступать в роли X-сервера, который будет взаимодействовать с LightDM. При подключении мы увидим обычный экран LightDM с указанным разрешением и глубиной цвета, в котором можно ввести имя пользователя и пароль для создания нового X-сеанса.
Установка и настройка RDP-прокси
Для подключения к компьютеру с VNC-сервером по протоколу RDP можно установить и настроить специальный прокси-сервер XRDP, который принимает подключения по протоколу RDP, а сам устанавливает подключения по протоколу VNC к VNC-серверу (на самом деле в данном случае соединения будет принимать LightDM, запуская для их обслуживания VNC-сервер). Прокси будет одновременно выступать в роли RDP-сервера и VNC-клиента.
Установим пакет с прокси:
# apt-get install xrdpПриведём файл конфигурации /etc/xrdp/xrdp.ini к следующему виду:
[globals] bitmap_cache=yes bitmap_compression=yes port=3389 crypt_level=low channel_code=1 [xrdp1] name=default lib=libvnc.so username= password= ip=127.0.0.1 port=5900На самом деле этот RDP-прокси может выступать и в роли RDP-клиента, может устанавливать подключения к произвольным компьютерам в сети, самостоятельно запускать X-серверы и использовать различные схемы аутентификации. В данном случае из файла конфигурации удалены все остальные варианты подключения и добавлен только один вариант с названием default, который позволяет подключиться к VNC-серверу, запущенному на том же компьютере, что и сам RDP-прокси. Подключение будет устанавливаться на TCP-порт 5900, а RDP-прокси не будет спрашивать у пользователя имя и пароль.
Теперь перезапустим прокси, чтобы настройки вступили в силу:
# /etc/init.d/xrdp restartТеперь можно подключаться к VNC-серверу при помощи обычного RDP-клиента из Windows. При этом можно не думать об установке VNC-клиента, который не всегда может оказаться под рукой во "враждебной" среде Windows :)
Вот снимок экрана при подключении по VNC при помощи Remmina:






