Поиск по сайту:

Как установить и настроить VNC в Ubuntu 16.04


###Введение

VNC, или «Виртуальные сетевые вычисления», представляет собой систему подключения, которая позволяет вам использовать клавиатуру и мышь для взаимодействия с графической средой рабочего стола на удаленном сервере. Это упрощает управление файлами, программным обеспечением и настройками на удаленном сервере. пользователи, которые еще не знакомы с командной строкой.

В этом руководстве мы будем настраивать VNC на сервере Ubuntu 16.04 и безопасно подключаться к нему через туннель SSH. Сервер VNC, который мы будем использовать, — это TightVNC, быстрый и легкий пакет удаленного управления. Этот выбор гарантирует, что наше VNC-соединение будет плавным и стабильным даже при медленном интернет-соединении.

## Предпосылки

Для выполнения этого урока вам потребуется:

  • Капля Ubuntu 16.04, настроенная с помощью учебника по начальной настройке сервера Ubuntu 16.04, который включает в себя наличие пользователя sudo без полномочий root. Обратите внимание, что это руководство можно выполнить с использованием дроплета любого размера, но VNC, построенный на дроплете меньшего размера, может иметь больше ограничений по функциональности, чем дроплет большего размера.
  • Локальный компьютер с установленным клиентом VNC, который поддерживает соединения VNC через туннели SSH. Если вы используете Windows, вы можете использовать TightVNC, RealVNC или UltraVNC. Пользователи Mac OS X могут использовать встроенную программу общего доступа к экрану или кроссплатформенное приложение, такое как RealVNC. Пользователи Linux могут выбирать из множества вариантов: vinagre, krdc, RealVNC, TightVNC и другие.

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

По умолчанию дроплет Ubuntu 16.04 не поставляется с графической средой рабочего стола или установленным сервером VNC, поэтому мы начнем с их установки. В частности, мы установим пакеты для последней версии среды рабочего стола Xfce и пакет TightVNC, доступный в официальном репозитории Ubuntu.

На своем сервере установите пакеты Xfce и TightVNC.

  1. sudo apt-get update
  2. sudo apt install xfce4 xfce4-goodies tightvncserver

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

  1. vncserver

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

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

##Шаг 2 — Настройка VNC-сервера

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

Когда VNC настраивается впервые, он запускает экземпляр сервера по умолчанию на порту 5901. Этот порт называется портом дисплея и обозначается VNC как :1. VNC может запускать несколько экземпляров на других портах дисплея, например :2, :3 и т. д. При работе с серверами VNC помните, что :X это порт дисплея, который ссылается на 5900+X.

Поскольку мы собираемся изменить настройку сервера VNC, нам нужно сначала остановить экземпляр сервера VNC, работающий на порту 5901.

  1. vncserver -kill :1

Вывод должен выглядеть так, с другим PID:

Output
Killing Xtightvnc process ID 17648

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

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

Теперь создайте новый файл xstartup с помощью nano или вашего любимого текстового редактора.

  1. nano ~/.vnc/xstartup

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

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

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

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

  1. sudo chmod +x ~/.vnc/xstartup

Теперь перезапустите сервер VNC.

  1. vncserver

Сервер должен быть запущен с выводом, подобным этому:

Output
New 'X' desktop is your_server_name.com:1 Starting applications specified in /home/sammy/.vnc/xstartup Log file is /home/sammy/.vnc/liniverse.com:1.log

##Шаг 3 — Тестирование рабочего стола VNC

На этом этапе мы проверим возможность подключения вашего VNC-сервера.

Во-первых, нам нужно создать SSH-соединение на вашем локальном компьютере, которое безопасно перенаправляется на соединение localhost для VNC. Вы можете сделать это через терминал в Linux или OS X с помощью следующей команды. Не забудьте заменить user и server_ip_address на имя пользователя sudo без полномочий root и IP-адрес вашего сервера.

  1. ssh -L 5901:127.0.0.1:5901 -N -f -l username server_ip_address

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

Теперь вы можете использовать клиент VNC, чтобы попытаться подключиться к серверу VNC по адресу localhost:5901. Вам будет предложено пройти аутентификацию. Правильный пароль — тот, который вы установили на шаге 1.

После подключения вы должны увидеть рабочий стол Xfce по умолчанию. Это должно выглядеть примерно так:

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

##Шаг 4 — Создание служебного файла VNC

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

Сначала создайте новый юнит-файл с именем /etc/systemd/system/vncserver@.service с помощью вашего любимого текстового редактора:

  1. sudo nano /etc/systemd/system/vncserver@.service

Скопируйте и вставьте в него следующее. Обязательно измените значение User и имя пользователя в значении PIDFILE, чтобы они соответствовали вашему имени пользователя.

/etc/systemd/system/vncserver@.service
[Unit] Description=Start TightVNC server at startup After=syslog.target network.target [Service] Type=forking User=sammy PAMName=login PIDFile=/home/sammy/.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

Сохраните и закройте файл.

Затем сообщите системе о новом юнит-файле.

  1. sudo systemctl daemon-reload

Включите файл модуля.

  1. sudo systemctl enable vncserver@1.service

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

  1. vncserver -kill :1

Затем запустите его так же, как и любую другую службу systemd.

  1. sudo systemctl start vncserver@1

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

  1. sudo systemctl status vncserver@1

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

vncserver@1.service - TightVNC server on Ubuntu 16.04
   Loaded: loaded (/etc/systemd/system/vncserver@.service; enabled; vendor preset: enabled)
   Active: active (running) since Mon 2016-04-25 03:21:34 EDT; 6s ago
  Process: 2924 ExecStop=/usr/bin/vncserver -kill :%i (code=exited, status=0/SUCCESS)

...

 systemd[1]: Starting TightVNC server on Ubuntu 16.04...
 systemd[2938]: pam_unix(login:session): session opened for user finid by (uid=0)
 systemd[2949]: pam_unix(login:session): session opened for user finid by (uid=0)
 systemd[1]: Started TightVNC server on Ubuntu 16.04.

##Заключение

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