- Как установить и настроить VNC в Ubuntu 18.04
- Подготовка
- Установка среды рабочего стола
- Установка VNC-сервера
- Настройка VNC-сервера
- Создание файла модуля Systemd
- Подключение к VNC-серверу
- Настроить SSH-туннелирование в Linux и macOS
- Настроить SSH-туннелирование в Windows
- Подключение с помощью Vncviewer
- Выводы
- Быстрая установка и настройка VNC в Ubuntu 20.04
- Требования
- 1: Установка среды рабочего стола и сервера VNC
- 2: Настройка сервера VNC
- 3: Безопасное подключение к VNC
- 4: Настройка VNC как сервиса systemd
- Заключение
Как установить и настроить VNC в Ubuntu 18.04
В этом руководстве описаны действия, необходимые для установки и настройки VNC-сервера в Ubuntu 18.04. Мы также покажем вам, как безопасно подключиться к серверу VNC через туннель SSH.
Virtual Network Computing (VNC) — это графическая система совместного использования рабочего стола, которая позволяет использовать клавиатуру и мышь для удаленного управления другим компьютером. Это альтернатива с открытым исходным кодом протоколу удаленного рабочего стола Microsoft (RDP).
Подготовка
Прежде чем продолжить обучение, убедитесь, что вы вошли в систему как пользователь с привилегиями sudo .
Установка среды рабочего стола
На большинстве серверов не установлена среда рабочего стола, поэтому мы начнем с установки облегченной среды рабочего стола.
В репозиториях Ubuntu доступно несколько окружений рабочего стола (DE). Мы будем устанавливать Xfce . Это быстрая, стабильная и легкая среда рабочего стола, что делает ее идеальной для использования на удаленном сервере.
Введите следующие команды для установки Xfce на ваш сервер:
В зависимости от вашей системы загрузка и установка пакетов Xfce может занять некоторое время.
Установка VNC-сервера
Также в репозиториях Ubuntu доступно несколько различных серверов VNC, таких как TightVNC , TigerVNC и x11vnc . Каждый сервер VNC имеет свои сильные и слабые стороны с точки зрения скорости и безопасности.
Мы будем устанавливать TigerVNC. Это активно обслуживаемый высокопроизводительный сервер VNC.
Введите следующую команду, чтобы установить TigerVNC на свой сервер Ubuntu:
Теперь, когда VNC-сервер установлен, следующим шагом будет создание начальной конфигурации и установка пароля. Не используйте sudo при запуске команды vncserver :
Вам будет предложено ввести и подтвердить пароль, а также указать, следует ли установить его как пароль только для просмотра. Если вы решите установить пароль только для просмотра, пользователь не сможет взаимодействовать с экземпляром VNC с помощью мыши и клавиатуры.
При первом vncserver команды vncserver она создает и сохраняет файл паролей в
/.vnc . Этот каталог будет создан, если он отсутствует.
Обратите внимание на :1 после имени хоста в выходных данных выше. Это указывает номер порта дисплея, на котором работает сервер vnc. В нашем случае сервер работает на TCP-порту 5901 (5900 + 1). Если вы создадите второй экземпляр с vncserver он будет работать на следующем свободном порту, например :2 , что означает, что сервер работает на порту 5902 (5900 + 2).
Важно помнить, что при работе с серверами VNC :X — это порт дисплея, который ссылается на 5900+X
Прежде чем перейти к следующему шагу, остановите экземпляр VNC с помощью команды vncserver с параметром -kill и номером сервера в качестве аргумента. В этом примере сервер работает на порту 5901 ( :1 ), поэтому мы остановим его с помощью:
Настройка VNC-сервера
Теперь, когда на сервере установлены и Xfce, и TigerVNC, нам нужно настроить TigerVNC для использования Xfce. Для этого создайте следующий файл:
Сохраните и закройте файл. Приведенные выше команды будут автоматически выполняться при каждом запуске или перезапуске сервера TigerVNC.
/.vnc/xstartup также должен иметь разрешения на выполнение. Выполните следующую команду chmod чтобы убедиться, что разрешения верны:
Если вам нужно передать дополнительные параметры серверу VNC, создайте файл с именем config и добавьте по одному параметру в каждой строке. Вот пример:
Создание файла модуля Systemd
Создайте файл модуля systemd, чтобы запускать, останавливать и перезапускать службу VNC по мере необходимости, как и любую другую службу systemd.
Откройте текстовый редактор, скопируйте и вставьте в него следующую конфигурацию. Обязательно измените имя пользователя в строке 7, чтобы оно соответствовало вашему имени пользователя.
Сохраните и закройте файл.
Сообщите systemd, что мы создали новый файл модуля с:
Следующим шагом является включение файла модуля с помощью следующей команды:
Число 1 после знака @ определяет порт дисплея, на котором будет работать служба VNC. Это означает, что сервер VNC будет прослушивать порт 5901 , как мы обсуждали в предыдущем разделе.
Запустите службу VNC, выполнив:
Убедитесь, что служба успешно запущена:
Подключение к VNC-серверу
VNC не является зашифрованным протоколом и может подвергаться перехвату пакетов. Рекомендуемый подход — создать туннель SSH, который будет безопасно перенаправлять трафик с вашего локального компьютера на порт 5901 на сервер на том же порту.
Настроить SSH-туннелирование в Linux и macOS
Если вы используете Linux, macOS или любую другую операционную систему на основе Unix на своем компьютере, вы можете легко создать туннель SSH с помощью следующей команды:
Вам будет предложено ввести пароль пользователя.
Не забудьте заменить username и server_ip_address своим именем пользователя и IP-адресом вашего сервера.
Настроить SSH-туннелирование в Windows
Если вы используете Windows, вы можете настроить SSH-туннелирование с помощью SSH-клиента PuTTY .
Откройте Putty и введите IP-адрес вашего сервера в поле Host name or IP address .
В меню « Connection разверните SSH и выберите « Tunnels . Введите порт сервера VNC ( 5901 ) в поле Source Port и введите server_ip_address:5901 в поле Destination и нажмите кнопку Add , как показано на изображении ниже:
Вернитесь на страницу Session чтобы сохранить настройки, чтобы не вводить их каждый раз. На удаленном сервере выберите сохраненный сеанс и нажмите кнопку « Open .
Подключение с помощью Vncviewer
Теперь, когда туннель SSH создан, пора открыть ваш Vncviewer и подключиться к VNC Server по адресу localhost:5901 .
Вы можете использовать любую программу просмотра VNC, такую как TigerVNC, TightVNC, RealVNC, UltraVNC, Vinagre и VNC Viewer для Google Chrome .
Мы будем использовать TigerVNC. Откройте средство просмотра, введите localhost:5901 и нажмите кнопку « Connect .
При появлении запроса введите пароль пользователя , и вы должны увидеть рабочий стол Xfce по умолчанию. Это будет выглядеть примерно так:
Вы можете начать взаимодействие с удаленным рабочим столом XFCE со своего локального компьютера, используя клавиатуру и мышь.
Выводы
К настоящему времени у вас должен быть запущен и запущен VNC-сервер, и вы можете легко управлять своим сервером Ubuntu 18.04 с локального настольного компьютера, используя простой в использовании графический интерфейс.
Чтобы настроить сервер VNC для запуска отображения для нескольких пользователей, создайте начальную конфигурацию и установите пароль с помощью команды vncserver . Вам также необходимо будет создать новый служебный файл, используя другой порт.
Не стесняйтесь оставлять комментарии, если у вас есть вопросы.
Быстрая установка и настройка VNC в Ubuntu 20.04
VNC (или Virtual Network Computing) – это система удалённого доступа, которая позволяет использовать клавиатуру и мышь для взаимодействия с графическим интерфейсом рабочего стола на удалённом сервере. При помощи VNC можно управлять файлами, программным обеспечением и настройками удалённого сервера, не обращаясь к командной строке.
Этот мануал поможет вам установить VNC с помощью TightVNC на виртуальный сервер Ubuntu 20.04 и настроить безопасное подключение при помощи SSH-туннеля. Затем мы используем клиент VNC на локальной машине, чтобы проверить взаимодействие с сервером через графический интерфейс рабочего стола.
Требования
- Сервер Ubuntu 20.04, настроенный по этому мануалу.
- Локальный компьютер с предустановленным клиентом VNC, который поддерживает VNC-соединения через SSH-туннель. Пользователи Windows могут установить TightVNC, RealVNC или UltraVNC. Пользователи MacOS могут обратиться к встроенному пакету Screen Sharing или использовать кроссплатформенные приложения (например, RealVNC). Пользователи Linux могут выбрать vinagre, krdc, RealVNC, TightVNC и т.п.
1: Установка среды рабочего стола и сервера VNC
Подключившись к серверу по SSH, обновите индекс пакетов:
sudo apt update
Чтобы установить на сервер необходимые пакеты, введите команду:
sudo apt install xfce4 xfce4-goodies
Теперь установите TightVNC:
sudo apt install tightvncserver
Чтобы завершить начальную настройку сервера VNC после его установки и выбрать надёжный пароль, используйте команду vncpasswd.
Команда предложит выбрать и подтвердить пароль:
You will require a password to access your desktops.
Password:
Verify:
Пароль должен включать от шести до восьми символов. Более длинные пароли будут автоматически сокращены до 8 символов.
Подтвердив свой пароль, вы сможете создать пароль только для просмотра. Он нужен для демонстрации VNC другим пользователям, потому его не обязательно устанавливать.
Если вы в будущем захотите изменить свой пароль или добавить пароль для просмотра, вы можете сделать это с помощью команды vncpasswd.
2: Настройка сервера VNC
Серверу VNC необходимо знать, какие команды выполнять при запуске. Эти команды должны находиться в файле xstartup в каталоге .vnc, который хранится в домашнем каталоге текущего пользователя. Скрипт запуска был создан командой vncserver на этапе установки, но вам нужно создать пользовательский скрипт для взаимодействия с Xfce.
Создайте новый файл xstartup:
Вставьте в него следующие команды:
#!/bin/bash
xrdb $HOME/.Xresources
startxfce4 &
При помощи первой команды, xrdb $HOME/.Xresources (она идет сразу после шебанга), GUI сервера VNC читает файл .Xresources. Вторая команда просто запускает Xfce.
Сохраните и закройте файл.
Теперь нужно сделать файл исполняемым:
Обратите внимание, команда включает опцию -localhost, которая связывает VNC-сервер с loopback интерфейсом вашего сервера. Это приведет к тому, что VNC будет разрешать подключения только с сервера, на котором он установлен.
Вы получите такой вывод:
New ‘X’ desktop is your_hostname:1
Starting applications specified in /home/8host/.vnc/xstartup
Log file is /home/8host/.vnc/your_hostname:1.log
Как видите, по умолчанию VNC запускает экземпляр сервера на порт 5901. Этот порт называется дисплейным портом, VNC ссылается на него как :1.
3: Безопасное подключение к VNC
При подключении VNC не использует безопасные протоколы. Создайте SSH-туннель для безопасного подключения к серверу, а затем настройте клиент VNC для поддержки туннеля вместо прямого подключения.
На локальном компьютере создайте соединение SSH, которое перейдет в localhost соединение для VNC. Вы можете сделать это в Linux или macOS через терминал с помощью следующей команды:
ssh -L 59000:localhost:5901 -C -N -l 8host your_server_ip
Локальным портом может быть любой порт, который еще не занят другой программой или процессом, хотя в этом примере мы используем 59000. Обязательно замените 8host именем вашего пользователя Ubuntu и your_server_ip IP-адресом вашего сервера.
Если вы работаете через графический SSH-клиент, например, PuTTY, вы можете создать туннель, кликнув правой кнопкой мыши по верхней панели терминала и выбрав Change Settings…
Найдите ветку Connection в меню в левой части окна Reconfiguration. Разверните ветку SSH и нажмите Tunnels. На экране Options controlling SSH port forwarding укажите 59000 в качестве Source Port и localhost:5901 в качестве Destination.
Затем нажмите кнопку Add, а после этого нажмите Apply, чтобы создать туннель.
После запуска туннеля используйте клиент VNC для подключения к localhost:59000. Вам будет предложено пройти аутентификацию с помощью пароля, который вы установили в разделе 1.
Как только вы подключитесь, вы увидите стандартный рабочий стол Xfce. Вы можете получить доступ к файлам в вашем домашнем каталоге с помощью файлового менеджера или из командной строки.
Нажмите CTRL+C в локальном терминале, чтобы остановить туннель SSH и вернуться в обычную командную строку. Эта комбинация клавиш также завершит сессию VNC.
4: Настройка VNC как сервиса systemd
Теперь нужно настроить VNC как сервис system. Это позволит вам управлять сервером при помощи простых команд, а также добавить его в автозагрузку.
Создайте новый юнит-файл /etc/systemd/system/vncserver@.service:
sudo nano /etc/systemd/system/vncserver@.service
Символ @ в конце имени файла позволит вам передать аргумент, который можно использовать в конфигурации сервиса. С его помощью можно указать порт VNC, который нужно использовать при управлении сервисом.
Добавьте в файл следующие строки. Обязательно измените значение User, Group, WorkingDirectory и имя пользователя в значении PIDFILE.
[Unit] Description=Start TightVNC server at startup
After=syslog.target network.target
[Service] Type=forking
User=8host
Group=8host
WorkingDirectory=/home/8host
PIDFile=/home/8host/.vnc/%H:%i.pid
ExecStartPre=-/usr/bin/vncserver -kill :%i > /dev/null 2>&1
ExecStart=/usr/bin/vncserver -depth 24 -geometry 1280×800 -localhost :%i
ExecStop=/usr/bin/vncserver -kill :%i
[Install] WantedBy=multi-user.target
Сохраните и закройте файл.
Затем сообщите системе про новый юнит-файл.
sudo systemctl daemon-reload
sudo systemctl enable vncserver@1.service
Цифра 1, идущая за @, определяет, какой номер дисплея должен отображаться в сервисе, в этом случае это значение по умолчанию :1.
Остановите текущий экземпляр сервера VNC, если он еще запущен.
vncserver -kill :1
Теперь попробуйте запустить его как любой другой сервис systemd:
sudo systemctl start vncserver@1
Чтобы убедиться, что сервер запущен, проверьте его состояние:
sudo systemctl status vncserver@1
Теперь сервис VNC добавлен в автозагрузку, и вы можете управлять им при помощи стандартных команд systemctl.
Снова запустите туннель SSH, чтобы подключиться в серверу:
ssh -L 59000:localhost:5901 -C -N -l 8host your_server_ip
Создайте новое подключение с клиента VNC на localhost:59000, чтобы протестировать настройку.
Заключение
Теперь на сервере Ubuntu 20.04 установлен сервер VNC. С его помощью вы можете управлять файлами, программами и настройками удалённого сервера (например, удаленно запускать веб-браузер).