Linux vnc server debian

Как установить и сконфигурировать VNC на Debian 11

Virtual Network Computing, или VNC, представляет из себя систему доступа, которая позволяет использовать клавиатуру и мышь локальной рабочей станции для управления рабочим столом удалённого сервера. Такой подход будет удобен тем, для кого использование командной строки при оперировании файлами, программным обеспечением и настройками на удалённом VPS не достаточно комфортно.

Для проведения работ мы будем использовать предварительно настроенный удалённый сервер, работающий на Debian 11. О том, как произвести первоначальную настройку VPS с Debian 11, в нашем справочнике есть отдельный мануал.

Для доступа к серверу вам понадобится локальная рабочая станция, которая поддерживает подключение по VNC поверх SSH-туннелей.

  • На рабочих станциях Windows вы можете использовать TightVNC, RealVNC или UltraVNC.
  • На компьютерах с macOS вы можете использовать либо встроенное приложение Screen Sharing, либо кросс-платформенное приложение типа RealVNC.
  • При использовании Linux-компьютера вы можете выбрать множество опций, включая vinagre , krdc , RealVNC или TightVNC.

В данном руководстве мы установим VNC на сервер, работающий под управлением Debian 11, и подключимся к нему через SSH-туннель. В качестве софта, которой обеспечит VNC-подключение, мы применим TightVNC. Также, мы разберёмся, как использовать клиента VNC на нашей локальной машине для взаимодействия с сервером через графическую оболочку.

Установка графической оболочки и сервера VNC

По умолчанию, серверная операционная система Debian 11 не содержит графической оболочки и установленного серверного сегмента VNC. Следовательно, начать необходимо именно с инсталляции данных элементов.

Существует множество возможностей, позволяющих запустить сервер VNC и рабочий стол на Debian 11. В данном руководстве мы установим графический интерфейс Xfce и приложение TightVNC. И то, и другое доступно для инсталляции из официального репозитория Ubuntu. И Xfce, и TightVNC известны как лёгкие и быстрые приложения, которые помогут нам убедиться в том, что подключение к серверу при помощи VNC может стабильно работать даже при медленном соединении с интернет-сетью.

Как всегда перед установкой нового ПО следует обновить списки пакетов:

Теперь запустите установку элементов графического интерфейса рабочего стола:

$ sudo apt install xfce4 xfce4-goodies

После завершения инсталляции Xfce запустите установку сервера TightVNS:

$ sudo apt install tightvncserver

На следующем шаге необходимо установить зависимость dbus-x11. Данное ПО позволит обеспечить правильное подключение к вашему VNC-серверу:

Чтобы завершить настройку сервера VNC после его установки в командной строке наберите команду vncserver . Это позволит установить безопасный пароль и создать исходные конфигурационные файлы:

Первый запуск сервера VNC - Как установить и сконфигурировать VNC на Debian 11

Команда попросит вас ввести и повторить пароль для доступа к удалённому серверу. Данный пароль должен быть длиной от шести до восьми символов. Пароли, содержащие более восьми символов, будут автоматически обрезаны. После проверки пароля система попросит вас о необходимости создания пароля, предназначенного исключительно для просмотра. Пользователи, подключающиеся с использованием такого рода пароля, не смогут управлять сервером при помощи мыши и клавиатуры. Данная опция может быть полезна для демонстрации возможности подключения к удалённому серверу при помощи VNC, но не является обязательной. В нашем примере мы отказались от создания пароля на просмотр, введя символ n . После чего процесс инсталляции закончит работу по установке дефолтной версии сервера VNC.

Читайте также:  Nvidia ion driver linux

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

Сервер VNC должен знать, какая команда должна запускаться при его запуске. А именно, VNC нужно знать, к какому графическому рабочему столу он должен подключиться.

Данные команды прописаны в конфигурационном файле xstartup в каталоге .vnc, который находится в вашей домашней директории. Скрипт, запускающийся при запуске, был создан при исполнении команды vncserver на предыдущем шаге. Таким образом, сейчас нам нужно создать свой собственный скрипт для запуска рабочего стола Xfce.

При первоначальной установке VNC, происходит запуск экземпляра сервера на порту 5901. Этот порт называется дисплей-порт и упоминается в системе удалённого доступа как :1 . VNC может запускать несколько интерфейсов на других дисплей-портах таких, как :2 , :3 и так далее.

Если вы собираетесь изменить конфигурацию сервера VNC, сначала остановите экземпляр сервера VNC, запущенный на порту 5901 , с помощью следующей команды:

