Обновлено
•
Чтение за 7 минут

В этом руководстве описаны шаги, необходимые для установки и настройки сервера VNC в Ubuntu 18.04. Мы также покажем вам, как безопасно подключиться к серверу VNC через туннель SSH.
Virtual Network Computing (VNC) — это графическая система общего доступа к рабочему столу, которая позволяет удаленно использовать клавиатуру и мышь. управлять другим компьютером. Это альтернатива протоколу удаленного рабочего стола (RDP) Microsoft с открытым исходным кодом.
Предварительные требования #
Прежде чем продолжить обучение, убедитесь, что вы вошли в систему как пользователь с привилегиями sudo.
Установка среды рабочего стола #
На большинстве серверов среда рабочего стола не установлена, поэтому мы начнем с установки облегченной среды рабочего стола .
В репозиториях Ubuntu доступно несколько окружений рабочего стола (DE). Мы будем устанавливать Xfce. Это быстрая, стабильная и легкая среда рабочего стола, что делает ее идеальной для использования на удаленном сервере.
Введите следующие команды для установки Xfce на свой сервер:
sudo apt update
sudo apt install xfce4 xfce4-goodies xorg dbus-x11 x11-xserver-utils
В зависимости от вашего система, загрузка и установка пакетов Xfce может занять некоторое время.
Установка VNC-сервера #
В репозиториях Ubuntu также есть несколько различных VNC-серверов, таких как TightVNC, TigerVNC и x11vnc. Каждый сервер VNC имеет свои сильные и слабые стороны с точки зрения скорости и безопасности.
Мы будем устанавливать TigerVNC. Это активно обслуживаемый высокопроизводительный сервер VNC.
Введите следующую команду для установки TigerVNC на свой сервер Ubuntu:
sudo apt install tigervnc -standalone-server tigervnc-common
Теперь, когда сервер VNC установлен, следующим шагом будет создание начальной конфигурации и установка пароля. Не используйте sudo при запуске команды vncserver
:
vncserver
Вы будете предлагается ввести и подтвердить пароль, а также указать, следует ли установить его как пароль только для просмотра. Если вы решите установить пароль только для просмотра, пользователь не сможет взаимодействовать с экземпляром VNC с помощью мыши и клавиатуры.
Вам потребуется пароль для доступа к вашим рабочим столам.Пароль: Подтвердить: Вы хотите ввести пароль только для просмотра (да/нет)? n/usr/bin/xauth: file/home/linuxize/.Xauthority не существует Новый рабочий стол 'server2.linuxize.com:1 (linuxize)' по адресу: 1 на компьютере server2.linuxize.com Запуск приложений, указанных в/etc/X11/ Файл Xvnc-sessionLog:/home/linuxize/.vnc/server2.linuxize.com:1.log Используйте xtigervncviewer -SecurityTypes VncAuth -passwd/home/linuxize/. vnc/passwd: 1 для подключения к VNC-серверу.
При первом запуске команды vncserver
она создает и сохраняет файл паролей. в ~/.vnc
. Этот каталог будет создан, если он отсутствует.
Обратите внимание на : 1
после имени хоста в выходных данных выше. Это указывает номер порта дисплея, на котором работает сервер vnc. В нашем случае сервер работает на TCP-порту 5901
(5900 + 1). Если вы создаете второй экземпляр с vncserver
, он будет работать на следующем свободном порте, то есть : 2
, что означает, что сервер работает на порту 5902
(5900 + 2).
Важно помнить, что при работе с VNC-серверами : X
является портом отображения который относится к 5900 + X
.
Перед тем, как перейти к следующему шагу, остановите экземпляр VNC с помощью команды vncserver
с параметр -kill
и номер сервера в качестве аргумента. В этом примере сервер работает на порту 5901 (: 1
), поэтому мы остановим его с помощью:
vncserver -kill: 1
Удаление идентификатора процесса Xtigervnc 7264 ... успешно!
Настройка сервера VNC №
Теперь, когда на сервере установлены и Xfce, и TigerVNC, нам нужно настроить TigerVNC для использования Xfce. Для этого создайте следующий файл:
nano ~/.vnc/xstartup
#!/bin/shunset SESSION_MANAGERunset DBUS_SESSION_BUS_ADDRESSexec startxfce4
Сохраните и закройте файл. Приведенные выше команды будут автоматически выполняться при каждом запуске или перезапуске сервера TigerVNC.
Файл ~/.vnc/xstartup
также должен иметь разрешения на выполнение. Выполните следующую команду chmod
, чтобы убедиться в правильности разрешений:
chmod u + x ~/.vnc/xstartup
Если вам нужно передать дополнительные параметры серверу VNC, создайте файл с именем config
и добавьте по одному параметру в каждой строке. Вот пример:
geometry = 1920x1080dpi = 96
Создание файла модуля Systemd #
Создайте файл модуля systemd, чтобы запускать, останавливать и перезапускать службу VNC по мере необходимости, как и любую другую службу systemd.
Откройте текстовый редактор, скопируйте и вставьте в него следующую конфигурацию. Обязательно измените имя пользователя в строке 7, чтобы оно соответствовало вашему имени пользователя.
sudo nano/etc/systemd/system/vncserver@.service
[Unit] Описание = Служба удаленного рабочего стола (VNC) After = syslog.target network.target [Service] Тип = simpleUser = linuxizePAMName = loginPIDFile =/home/% u/.vnc/% H% i. pidExecStartPre =/bin/sh -c '/usr/bin/vncserver -kill:% i>/dev/null 2> & 1 || : 'ExecStart =/usr/bin/vncserver:% i -geometry 1440x900 -alwaysshared -fgExecStop =/usr/bin/vncserver -kill:% i [Установить] WantedBy = multi-user.target
Сохраните и закройте файл.
Сообщите systemd, что мы создали новый файл модуля с помощью:
sudo systemctl daemon-reload
Следующим шагом является включение файла модуля с помощью следующей команды:
sudo systemctl enable vncserver @ 1. служба
Число 1
после знака @
определяет порт отображения, на котором работает служба VNC. будет работать. Это означает, что сервер VNC будет прослушивать порт 5901
, как мы обсуждали в предыдущем разделе.
Запустите службу VNC, выполнив:
sudo systemctl start vncserver@1.service
Убедитесь, что служба успешно запущена:
sudo systemctl status vncserver@1.service
● vncserver@1.service - служба удаленного рабочего стола (VNC) Загружено: загружено (/etc/systemd /system/vncserver@.service; непрямой; предустановка поставщика: включено) Активно: активно (работает) с Thu 2018-08-16 19:05:54 UTC; 4с назад Процесс: 9893 ExecStartPre =/bin/sh -c/usr/bin/vncserver -kill: 1>/dev/null 2> & 1 || : (code = exited, status = 0/SUCCESS) Основной PID: 9900 (vncserver) Задачи: 0 (ограничение: 507) CGroup:/system.slice/system-vncserver.slice/vncserver@1.service ‣ 9900/usr/ bin/perl/usr/bin/vncserver: 1 -geometry 1440x900 -alwaysshared -fg
Подключение к серверу VNC #
VNC не является зашифрованным протокол и может подвергаться перехвату пакетов. Рекомендуемый подход — создать туннель SSH, который будет безопасно перенаправлять трафик с вашего локального компьютера на порт 5901 на сервер на том же порту.
Настроить туннелирование SSH в Linux и macOS #
Если вы используете Linux, macOS или любую другую операционную систему на основе Unix на своем компьютере, вы можете легко создать туннель SSH с помощью следующей команды:
ssh -L 5901: 127.0.0.1: 5901 -N -f -l username server_ip_address
Вам будет предложено ввести пароль пользователя.
Не забудьте заменить username
и server_ip_address
своим именем пользователя и IP-адресом вашего сервера.
Настройте SSH Туннелирование в Windows #
Если вы используете Windows, вы можете настроить SSH-туннелирование с помощью SSH-клиента PuTTY.
Откройте Putty и введите IP-адрес вашего сервера в поле Имя хоста или IP-адрес .

