Операционная система ЗОСРВ «Нейтрино» > Руководство пользователя > Интерфейсы пользователя (UI) и окружение > Удалённый рабочий стол с помощью VNC



Удалённый рабочий стол с помощью VNC

Содержит информацию об организации удалённого доступа к рабочему столу устройства с помощью VNC

ЗОСРВ "Нейтрино" предоставляет несколько вариантов VNC-cерверов для организации удалённого доступа к устройству.

В статье описаны разные способы использования VNC:

Запуск VNC-сервера в графическом окружении Photon
Запуск VNC-сервера в графическом окружении Photon через inetd
Запуск VNC-сервера в графическом окружении Screen
Запуск VNC-сервера в графическом окружении GF
Подключение к удалённому рабочему столу с помощью встроенного VNC-клиента
Подключение к удалённому рабочему столу из Linux

Запуск VNC-сервера в графическом окружении Photon

Для запуска VNC-сервера в графическом окружении Photon используется приложение phvncserver. Простейший вариант его запуска:

phvncserver

В таком случае приложение подключится к первому графическому устройству, которое обнаружит. Задание конкретного графического устройства возможно с помощью опции -d.

Формат транслируемого изображения будет соответствовать формату изображения рабочего стола, поэтому не перенастраивая Photon его изменить нельзя. Но при возникновении проблем с передачей цвета можно воспользоваться опцией -e, для того чтобы осуществить перестановку байт (little-endian <-> big-endian) для 16-битных цветов (RGB565 и ARGB1555) или настроить положение компонентов цвета с помощью опции -s.

По умолчанию сервер подключается к порту 5900. Для изменения порта необходимо воспользоваться опцией -rfbport.

Пример запуска приложения с подключением к порту 5901, с осуществлением перестановки байт и явным заданием региона для подключения в 2:

phvncserver -rfbport 5901 -e -d 2

Полный список опций для настройки сервера можно найти на странице phvncserver.

Запуск VNC-сервера в графическом окружении Photon через inetd


Note: Если при подключении к phvncserver-у требуется создание новой сессии Photon, то его надо запускать не вручную, а через inetd.

Для запуска phvncserver через inetd требуется указать в конфигурационном файле /etc/inetd.conf следующее:

phvncserver stream tcp nowait root /usr/photon/bin/phvncserver phvncserver -inetd default

При необходимости вместо default можно указать параметры виртуального дисплея. Список настраиваемых параметров смотрите на странице phvncserver-а.

Файл /etc/services должен содержать следующую строку (как файл по умолчанию):

phvncserver 5901/tcp

Здесь 5901 это порт, к которому будет подключаться inetd и ожидать подключение клиентов. Его можно менять по желанию. При подключении VNC-клиентов к этому порту, для каждого будет создан свой экземпляр Photon, а так же запущен io-graphics с опцией -o и с заданными настройками дисплея.


Warning: Запуск вручную phvncserver на том же порте, к которому подключён inetd, приведёт к зависанию

Запуск VNC-сервера в графическом окружении Screen

В графическом окружении Screen VNC-сервер является частью оконного менеджера screen-winmgr. Для активации сервера требуется в screen.conf добавить в секцию screen подсекцию vnc. Если файл screen.conf пишется не с нуля, то секция screen уже должна присутствовать.

begin screen
...
begin vnc
end vnc
...
end screen

Здесь можно настроить дисплей для подключения (поля display и display-string), формат поверхности (format), порт (port) и другие параметры. С полным списком настраиваемых параметров и их значениями по умолчанию можно ознакомится в секции vnc на странице посвящённой screen.conf.

Пример настройки VNC-сервера на передачу ARGB8888 изображения взятого с дисплея с именем "exemple-display" через порт 5900:

begin screen
begin wfc display 1
...
id-string = exemple-display
end wfc display
begin vnc
port = 5900
format = argb8888
display-string = exemple-display
end vnc
...
end screen

Если Screen работает вместе с Photon, то требуется запустить devi-screen, чтобы включить ввод в Photon.

Запуск VNC-сервера в графическом окружении GF

Для случаев, когда ни Photon, ни Screen не запущены, но требуется получить удалённый доступ по VNC к какому-нибудь работающему графическому приложению, которое использует библиотеку GF, подойдёт приложение gfvncserver. Если графическое приложение запущено в графическом окружении Photon или Screen, то лучше использовать соответствующий VNC-сервер.

Простейший вариант запуска gfvncserver:

gfvncserver

В таком случае приложение подключится к первому графическому устройству, которое обнаружит, его первому дисплею, слою и поверхности. Задание конкретного графического устройства, дисплея, слоя и поверхности возможно с помощью опций -g, -d, -l, -s соответcтвенно.

Формат транслируемого изображения будет соответствовать формату выбранного изображения. При возникновении проблем с передачей цвета можно воспользоваться опцией -e, для того чтобы осуществить перестановку байт (little-endian <-> big-endian) для 16-битных цветов (RGB565 и ARGB1555) или настроить положение компонентов цвета с помощью опции .

В отличие от phvncserver и screen-winmgr, gfvncserver передаёт не изменённые фрагменты изображения по мере их появления, а полное изображение с зафиксированной частотой. Для её изменения можно использовать параметр -t, который задаёт период обновления передаваемого изображения в миллисекундах. Следующий пример показывает как задать обновление раз в пол секунды:

gfvncserver -t 500


Note: gfvncserver не предоставляет возможность ввода.

Полный список опций для настройки сервера можно найти на странице gfvncserver.

Подключение к удалённому рабочему столу с помощью встроенного VNC-клиента

Для подключения к удалённому рабочему столу через ЗОСРВ "Нейтрино" используется встроенное в Photon приложение phvncviewer. Например, подключение к удалённому рабочему столу будет выглядеть следующим образом:

phvncviewer IP_ADDRESS:PORT

Полный список настроек phvncviewer можно найти здесь.

Для удобной настройки phvncviewer-а можно использовать phvnc.

Подключение к удалённому рабочему столу из Linux

Подключиться к удалённому рабочему столу ЗОСРВ "Нейтрино" также можно из операционных систем семейства Linux. Для этого можно использовать любой VNC-клиент. Например, так будет выглядеть подключение к удалённому рабочему столу ЗОСРВ "Нейтрино" с помощью xtightvncviewer:

xtightvncviewer IP_ADDRESS:PORT

Ещё один пример подключения с использованием клиента remmina.

remmina -c vnc://IP_ADDRESS:PORT




Предыдущий раздел: перейти