VNC или Virtual Network Computing - это графический инструмент совместного использования рабочего стола, который позволяет удаленно управлять компьютером (сервером или рабочим столом) с другого компьютера (клиента). Сервер VNC передает все события клавиатуры и мыши с клиентского компьютера на серверный компьютер. Если вы еще не знакомы с командами CLI, такими как терминал и т.д., вы можете использовать VNC, чтобы помочь вам управлять файлами, программным обеспечением и системными настройками на удаленных компьютерах.
Мы установим на сервер рабочий стол Linux XFCE, затем установим и настроим VNC-сервер с помощью TightVNC.
Шаг 1 - Обновление системы и создание пользователя
Обновите репозиторий Ubuntu, затем обновите систему с помощью команд apt, приведенных ниже.
1 2 | sudo apt update sudo apt upgrade |
После обновления, при необходимости, перегрузите компьютер.
В данном руководстве рабочий стол VNC будет доступен для пользователя, не являющегося root. Поэтому нам нужно создать нового пользователя и добавить его в группу sudo для получения root-доступа.
Создайте нового пользователя под именем 'vncuser' и задайте ему пароль.
1 2 | useradd -m -s /bin/bash vncuser passwd vncuser |
Теперь добавьте пользователя 'vncuser' в группу sudo для доступа с привилегиями root.
1 | usermod -a -G sudo vncuser |
Был создан новый пользователь 'vncuser' для доступа к VNC, и он сможет получить доступ к привилегиям root.
1 2 | su - vncuser sudo su |
Шаг 2 - Установите XFCE Desktop и TightVNC
Linux имеет несколько окружений рабочего стола, таких как Gnome, Unity, KDE, LXDE, XFCE и т.д. В этом руководстве мы будем использовать рабочий стол XFCE в качестве среды рабочего стола VNC.
Установите рабочий стол XFCE, включая все зависимости, с помощью команды apt, приведенной ниже.
1 | sudo apt install xfce4 xfce4-goodies |
Если установка рабочего стола XFCE завершена, установите пакеты 'tightvncserver'.
Выполните команду apt, приведенную ниже.
1 | sudo apt install -y tightvncserver |
Шаг 3 - Начальная конфигурация VNC
В этом шаге мы создадим конфигурацию VNC для пользователя 'edward'.
Войдите под именем 'vncuser'
1 | su - vncuser |
Теперь запустите конфигурацию VNC для пользователя 'vncuser' командой ниже.
1 | vncserver |
Вам будет предложено ввести пароль VNC-сервера - введите его. А пароль 'только для просмотра' вы можете включить или отключить. Пользователь, который войдет на сервер, используя пароль "только для просмотра", не сможет управлять мышью и клавиатурой.
При первом запуске команды 'vncserver' автоматически создается новый каталог конфигурации '.vnc' и запускается первая сессия VNC.
Проверьте это с помощью команды ниже.
1 2 | ls -lah ~/.vnc/ ps -ef | grep Xtightvnc |
Вы получите результат, как показано ниже.
Шаг 4 - Настройка TightVNC
В этом шаге мы настроим VNC-сервер для использования рабочего стола XFCE. Мы отредактируем файл конфигурации VNC 'xstartup' в каталоге '.vnc'.
Прежде чем редактировать конфигурацию, убейте первый сеанс VNC с помощью следующей команды.
1 | vncserver -kill :1 |
Теперь сделайте резервную копию конфигурации по умолчанию и создайте новую с помощью vim.
1 2 | mv ~/.vnc/xstartup ~/.vnc/xstartup.bak nano ~/.vnc/xstartup |
Вставьте туда следующую конфигурацию.
1 2 3 | #!/bin/bash xrdb $HOME/.Xresources startxfce4 & |
Сохраните и выйдите.
Теперь сделайте скрипт исполняемым с помощью chmod и снова запустите команду 'vncserver'.
1 2 | chmod +x ~/.vnc/xstartup vncserver |
Проверьте список сессий.
1 | ps -ef | grep Xtightvnc |
И вы получите результат, как показано ниже.
Шаг 5 - Запуск TightVNC в качестве службы
В этом руководстве мы будем запускать VNC-сервер как службу. Поэтому нам нужно создать для него новый служебный файл.
Перейдите в каталог '/etc/systemd/system' и создайте новый служебный файл '[email protected]'.
1 2 | cd /etc/systemd/system nano vncserver@.service |
Вставьте туда следующий скрипт службы vnc.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 | [Unit] Description=Remote desktop service (VNC) After=syslog.target network.target [Service] Type=forking User=vncuser PIDFile=/home/vncuser/.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 |
Сохраните файл и выйдите из редактора.
Теперь перезагрузите службы systemd и запустите службу VNC-сервера.
1 2 | systemctl daemon-reload systemctl start vncserver@1.service |
если при запуске сервиса получаем ошибку, создаем PID файл вручную
к примеру
1 | > /home/vncuser/.vnc/virtual-machine:1.pid |
Если все прошло без ошибок, добавьте службу во время загрузки и проверьте ее состояние с помощью systemctl.
1 2 | systemctl enable vncserver@1.service systemctl status vncserver@1.service |
Ниже приведены результаты в нашем случае:
Сервер VNC установлен, и первая сессия теперь запущена под пользователем 'vncuser'.
Шаг 6 - Подключение к серверу VNC через туннель SSH
В этом шаге мы подключимся к нашему VNC-серверу через ssh-туннель.
Теперь откройте приложение 'vnc viewer', создайте новое соединение и введите адрес VNC сервера с IP локального хоста IP адрес сервера и порт 5901, как показано ниже.
Подключитесь к VNC-серверу, и вам будет предложено ввести пароль VNC-сервера. Введите пароль и нажмите 'OK'.
Теперь вы получите рабочий стол XFCE с вашего сервера.