В поле меню Connection
разверните SSH
и выберите Туннели
. Введите порт сервера VNC ( 5901
) в поле Исходный порт
и введите IP-адрес_сервера: 5901
в поле Destination
и нажмите кнопку Добавить
, как показано на изображении ниже:

Вернитесь на страницу Сеанс
, чтобы сохранить настройки, чтобы вам не приходилось вводить их каждый раз. На удаленном сервере выберите сохраненный сеанс и нажмите кнопку Открыть
.
Подключение с помощью Vncviewer #
Теперь, когда Туннель SSH создан, пора открыть Vncviewer и подключиться к VNC-серверу по адресу localhost: 5901
.
Вы можете использовать любую программу просмотра VNC, например TigerVNC, TightVNC, RealVNC, UltraVNC, Vinagre и VNC Viewer для Google Chrome.
Мы будем использовать TigerVNC. Откройте средство просмотра, введите localhost: 5901
и нажмите кнопку Connect
.

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

Вы можете начать взаимодействие с удаленным рабочим столом XFCE со своего локального компьютера, используя клавиатуру и мышь. .
Заключение #
К настоящему времени у вас должен быть запущен и запущен сервер VNC, и вы можете легко управлять своим сервером Ubuntu 18.04 с локального настольного компьютера, используя простой для использования графического интерфейса.
Чтобы настроить сервер VNC для запуска отображения для более чем одного пользователя, создайте начальную конфигурацию и установите пароль с помощью vncserver
команда. Вам также нужно будет создать новый служебный файл, используя другой порт.
Не стесняйтесь оставлять комментарий, если у вас есть какие-либо вопросы.
сообщить об этом объявлении