Установка и настройка VNC на сервере Ubuntu 14.04

VNC (или Virtual Network Computing) – это система удаленного доступа, которая позволяет подключиться к рабочему столу удаленного сервера. VNC упрощает управление файлами, программным обеспечением и настройками удаленного сервера, что особенно важно для пользователей, которые еще ​​не научились работать с командной строкой.

Данное руководство продемонстрирует установку VNC на сервер Ubuntu 14.04 и создание безопасного подключения при помощи SSH-туннеля. В руководстве используется VNC-сервер TightVNC, быстрый и легкий пакет дистанционного управления. Этот пакет обеспечит надежность и стабильность соединения даже при слабых сигналах сети.

Требования

Чтобы следовать руководству, понадобится предварительно установленный и настроенный сервер Ubuntu 14.04 и учетная запись пользователя (не root) с расширенными привилегиями sudo. За дополнительными инструкциями обратитесь к этой статье.

Установите SSH-подключение к серверу и приступайте к установке VNC.

1: Установка среды рабочего стола и VNC-сервера

По умолчанию большинство серверных установок Linux поставляются без графической среды. В таком случае нужно для начала установить такую среду. В этом руководстве показано, как установить знакомую большинству пользователей среду XFCE4.

Загрузить пакеты XFCE и TightVNC можно из программного репозитория Ubuntu с помощью apt:

sudo apt-get update
sudo apt-get install xfce4 xfce4-goodies tightvncserver

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

vncserver

Примечание: после установки пароля доступа будет предложено ввести пароль с функцией «Только просмотр» (view-only password). Пользователи, которые входят при помощи такого пароля, не смогут управлять VNC. Это очень полезная опция, которая позволяет использовать продемонстрировать VNC-сервер для демонстрации.

Команда vncserver завершит установку VNC, создав стандартные конфигурационные файлы и необходимую серверу информацию о соединении. Когда все пакеты будут установлены, приступайте к настройке VNC-сервера и графического рабочего стола.

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

Для начала нужно задать команды, которые VNC-сервер должен выполнять при запуске. Эти команды находятся в конфигурационном файле xstartup. Такой файл был предварительно загружен на сервер во время установки, но для рабочего стола XFCE нужны другие команды.

После установки VNC-сервер по умолчанию запускается на порту 5901. Этот порт называется display port (порт дисплея), VNC ссылается на него с помощью символов :1.  VNC позволяет запускать несколько экземпляров на других портах (как :2, :3 и т.д.). При работе с серверами VNC необходимо помнить, что :x – это порт дисплея, который задается как 5900+x.

На данном этапе настройки серверов VNC нужно изменить; для начала остановите сервер VNC, запущенный на порту 5901:

vncserver -kill :1

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

mv ~/.vnc/xstartup ~/.vnc/xstartup.bak

Теперь откройте файл xstartup в nano:

nano ~/.vnc/xstartup

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

#!/bin/bash
xrdb $HOME/.Xresources
startxfce4 &

Первая команда в файле(xrdb $HOME/.Xresources) говорит фреймворку GUI VNC-сервера читать файл .Xresources. В этот файл пользователь может вносить изменения настроек графического рабочего стола (например, устанавливать цвет терминала, темы курсора и рендеринг шрифтов). Вторая команда просто запускает графическое ПО для удобного управления сервером.

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

sudo chmod +x ~/.vnc/xstartup

3: Создание файла сервиса VNC

Чтобы с легкостью контролировать новый сервер VNC, нужно настроить его как сервис Ubuntu. Это позволит запускать, останавливать и перезапускать VNC-сервер по мере необходимости.

Для начала откройте новый файл сервиса в /etc/init.d с помощью nano:

sudo nano /etc/init.d/vncserver

Первый блок данных необходим для объявления некоторых общих настроек VNC (например, имени пользователя и разрешения дисплея).

#!/bin/bash
PATH="$PATH:/usr/bin/"
export USER="user"
DISPLAY="1"
DEPTH="16"
GEOMETRY="1024x768"
OPTIONS="-depth ${DEPTH} -geometry ${GEOMETRY} :${DISPLAY} -localhost"
. /lib/lsb/init-functions

Не забудьте заменить слово user именем пользователя с расширенными привилегиями (не root), также можно изменить разрешение дисплея (замените значение 1024×768).

Затем нужно задать команды для управления новым сервисом. Следующий блок кода включает команду, необходимую для запуска сервера VNC, и ее обратную связь (ключевое слово команды start).

case "$1" in
start)
log_action_begin_msg "Starting vncserver for user '${USER}' on localhost:${DISPLAY}"
su ${USER} -c "/usr/bin/vncserver ${OPTIONS}"
;;

Следующий блок создает ключевое слово команды stop, которое позволяет остановить VNC-сервер.

stop)
log_action_begin_msg "Stopping vncserver for user '${USER}' on localhost:${DISPLAY}"
su ${USER} -c "/usr/bin/vncserver -kill :${DISPLAY}"
;;

Заключительный блок кода создает ключевое слово команды restart, которая, по сути, является комбинацией двух предыдущих команд:

restart)
$0 stop
$0 start
;;
esac
exit 0

Внеся все эти блоки в скрипт сервиса, сохраните и закройте файл. Сделайте этот скрипт сервиса исполняемым, чтобы иметь возможность использовать только что созданные команды.

sudo chmod +x /etc/init.d/vncserver

Теперь попробуйте использовать сервис, выполнив команду запуска start:

sudo service vncserver start

4: Подключение к рабочему столу VNC

Чтобы протестировать сервер VNC, нужно использовать клиента, который поддерживает соединения VNC через туннели SSH. При работе с Windows можно использовать TightVNC, RealVNC или UltraVNC. В системе Mac OS X можно использовать встроенную функцию Screen Sharing или кросс-платформенное приложение (например, RealVNC).

Сначала нужно создать SSH-подключение на локальном компьютере, которое будет безопасно пересылать подключения localhost на VNC-сервер. В Linux и OS X это можно сделать через терминал с помощью следующей команды:

ssh -L 5901:127.0.0.1:5901 -N -f -l user server_ip_address

Примечание: замените заполнители user и server_ip_address своим именем и IP.

При работе с графическим клиентом SSH (например, PuTTY) используйте server_ip_address как IP соединения и установите localhost:5901 в качестве нового пересылаемого порта в настройках SSH-туннелирования программы.

Затем можно использовать VNC Viewer для подключения к серверу VNC на localhost:5901. Не забудьте указать :5901 в конце, так как это единственный порт, по которому доступен сервер VNC.

После подключения появится стандартный рабочий стол XFCE, готовый к настройке и использованию!

Убедившись, что подключения VNC работают должным образом, внесите сервис VNC в список стандартных сервисов, чтобы он автоматически запускался при запуске сервера:

sudo update-rc.d vncserver defaults

Заключение

Итак, теперь на сервере Ubuntu 14.04 настроен и запущен безопасный VNC-сервер. Теперь у вас есть возможность управлять файлами, программами и настройками сервера при помощи удобного в использовании графического интерфейса.

Tags: , , , , , , , , , ,

1 комментарий

Добавить комментарий