В нашем примере вывод данной команды выглядит следующим образом:

Остановка экземпляра сервера VNC

Перед тем, как внести изменения в xstartup , есть смысл сохранить копию этого файла:

$ cd ~/.vnc $ mv xstartup xstartup.bak

Теперь нужно создать новый xstartup при помощи текстового редактора nano :

Команды, прописанные в этом файле, автоматически исполняются при каждом запуске и перезапуске сервера VNC. Нам нужно, чтобы VNC запустил рабочий стол, если он ещё не запущен. Для этого добавьте в xstartup следующие команды:

#!/bin/bash xrdb $HOME/.Xresources startxfce4 &
  • #!/bin/bash – это шебанг. В исполняемых текстовых файлах на платформах *nix шебанг сообщает системе, какому интерпретатору необходимо передать файл для исполнения. В нашем случае мы передаём файл на исполнение интерпретатору Bash. Это позволит исполнять каждую последующую строку в виде команд по порядку.
  • xrdb $HOME/.Xresources – команда, которая сообщает фреймворку графического интерфейса VNC о необходимости считывания пользовательского файла .Xresources . Используя данный файл пользователь может вносить изменения в текущие настройки рабочего стола, такие как цвета консоли, темы курсора или применяемые шрифты.
  • startxfce4 & – команда, сообщающая серверу о необходимости запуска Xfce. Xfce является средой, которая содержит всё программное обеспечение, необходимое для комфортного управления вашим сервером.

По окончании редактирования файла закройте его с сохранением внесённых изменений. Для этого в случае использования текстового редактора nano нажмите Ctrl X , затем Y и Enter . После чего необходимо будет присвоить данному файлу требуемые права и перезапустить сервер VNC:

$ sudo chmod +x ~/.vnc/xstartup $ vncserver

Вывод последней команды должен выглядеть примерно следующим образом:

Запуск сервера VNC

Остаётся только внести небольшое изменение в настройки брандмауэра, которое позволит открыть порт для входящих соединений VNC:

Читайте также:  Создать директорию linux terminal

Увидеть добавленное правило можно следующей командой:

Статус брандмауэра

Безопасное подключение рабочего стола VNC

Само по себе подключение через VNC не использует безопасных протоколов. Для того, чтобы подключение было безопасным, необходимо использовать SSH-туннель. При этом нужно сообщить клиенту VNC о том, что он должен использовать данный туннель вместо прямого подключения.

Для этого необходимо со своей локальной рабочей станции создать SSH-подключение, которое будет безопасно перенаправлять соединение VNC на localhost.

Сделать это можно двумя способами. Во-первых, при помощи командной строки или терминала. Это работает как на компьютерах с Windows, так и на рабочих станциях с Linux и macOS. Команда для запуска SSH-подключения выглядит следующим образом:

$ ssh -L 5901:127.0.0.1:5901 -C -N -l your-user your-server-IP-address

В данном случае команда ssh запускается со следующими опциями:

  • -L – данная опция определяет привязки портов. В нашей команде мы связываем порт 5901 на удалённом сервере с портом 5901 на локальном компьютере.
  • -C – этот ключ позволяет включить сжатие для того, чтобы минимизировать потребление ресурсов и повысить скорость соединения.
  • -N – данная опция сообщает команде ssh о том, что мы не хотим запускать команды удалённо.
  • Опция -l задаёт имя пользователя для удалённого входа в систему. В нашем примере таким пользователем является your-user . Соответственно, вам необходимо заменить your-user на имя учётной записи на вашем сервере, которая не является пользователем root . А также, вместо your-server-IP-address введите IP-адрес сервера, к которому производится подключение.

Следует также обратить внимание на то, что при выполнении этой команды в командной строке или терминале после ввода пароля пользователя команда не отобразит никакого вывода. Непосредственно графический интерфейс сервера необходимо запускать через клиента VNC. Для того, чтобы закрыть SSH-туннель, необходимо прервать выполнение данной команды. Например, в командной строке Windows это произойдёт при нажатии комбинации клавиш Ctrl C .

Другой способ организации SSH-туннеля подойдёт для тех, кто использует клиент PuTTY. В данном случае нужно подключиться к удалённому серверу через PuTTY, после чего на верхней панели подключения нажать правую кнопку мыши и перейти в строку Change Settings. :

Изменение настроек подключения через PuTTY

