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

Вступление

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

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

Предпосылки

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

  • Дроплет Ubuntu 16.04, настраиваемый черезUbuntu 16.04 initial server setup tutorial, который включает наличие пользователя sudo без полномочий root. Обратите внимание, что этот учебник может быть выполнен с использованием капли любого размера, но VNC, построенный на капле меньшего размера, может иметь больше ограничений по функциональности, чем капля большего размера.

  • Локальный компьютер с установленным клиентом VNC, который поддерживает соединения VNC через туннели SSH. Если вы используете Windows, вы можете использовать TightVNC, RealVNC или UltraVNC. Пользователи Mac OS X могут использовать встроенную программу Screen Sharing или кросс-платформенное приложение, такое как RealVNC. Пользователи Linux могут выбирать из множества вариантов:vinagre,krdc, RealVNC, TightVNC и другие.

[[step-1 -—- install-the-desktop-environment-and-vnc-server]] == Шаг 1. Установка среды рабочего стола и сервера VNC

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

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

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

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

vncserver

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

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

[[step-2 -—- configuring-the-vnc-server]] == Шаг 2 - Настройка VNC-сервера

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

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

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

vncserver -kill :1

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

OutputKilling Xtightvnc process ID 17648

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

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

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

nano ~/.vnc/xstartup

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

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

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

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

sudo chmod +x ~/.vnc/xstartup

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

vncserver

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

OutputNew '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

[[step-3 -—- testing-the-vnc-desktop]] == Шаг 3. Тестирование рабочего стола VNC

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

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

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 по умолчанию. Это должно выглядеть примерно так:

VNC connection to Ubuntu 16.04 server

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

Files via VNC connection to Ubuntu 16.04

[[step-4 -—- created-a-vnc-service-file]] == Шаг 4. Создание файла службы VNC

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

Сначала создайте новый файл модуля с именем/etc/systemd/system/[email protected] с помощью вашего любимого текстового редактора:

sudo nano /etc/systemd/system/[email protected]

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

/etc/systemd/system/[email protected] [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

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

Затем сообщите системе о новом файле модуля.

sudo systemctl daemon-reload

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

sudo systemctl enable [email protected]

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

vncserver -kill :1

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

sudo systemctl start vncserver@1

Вы можете проверить, что это началось с этой командой:

sudo systemctl status vncserver@1

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

Выход

[email protected] - TightVNC server on Ubuntu 16.04
   Loaded: loaded (/etc/systemd/system/[email protected]; 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. Теперь вы сможете управлять своими файлами, программным обеспечением и настройками с помощью простого в использовании и знакомого графического интерфейса.

Related