Это обновленная версия статьи для актуальных версий Ubuntu 16.04 и 18.04 доступных для предустановки при заказе VPS серверов на хостинге Siteko
Все действия на заказанном VDS необходимо выполнять в консоли, зайдя на VDS по протоколу SSH
Для начала необходимо обновить репозитории Ubuntu:
$ sudo apt-get update && apt-get upgrade
Установка рабочего стола Xfce и VNC сервера.
Начать нужно с установки графического интерфейса (GUI ) рабочего стола т.к. на установленном по умолчанию шаблоне операционной системы это программное обеспечение не установлено
Установить лучше легкую и быструю графическую оболочку Xfce и производительный VNC сервер TightVNC. Существуют и другие графические оболочки (Gnome, KDE и др.) и VNC серверы - TigerVNC и x11vnc. Но мы рассмотрим установку и использование именно Xfce и TightVNC
Выполним в консоли команду:
$ sudo apt-get install xfce4 xfce4-goodies tightvncserver
В процессе установки вам будет предложены выбрать язык дополнительной раскладки клавиатуры и способ переключения с основной на дополнительную раскладку. Процесс установки займет некоторое время в зависимости от конфигурации вашего виртуального сервера
На этом установка рабочего стола Xfce и VNC сервера завершены.
Настройка VNC сервера TightVNC
Для начальной конфигурации VNC сервера и установки пароля нужно выполнить команду:
$ vncserver
На первом шаге будет создан пароль доступа к VNC серверу.
На втором шаге будет запрошено создание пароля просмотра:
Would you like to enter a view-only password (y/n)?
Нужно ответить отрицательно - n. В противном случае дисплей VNC сервера будет доступен только для просмотра без возможности управлять мышью и клавиатурой.
Каждый дисплей на VNC сервере работает на своем порту и обозначается сервером как :1 - порт 5901, :2 - порт 5902 и т.д.
Необходимо остановить запущенный vncserver на порту 5901 командой:
$ vncserver -kill :1
sudo apt-get install mc
. После установки Midnight Commander станет доступен редактор файлов mcedit.
Конфигурационный файл VNC сервера xstartup
, находящийся в домашней директории пользователя в поддиректории .vnc
, указывает какие команды нужно выполнять при запуске VNC сервера.
Переименуем конфигурационный файл созданный по умолчанию и создадим свой.
$ mv ~/.vnc/xstartup ~/.vnc/xstartup.bak
$ mcedit ~/.vnc/xstartup
Конфигурационный файл необходимо привести к виду:
#!/bin/bash
xrdb $HOME/.Xresources
startxfce4 &
Первая команда задействует пользовательский файл настроек .Xresources
, а вторая запускает графический интерфейс Xfce.
Необходимо сделать файл исполняемым:
$ sudo chmod +x ~/.vnc/xstartup
Запустим сервер VNC:
$ vncserver
Если сервер запустился вы увидите в консоли сообщение похожее на это:
New 'X' desktop is vnc:1
Starting applications specified in /root/.vnc/xstartup
Log file is /root/.vnc/vnc:1.log
Подключение к удаленному рабочему столу VNC
Для подключения к удаленному рабочему столу Ubuntu с установленным и настроенным VNC сервером, в нашем примере, будем использовать VNC клиент TightVNC Viewer для Windows
Скачать VNC клиент TightVNC можно с сайта разработчиков:
https://www.tightvnc.com/download.php
Bли с нашего сайта:
Установим программу TightVNC к себе на компьютер
На этапе выбора типа установки - Choose Setup Type, необходимо выбрать Custom:
В следующем окне нужно отключить установку TightVNC Server оставить только клиент TightVNC Viewer:
Таким образом на локальный компьютер установится только клиент TightVNC, т.к. сервер на на локальной машине не нужен.
Теперь уже можно запустить установленный TightVNC Viewer
В поле Remote Host нужно ввести IP адрес сервера с ранее установленным TightVNC Server и порт на котором висит наш сконфигурировнный ранее дисплей :1 5901. IP адрес и порт отделяются двойным двоеточием ip_adress::5901
На следующем шаге нужно ввести пароль созданный нами при конфигурации VNC сервера и подключится к удаленному рабочему столу Ubuntu вашего VPС сервера.
Создание systemd сервиса VNC
Мы уже подключились к удаленному рабочему столу VNC на VPS с операционной системой Ubuntu, но настройка сервера на этом не завершена.
Необходимо настроить vncserver как сервис systemd для того, чтобы он запускался , останавливался и перезапускался как любой другой сервис. Так же лучше, чтобы он запускался автоматически при перезагрузке нашего VPS сервера.
С помощью текстового редактора создадим файл сервиса /etc/systemd/system/vncserver@.service
Выполните в консоли SSH команду:
$ mcedit /etc/systemd/system/vncserver@.service
Скопируем в содержимое файла:
[Unit]
Description=Start TightVNC server at startup
After=syslog.target network.target
[Service]
Type=forking
User=root
PAMName=login
PIDFile=/root/.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
Сохраните созданный юнит-файл и выйдите из редактора. Клавиши F2
и F10
последовательно.
Далее для того, чтобы дать системе знать о новом юните и активировать сервис выполняем в консоли команды:
$ sudo systemctl daemon-reload
$ sudo systemctl enable vncserver@1.service
Остановим сервис:
$ vncserver -kill :1
И запустим его как системную службу systemd:
$ sudo systemctl start vncserver@1
Статус запущенной службы:
$ sudo systemctl status vncserver@1
На этом настройки на стороне сервера завершены.
Шифрование VNC соединения с помощью SSH туннелирования TCP-соединений
VNC cоединение с удаленным сервером не защищено шифрование, а значит не безопасно.
Это можно исправить с помощью SSH туннелирования TCP-соединений
Воспользуемся знакомым SSH клиентом PuTTY
Создаем новое SSH соединение с VPS сервером стандартным образом, на 22 порту:
Переходим в настройки туннелирования по пути в меню слева- Connection - SSH - Tunnels
Source port - 5901
Destinations - IP_VNC-сервера:5901
Нажимаем кнопку Add
Переходим обратно в категорию Session и сохраняем настройки соединения под произвольным именем, заполнив поле Saved Sessions и нажав кнопку Save
Подключаемся к VPS серверу по SSH, нажав кнопку Open.
Далее запускаем клиент TightVNC Viewer и в качестве Remote Host уже указываем localhost::5901
Подключаемся к удаленному VNC серверу указав пароль от VNC сервера указанный при его конфигурации.
На этом настройка Desktop GUI на Ubuntu 16.04 и 18.04 с VNC доступом к удаленному рабочему столу закончена