Здесь в окне Category перейдите Connection → SSH → Tunnels . Далее в разделе Options controlling SSH port forwarding в строку Source port введите 5901 , а в строку Destination – localhost:5901 . После чего последовательно нажмите кнопки Add и Apply :

Добавление SSH-туннеля в PuTTY

Таким образом, вы запустили туннель, который будет использовать клиент VNC. При этом не важно каким именно способом вы организовали запуск данного туннеля, через командную строку или посредством клиента PuTTY. В любом случае VNC будет подключаться к удалённому виртуальному серверу без прямого к нему подключения через IP-адрес вашего VPS. Для того, чтобы осуществить такого рода подключение, запустите на своей локальной станции клиентское приложение VNC и в строке для ввода IP-адреса удалённого хоста наберите localhost:5901 . Как мы уже упоминали выше, в нашем примере мы используем TightVNC:

Читайте также:  G lens для linux

Удалённый хост для подключения по VNC

Далее введите пароль для подключения по VNC, который вы указывали при первом запуске команды vncserver :

Пароль для подключения по VNC

В случае успешного подключения вам станет доступен графический интерфейс удалённого Debian-сервера:

Рабочий стол VPS через VNC - Как установить и сконфигурировать VNC на Debian 11

Запуск VNC как службы

На данном шаге мы настроим запуск сервиса VNC в качестве одной из служб systemd . В результате такой настройки вы сможете запускать, останавливать и перезапускать сервис как и любую другую службу на Linux-сервере. К тому же вы будете уверены, что сервис VNC самостоятельно запускается при включении и перезагрузке самого сервера.

Для начала необходимо перейти в директорию /etc/systemd/system/ и создать там новый unit-файл:

$ cd /etc/systemd/system $ sudo nano vncserver@.service

Символ @ в конце имени файла даст нам возможность передавать аргумент, который вы сможете использовать в конфигурации службы. Его использование поможет указать номер дисплей-порта VNC, который вы хотите использовать.

Далее добавьте в новый файл следующее содержимое:

[Unit] Description=Start TightVNC server at startup After=syslog.target network.target [Service] Type=forking User=your-user WorkingDirectory=/home/your-user PIDFile=/home/your-user/.vnc/%H:%i.pid ExecStartPre=-/usr/bin/vncserver -kill :%i > /dev/null 2>&1 ExecStart=/usr/bin/vncserver -depth 24 -geometry 1280x800 :%i ExecStop=/usr/bin/vncserver -kill :%i [Install] WantedBy=multi-user.target

Обратите внимание на строки User , WorkingDirectory и PIDFile . В этих строках замените your-user на имя вашей учётной записи, из-под которой будет осуществляться управление службой.

Команда в строке ExecStartPre производит остановку службы VNC, если она запущена. Команда в строке ExecStart запускает данную службу и устанавливает глубину цвета в 24 бита и разрешение 1280×800. Естественно, вы можете изменить эти стартовые настройки в соответствии с вашими потребностями.

По окончании редактирования файла закройте его сохранив внесённые изменения.

Далее, необходимо уведомить систему о появлении нового unit-файла и запустить его:

$ sudo systemctl daemon-reload $ sudo systemctl enable vncserver@1.service

Здесь цифра 1 , следующая за знаком @ , означает номер экрана, на котором появится сервис. В данном случае мы используем номер дисплей-порта :1 .

Теперь остановите текущий экземпляр сервера VNC:

После чего запустите его так, как запускается обычная служба systemd :

$ sudo systemctl start vncserver@1

Состояние запущенной службы можно посмотреть при помощи следующей команды:

$ sudo systemctl status vncserver@1

Если служба стартовала успешно, вывод данной команды будет выглядеть подобным образом:

Статус службы VNC - Как установить и сконфигурировать VNC на Debian 11

Также ваш сервер VNC будет запускаться при старте и перезагрузке системы.

Чтобы активировать SSH-туннель, используйте уже знакомую нам команду:

$ ssh -L 5901:127.0.0.1:5901 -C -N -l your-user your-server-IP-address

Соответственно, у вас также есть возможность подключиться к серверу по VNC с использованием localhost:5901 вместо его IP-адреса.

Заключение

Теперь у вас есть работающий безопасный сервер VNC на вашем VDS, управляемом операционной системой Debian 11. Это означает, что вы можете управлять своими файлами, каталогами и приложениями при помощи удобного и привычного графического интерфейса. Также вы можете удалённо запускать программное обеспечение, использующее графику, как, например, браузер для просмотра веб-страниц.

Источник

Оцените статью
Adblock
detector