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

Как настроить VNC-сервер в Debian 8


Введение

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

VNC полезен, когда вам нужна графическая среда рабочего стола для вашего сервера.

XFCE — это облегченная среда рабочего стола. Поскольку у него низкие требования к системным ресурсам и многие пользователи VNC знакомы с ним, в этом руководстве мы будем использовать XFCE. Однако вместо этого вы также можете использовать свою любимую среду рабочего стола, такую как Gnome или KDE.

В этом руководстве мы настроим сервер Debian 8, установим на него среду рабочего стола XFCE и подключим его через VNC. Кроме того, мы создадим сценарий запуска для VNC-сервера и защитим его через SSH.

Предпосылки

Пожалуйста, выполните следующие предварительные условия.

  • Debian 8 (или 8.1) Droplet с корневым доступом. 512 МБ ОЗУ достаточно для запуска VNC и XFCE, но вам может понадобиться капля большего размера в зависимости от того, что вы планируете делать с графическим интерфейсом.
  • Просмотрщик VNC (клиент) на вашем компьютере для подключения к вашему серверу. В этом руководстве мы будем использовать UltraVNC в Windows, но вы можете использовать и другие клиенты VNC. Скачать UltraVNC можно здесь. OS X поставляется со встроенным клиентом VNC под названием Screen Sharing.
  • Клиент SSH для установки безопасного соединения через SSH. Мы будем использовать PuTTY для Windows. Вы можете скачать PuTTY здесь. В OS X просто используйте встроенное приложение Terminal

Шаг 1 — Установка VNC и XFCE

На этом этапе мы установим VNC Server и среду рабочего стола XFCE с дополнительным программным обеспечением и пакетом значков.

Обновите списки пакетов вашего сервера:

  1. apt-get update

Обновите сами пакеты:

  1. apt-get -y upgrade

Затем мы установим tightvncserver и XFCE4 с некоторыми полезными надстройками и темой значков:

  1. apt-get install xfce4 xfce4-goodies gnome-icon-theme tightvncserver

По умолчанию браузер не установлен. Вы можете установить iceweasel (это переименованная версия Mozilla Firefox для Debian), если хотите получить доступ к Интернету через соединение VNC:

  1. apt-get install iceweasel

Шаг 2 — Создание пользователя VNC

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

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

  1. adduser vnc

Дайте пароль новому пользователю. Вы можете пропустить все остальные вопросы, просто нажав ENTER.

Установите sudo, выполнив эту команду:

  1. apt-get install sudo

Добавьте нового пользователя vnc в группу sudo, которая предоставит этому пользователю права на выполнение корневых команд.

  1. gpasswd -a vnc sudo

Переключимся на пользователя vnc:

  1. su - vnc

Шаг 3 — Запуск и остановка вашего VNC-сервера

Как наш недавно созданный пользователь vnc, мы можем запустить сервер VNC и проверить наше соединение.

Запустите VNC-сервер:

  1. vncserver

Поскольку вы впервые запускаете сервер, вам будет предложено установить пароль, который клиенты будут использовать для подключения. Запомните этот пароль на потом! Вы также можете установить пароль только для просмотра, который позволит пользователям видеть экран, но не взаимодействовать с ним. Пароли должны быть 6-8 символов.

Вы получите уведомление о вашем отображаемом номере при запуске сервера.

xauth:  file /home/vnc/.Xauthority does not exist

New 'X' desktop is vnc:1

Creating default startup script /home/vnc/.vnc/xstartup
Starting applications specified in /home/vnc/.vnc/xstartup
Log file is /home/vnc/.vnc/vnc:1.log

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

Не останавливайте сервер сейчас, но мы включаем команду остановки для справки.

Используйте эту команду, чтобы остановить сервер VNC на дисплее 1 (и порте 5901):

  1. vncserver -kill :1

:1 — это номер дисплея, который вы хотите убить.

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

Шаг 4 — Подключение из клиента VNC

Теперь вы можете подключиться к вашему VNC-серверу. Откройте локальный клиент VNC, который зависит от вашей операционной системы.

В Windows вы можете использовать UltraVNC здесь.

В OS X вы можете использовать встроенное приложение Screen Sharing или получить доступ к этому приложению через Safari. В Safari вы можете ввести vnc://your_server_ip:5901

В качестве адреса VNC-сервера введите your_server_ip:5901 и используйте пароль, который вы только что установили для своего VNC-подключения.

Вы можете нажать кнопку «Использовать конфигурацию по умолчанию» на экране приветствия XFCE, чтобы легко начать работу:

Теперь вы можете использовать свой удаленный рабочий стол!

Шаг 5 — Создание службы systemd для автоматического запуска сервера VNC

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

