Настройка VNC-сервера

Порой возникает необходимость к удаленному доступу до графического интерфейса компьютера.

Для Linux оптимальным решением такой задачи является VNC.

В стандартных репозиториях Дебиана много различных VNC-серверов, а различия в их настройке не очень существенны. Разберем настройку VNC-сервера xtigervnc, т.к. он является наиболее гибким в настройке и не имеет ряда проблем с совместимостью приложений (так, в tightvnc не всегда корректно отображается кодировка на сервере, это связано с проблемами совместимости между библиотеками tightvnc и qt). Доступ к серверу должен быть у одного и уже имеющегося реального пользователя системы (если нет, или нужен отдельный пользователь, его можно создать).

Установка из репозитория производится стандартным способом:

Запуск сервера производится командой:

При первом запуске сервер запросит задать пароль для доступа к рабочему столу.

После запуска будет выведено сообщение, что сервер успешно запущен, и номер дисплея, на котором он работает.

Остановка сервера производится командой

где 1 — это номер дисплея.

Следующий шаг — создание сервиса systemdдля автоматического запуска сервера при старте системы. Для этого проще всего написать скрипт, запускающий сервер, и указать его в сервисе как команду запуска.

Пусть скрипт называется myvnc и располагается в /usr/local/bin

Тело скрипта:

Сервис systemd должен располагаться в каталоге: /lib/systemd/system/

Пусть он называется vncserver.service

Тело:

Где в строке User после = необходимо указать имя пользователя,от имени которого будет работать сервер.

После написания скриптов, остается включить сервис командой:

И можно его останавливать или перезапускать так же, как и любой другой системный сервис, командой

На этом стандартная настройка VNC-сервера закончена. Но иногда может возникнуть ситуация, когда в VNC-сессии одного пользователя нужно запустить какое-то графическое приложение от имени другого (в т.ч. от root). По умолчанию, доступ к дисплею есть только у владельца VNC, то есть того, под чьим именем происходит подключение к серверу. Чтобы дать другому пользователю право запуска графических приложений и доступа к его дисплею, в домашнем каталоге пользователя (владельца сервера) в файле .bashrc нужно добавить строчку:

Xhost — утилита управления дисплеями. + SI открывает доступ, далее следует указание, кому — локальному пользователю, в данном случае root. Так же можно открыть доступ и группе пользователей, или наоборот запретить. Более подробную информацию о ключах утилиты можно найти в её мануале.

Источники:

  1. https://habr.com/company/ua-hosting/blog/273201/
  2. https://wiki.archlinux.org/index.php/TigerVNC
  3. https://askubuntu.com/questions/115675/xhost-setting-at-boot

Sakura

Leave a Reply

Your email address will not be published.