MyTetra Share
Делитесь знаниями!
Как использовать в Astra Linux графический удаленный доступ через VNC-сервер?
Время создания: 13.06.2024 15:10
Текстовые метки: linux, astra, vnc, vino, tigervnc, vncviewer, удаленный, доступ, графический, GUI, настройка, подключение, рабочий, стол, терминал, X11
Раздел: Компьютер - Linux - Дистрибутив Astra Linux
Запись: xintrea/mytetra_syncro/master/base/1718280620wm5drrlxy6/text.html на raw.githubusercontent.com

В Astra Linux самописный рабочий стол Fly и графический сервер X11 были сильно модифицированы, чтобы обеспечить работу в различных режимах доступа, в том числе и с использованием мандатных прав. Поэтому стандартный VNC-серверы, почему-то включенные в поставку Astra Linux, просто не работают.



Сервер


Выяснено, что для работы в Astra Linux, был модифицирован VNC-сервер vino. Он работает, как минимум, в Astra Linux 1.6. Для его установки необходимо выполнить команду:



apt install vino



Если vino-сервер установлен на Astra Linux 1.6 до обновления 14 (возможно, 12), то запуск, в общем случае, необходимо производить командой:



DISPLAY=:0 /usr/lib/vino/vino-server



Эта команда правильно сработает и при локальном запуске, и при подключении к серверу по SSH. Если забыть указать установку переменной DISPLAY, то при подключении по SSH, vino будет пытаться работать с дисплеем, полученным из SSH-сессии, и это будет дисплей терминала, с которого и происходит работа. Таким образом, VNC-клиент будет циклично подключаться к собственному дисплею, а не к дисплею сервера. Так что этот момент надо обязательно учитывать.



Важно! Вышеуказанную команду надо выполнять от обычного пользователя, а не из-под root. Если попробовать выполнить под рутом, то будет выведена ошибка:


No protocol specified

Unable to init server: Could not connect: В соединении отказано



Когда все будет налажено, сервер vino можно либо прописать в автозапуск, либо можно будет запускать командой, которая запустит выполнение сервера в фоне так, что не будет привязки к сеансу ssh (за счет использования скобок), и стандартный вывод и вывод ошибок будут перенаправлены в /dev/null, и поэтому не будут неожиданно появляться сообщения в терминале когда происходят какие-то действия с VNC. Команда выглядит следующим образом:



(DISPLAY=:0 /usr/lib/vino/vino-server 1> /dev/null 2>&1 &)



Если vino-сервер установлен на Astra Linux 1.6 с обновлением 14 (возможно, 12), то в таком дистрибутиве пакет vino сделан так, что vino-server будет автоматически прописан в автостарт тому пользователю, для которого настроен автологин. Признаком того, что vino-сервер запускается самостоятельно, будет наличие уже запущенного сервера:



user$ ps aux | grep vino

operato+ 1523 0.5 1.4 755288 56368 ? Ssl 11:03 0:00 /usr/lib/vino/vino-server --sm-di

sable

user 1987 0.0 0.0 12788 976 pts/0 S+ 11:04 0:00 grep vino



Если не обратить внимание, что сервер уже запущен, при попытке повторного запуска можно получить малоинформативную ошибку:



$ DISPLAY=:0 /usr/lib/vino/vino-server
Invalid MIT-MAGIC-COOKIE-1 keyUnable to init server: Could not connect: В соединении отказано
Не удалось открыть дисплей:
Запустите «vino-server --help», чтобы увидеть полный список доступных параметров командной строки



Причем под разными пользователями (обычными, не root) ошибка может быть другой. Вот пример более информативной ошибки:



$ DISPLAY=:0 /usr/lib/vino/vino-server

(vino-server:2834): GLib-GObject-WARNING **: /opt/build/glib2.0/glib2.0-2.50.3/./gobject/gsignal.c

:2524: signal 'changed:enabled' is invalid for instance '0x641db53e5570' of type 'GSettings'

** Message: The desktop sharing service is already running, exiting.



В любом случае, проявление такой ошибки может говорить о том, что vino-server уже был автоматически запущен, и запускать его вручную или прописывать в автозапуск нет необходимости.


Еще одна тонкость: если пользователю, которому назначен автологин, выставлены какие-либо мандатные права, то для него автоматического автостарта VNC-сервера vino происходить не будет. Как это реализовано - не совсем ясно. Ручной запуск VNC сервера от пользователя с выставленным через MAC уровнем доступа так же происзводиться не будет. Как для такого пользователя решить проблему запуска VNC - пока неясно.



Клиент


По заявлениям техподдержки Astra Linux, для работы с сервером vino служит VNC-клиент vncviewer, входящий в пакет tigervnc-viewer. Его инсталляция происходит следующей командой:



apt install tigervnc-viewer



Запуск и подключение к удаленному серверу происходит командой:



vncviewer имя_или_адрес_хоста



Различными опциями vncviewer можно снизить нагрузку на сеть, если выбрать уровень компрессии, глубину цвета, формат передаваемых данных. Список опций доступен по команде vncviewer --help.


Так же в этом разделе:
 
MyTetra Share v.0.67
Яндекс индекс цитирования