Во-первых, давайте убьем текущий экземпляр:

  1. vncserver -kill :1

Создайте простой скрипт для легкого управления и настройки нашего VNC-сервера:

Как пользователь vnc или другого пользователя sudo создайте файл сценария с помощью своего любимого текстового редактора.

  1. sudo nano /usr/local/bin/myvncserver

Точно добавьте это содержимое. Этот сценарий предоставляет VNC несколько параметров для запуска.

#!/bin/bash
PATH="$PATH:/usr/bin/"
DISPLAY="1"
DEPTH="16"
GEOMETRY="1024x768"
OPTIONS="-depth ${DEPTH} -geometry ${GEOMETRY} :${DISPLAY}"

case "$1" in
start)
/usr/bin/vncserver ${OPTIONS}
;;

stop)
/usr/bin/vncserver -kill :${DISPLAY}
;;

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

Вы можете изменить сценарий, чтобы изменить глубину цвета или разрешение вашего соединения VNC.

Если вы используете nano, вы можете сохранить файл с помощью CTRL+O и выйти с помощью CTRL+X.

Сделайте исполняемый файл:

  1. sudo chmod +x /usr/local/bin/myvncserver

Наш скрипт поможет нам легко изменять настройки и запускать/останавливать VNC-сервер.

При желании вы можете вызвать сценарий вручную, чтобы запустить/остановить VNC-сервер на порту 5901 с желаемой конфигурацией.

  1. sudo /usr/local/bin/myvncserver start
  2. sudo /usr/local/bin/myvncserver stop
  3. sudo /usr/local/bin/myvncserver restart

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

  1. sudo nano /lib/systemd/system/myvncserver.service

Скопируйте эти команды в служебный файл. Наш сервис просто вызовет сценарий запуска выше с пользователем vnc.

[Unit]
Description=Manage VNC Server on this droplet

[Service]
Type=forking
ExecStart=/usr/local/bin/myvncserver start
ExecStop=/usr/local/bin/myvncserver stop
ExecReload=/usr/local/bin/myvncserver restart
User=vnc

[Install]
WantedBy=multi-user.target

Теперь мы можем перезагрузить systemctl и включить наш сервис:

  1. sudo systemctl daemon-reload
  2. sudo systemctl enable myvncserver.service

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

  1. sudo systemctl start myvncserver.service
  2. sudo systemctl stop myvncserver.service
  3. sudo systemctl restart myvncserver.service

Теперь вы можете запустить VNC-сервер в качестве службы на своем дроплете.

Шаг 6 — Защита вашего VNC-сервера с помощью туннелирования SSH

По умолчанию соединения VNC не используют шифрование, поэтому для защиты сеанса рекомендуется использовать туннель SSH.

Для этого мы позволим нашему VNC-серверу работать только на локальном хосте.

Сначала остановите сервер VNC:

  1. sudo systemctl stop myvncserver.service

Отредактируйте сценарий конфигурации:

  1. sudo nano /usr/local/bin/myvncserver

Измените эту строку:

. . .

OPTIONS="-depth ${DEPTH} -geometry ${GEOMETRY} :${DISPLAY}"

. . .

Замените его на:

. . .

OPTIONS="-depth ${DEPTH} -geometry ${GEOMETRY} :${DISPLAY} -localhost"

. . .

Перезапустите VNC-сервер:

  1. sudo systemctl start myvncserver.service

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

Окна:

Мы будем использовать PuTTY для создания туннеля SSH, а затем подключимся через созданный нами туннель.

Откройте ПуТТИ.

В меню слева перейдите в раздел Connection->SSH->Tunnels.

В разделе «Добавить новый перенаправляемый порт» введите 5901 в качестве порта источника и localhost:5901 в качестве порта назначения.

Нажмите кнопку «Добавить».

Теперь вы можете перейти в раздел Session в левом меню.

Введите IP-адрес вашей капли в поле Имя хоста (или IP-адрес).

Нажмите кнопку Открыть, чтобы подключиться. Вы также можете сохранить эти параметры для последующего использования.

Войдите под своим пользователем vnc.

Держите окно PuTTY открытым, пока вы устанавливаете соединение VNC.

Теперь вы можете использовать программу просмотра VNC как обычно. Просто введите localhost::5901 в качестве адреса и сохраните ваше SSH-соединение в фоновом режиме.

ОС Х:

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

ssh vnc@your_server_ip -L 5901:localhost:5901

Аутентифицируйтесь как обычно для пользователя vnc для SSH. Затем в приложении «Общий экран» используйте localhost:5901.

Заключение

Теперь вы можете использовать общий удаленный рабочий стол на сервере Debian 8.

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