Удалить vnc server ubuntu

Обновлено: 06.07.2024

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:

Вставьте в него следующие команды:

При помощи первой команды, 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 1280x800 -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. С его помощью вы можете управлять файлами, программами и настройками удалённого сервера (например, удаленно запускать веб-браузер).

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

С помощью этого обучающего модуля вы научитесь настраивать сервер VNC с помощью TightVNC на сервере Ubuntu 20.04 и подключаться к нему через защищенный туннель SSH. Затем вы будете использовать клиентскую программу VNC на вашем локальном компьютере для взаимодействия с вашим сервером через графическую среду рабочего стола.

Предварительные требования

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

  • Один сервер Ubuntu 20.04, non-root user с правами администратора и брандмауэр, настроенный с помощью UFW. Чтобы выполнить настройку, воспользуйтесь руководством по начальной настройке сервера Ubuntu 20.04.
  • Локальный компьютер с установленным клиентом VNC. Клиент VNC, который вы используете, должен поддерживать подключение через туннели SSH:
    • В Windows вы можете использовать TightVNC, RealVNC или UltraVNC.
    • В macOS вы можете использовать встроенную программу Screen Sharing или кросс-платформенное приложение, например RealVNC.
    • В Linux вы можете использовать разные решения, в том числе vinagre , krdc , RealVNC или TightVNC.

    Шаг 1 — Установка среды рабочего стола и сервера VNC

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

    У вас существует много вариантов при выборе сервера VNC и среды рабочего стола. В этом обучающем модуле мы установим пакеты новейшей среды рабочего стола Xfce и пакет TightVNC, доступный в официальном репозитории Ubuntu. И Xfce, и TightVNC известны как легкие и быстрые системы. Благодаря этому наше соединение VNC будет стабильным и удобным даже при низкой скорости подключения к Интернету.

    После подключения к вашему серверу с помощью SSH обновите список пакетов:

    Теперь установите Xfce вместе с пакетом xfce4-goodies , который содержит несколько дополнительных возможностей для среды рабочего стола:

    Во время установки вам может быть предложено выбрать диспетчер отображения для Xfce по умолчанию. Диспетчер отображения — это программа, которая позволяет выбрать и выполнить вход в среду рабочего стола через графический интерфейс. Вы будете использовать Xfce только при подключении к клиенту VNC, и во время этих сеансов Xfce вы уже будете в системе как пользователь Ubuntu без прав root. Поэтому для данного обучающего модуля выбор диспетчера отображения не является принципиальным. Выберите любой и нажмите ENTER .

    После завершения установки установите сервер TightVNC:

    Далее задайте команду vncserver для установки пароля доступа к VNC, создайте файлы начальной конфигурации и запустите экземпляр сервера VNC:

    Вам будет предложено ввести и подтвердить пароль для удаленного доступа к системе:

    Пароль должен иметь длину от 6 до 8 символов. Пароли длиной более 8 символов будут автоматически обрезаны.

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

    Затем процесс создает необходимые файлы конфигурации по умолчанию и данные подключения для сервера. Дополнительно он запускает экземпляр сервера по умолчанию на порту 5901 . Этот порт называется портом дисплея и учитывается VNC как :1 . VNC может запускать несколько экземпляров на других портах дисплея, при этом порт 5902 учитывается как :2 , порт 5903 как :3 и т. д.:

    Обратите внимание, если вы захотите изменить пароль или добавить пароль только для просмотра, вы можете сделать это с помощью команды vncpasswd :

    На этом этапе сервер VNC уже установлен и работает. Давайте настроим его для запуска Xfce и дадим доступ к серверу через графический интерфейс.

    Шаг 2 — Настройка сервера VNC

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

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

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

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

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

    Теперь создайте новый файл xstartup и откройте его в текстовом редакторе, например nano :

    Затем добавьте в файл следующие строки:

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

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

    После добавления этих строк сохраните и закройте файл. Если вы используете nano , нажмите CTRL+X , Y , затем ENTER .

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

    Затем запустите сервер VNC повторно:

    Обратите внимание, что эта команда включает опцию -localhost , которая привязывает сервер VNC к циклическому интерфейсу вашего сервера. Благодаря этому VNC будет разрешать только соединения, исходящие от сервера, на котором он установлен.

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

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

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

    Шаг 3 — Безопасное подключение рабочего стола VNC

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

    Создайте на локальном компьютере соединение SSH, которое безопасно перенаправляется в соединение localhost для VNC. Для этого можно ввести через терминал в Linux или macOS команду ssh :

    Вот что означают опции команды ssh :

    Примечание. Эта команда создает туннель SSH для перенаправления информации с порта 5901 на вашем сервере VNC в порт 59000 на вашем локальном компьютере через порт 22 на каждом компьютере, порт SSH по умолчанию. Если вы выполнили предварительные требования из руководства по начальной настройке сервера Ubuntu 20.04, у вас добавится правило UFW, позволяющее подключения к вашему серверу через OpenSSH.

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

    Если вы используете PuTTY для подключения к вашему серверу, вы можете создать туннель SSH, нажав правой кнопкой мыши на верхнюю панель окна терминала, а затем выбрав опцию Change Settings…:

    Нажатие правой клавишей мыши на верхнюю панель открывает опцию Change Settings

    Найдите ветку Connection​​​ в меню слева окна реконфигурации PuTTY. Раскройте ветку SSH и нажмите на Tunnels. На экране Options controlling SSH port forwarding введите 59000 ​​​ в поле Source Port​​​ и localhost:5901 в поле Destination:

    Пример конфигурации SSH-туннеля PuTTY

    Затем нажмите кнопку Add, потом кнопку Apply для активации туннеля.

    После запуска туннеля используйте клиент VNC для подключения к localhost:59000 ​​​. Вам будет предложено пройти аутентификацию, используя пароль, заданный на шаге 1.

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

    Подключение VNC к серверу Ubuntu 20.04 со средой рабочего стола Xfce

    Для доступа к файлам в каталоге home вы можете использовать менеджер файлов или командную строку, как показано здесь:

    Менеджер файлов при подключении VNC к Ubuntu 20.04

    Нажмите CTRL+C в локальном терминале, чтобы остановить туннель SSH и вернуться к командной строке. При этом сеанс VNC также будет отключен.

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

    Шаг 4 — Запуск VNC в качестве системной службы

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

    Сначала создайте новый файл блока с именем /etc/systemd/system/vncserver@.service :

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

    Добавьте в файл следующие строки. Обязательно измените значения параметров User, Group, WorkingDirectory и имя пользователя на значения PIDFILE, соответствующие вашему имени пользователя:

    Команда ExecStartPre останавливает сервер VNC, если он уже запущен. Команда ExecStart запускает VNC и устанавливает 24-битную глубину цвета с разрешением 1280x800. Вы можете изменить эти параметры запуска в соответствии со своими потребностями. Также обратите внимание, что команда ExecStart еще раз включает опцию -localhost .

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

    Затем сообщите системе о новом файле блока:

    Активируйте файл блока:

    Цифра 1 после символа @ указывает, на каком дисплее должна появляться служба. В данном случае это значение по умолчанию :1 , как говорилось на шаге 2.

    Остановите текущий экземпляр сервера VNC, если он еще работает:

    Запустите его, как любую другую службу systemd:

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

    Если запуск выполнен нормально, результат должен выглядеть следующим образом:

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

    Но со стороны клиента не будет никаких различий. Для повторного подключения еще раз запустите туннель SSH:

    Создайте новое подключение, используя клиентское программное обеспечение VNC для подключения localhost:59000 к вашему компьютеру.

    Заключение

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

    В статье рассказано о настройке возможности подключения к Ubuntu по удаленному рабочему столу (аналогично RDP в Windows). Примеры команд проверены на Linux Ubuntu 16.04 и 18.04.

    Мы рассмотрим реализацию с помощью сервера VNC (подключиться к нашему компьютеру можно будет как с помощью клиента VNC, который доступен как для Linux, так и Windows). Также мы рассмотрим возможность использования клиента RDP из Windows, настроив xRDP.

    Подготовка системы

    Все действия описанные ниже мы будем выполнять с правами суперпользователя. Для этого переходим в режим sudo:

    . или заходим под root:

    * по умолчанию, в Ubuntu не задан пароль от root и данная команда не сработает. В этом случае сначала задаем пароль руту — passwd root.

    Если используется брандмауэр, добавляем правило:

    iptables -A INPUT -p tcp --dport 5901 -j ACCEPT

    * в данном примере, мы разрешаем входящие соединения на порту 5901. Для работы с несколькими портами, добавляем их по аналогии.

    Установка и настройка VNC сервера

    Рассмотрим два варианта использования графической оболочки — xfce и gnome.

    Если используем XFCE

    Установка

    Установку выполняем следующей командой:

    apt install xfce4 xfce4-goodies tightvncserver

    Задаем пароль для доступа по удаленному рабочему столу. Для этого вводим команду:

    . на запрос пароля вводим его дважды.

    После будет предложено ввод пароля для гостевого доступа — можно согласиться (y) и ввести пароль или отказаться (n).

    Настройка

    Для начала, останавливаем экземпляр VNC сервера:

    vncserver -kill :1

    * экземпляр :1, по умолчанию, слушает на порту 5900+1 (5901).

    Настраиваем VNC сервер:

    Снова запускаем vncserver:

    Если используем Gnome

    Установка

    Установку выполняем следующей командой:

    apt install ubuntu-desktop gnome-panel gnome-settings-daemon metacity nautilus gnome-terminal vnc4server

    Задаем пароль для доступа по удаленному рабочему столу. Для этого вводим команду:

    . на запрос пароля вводим его дважды.

    После будет предложено ввод пароля для гостевого доступа — можно согласиться (y) и ввести пароль или отказаться (n).

    Настройка

    Для начала, останавливаем экземпляр VNC сервера:

    vncserver -kill :1

    * экземпляр :1, по умолчанию, слушает на порту 5900+1 (5901).

    Настраиваем VNC сервер для текущего пользователя:

    [ -x /etc/vnc/xstartup ] && exec /etc/vnc/xstartup
    [ -r $HOME/.Xresources ] && xrdb $HOME/.Xresources
    xsetroot -solid grey
    vncconfig -iconic &
    x-terminal-emulator -geometry 80x24+10+10 -ls -title "$VNCDESKTOP Desktop" &
    x-window-manager &

    gnome-panel &
    gnome-settings-daemon &
    metacity &

    Снова запускаем vncserver:

    Подключаемся к удаленному рабочему столу

    Запускаем клиент VNC. Например, в Linux — Remmina, в Windows — TightVNC Viewer или RealVNC. Вводим IP-адрес компьютера с VNC и номер порта:

    Подключение к серверу VNC с помощью TightVNC

    Будет запрошен пароль — вводим тот, что устанавливали при настройке.

    Автозапуск сервиса

    Чтобы VNC сервер запускался после перезагрузки, создаем новый юнит в systemd:

    [Unit]
    Description=VNC server
    After=syslog.target network.target

    [Service]
    Type=forking
    User=root
    PAMName=login
    PIDFile=/root/.vnc/%H:%i.pid
    ExecStartPre=-/usr/bin/vncserver -kill :1 > /dev/null 2>&1
    ExecStart=/usr/bin/vncserver
    ExecStop=/usr/bin/vncserver -kill :1

    Разрешаем автозапуск сервиса:

    systemctl enable vncserver

    Смена пароля

    Для смены пароля на подключения к VNC, вводим команду:

    Система напишет, в каком файле на данный момент хранится пароль и запросит ввод нового:

    Using password file /root/.vnc/passwd
    Password:
    Warning: password truncated to the length of 8.
    Verify:
    Would you like to enter a view-only password (y/n)? n

    * как видим, файл для хранения пароля в данном примере — /root/.vnc/passwd; требование по минимальной длине пароля — 8 символов; также после ввода нового пароля система предложит ввод пароля на режим «только для чтения».

    Если необходимо указать конкретный файл, в котором должен хранится пароль, вводим, например, такую команду:

    xRDP для подключения из Windows

    Если мы не хотим устанавливать на Windows никакого дополнительного программного обеспечения, а хотим использовать стандартное подключение к удаленному рабочему столу (mstsc), можно установить на Linux xRDP. Для этого вводим:


    Virtual Network Computing (VNC) – система управления удалённым рабочим столом, использующая протокол RFB ( Remote FrameBuffer , англ. «удалённый кадровый буфер»). Соединение осуществляется между двумя устройствами: клиентом (управляющее) и сервером (подчиняющееся).

    Взаимодействие между системами происходит путём передачи откликов с периферии клиента (мышь, клавиатура и т. д.) и ретрансляции изображения с удалённого компьютера. Для создания сессии, на каждой из сторон должно быть установлено соответствующее ПО: VNC-клиент (VNC Viewer) и VNC-сервер (VNC Server).

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

    Далее будет рассказано о том, как установить VNC на Linux и обезопасить подключение. Инструкция подойдёт для двух популярных дистрибутивов: Ubuntu (18.04 и 20.04) и CentOS 7. В качестве VNC-сервера будет использоваться TightVNCServer.

    Подготовка

    Обновление компонентов

    Перед началом выполнения каких-либо действий нужно обновить компоненты системы. Для CentOS также будет установлены дополнительные пакеты: EPEL репозиторий и текстовой редактор Nano.

    Ubuntu

    CentOS

    Установка окружения

    Управление системой через подключение VNC осуществляется посредством графической среды. За основу в статье будет взято окружение XFCE, стабильно работающее в связке с TightVNCServer. Чтобы установить эту оболочку со всеми дополнениями, нужно ввести следующую команду в терминал:

    Ubuntu

    CentOS

    Установка TightVNCServer

    Инсталлировать пакет TightVNCServer вместе с зависимостями можно командой:

    Ubuntu

    CentOS

    Настройка фаервола CentOS

    На серверах под управлением CentOS брандмауэр по умолчанию блокирует доступ к сети сторонним программам. Чтобы дать разрешение TightVNCServer открывать сетевые порты, понадобится ввести команду:

    Теперь нужно применить изменения:

    Настройка VNC-сервера

    Для начала необходимо произвести «пробный» запуск TightVNCServer, чтобы программа создала конфиги, которые позже понадобятся для настройки VNC. Все файлы сохраняются в домашней папке пользователя, от имени которого запускается программа.

    Запустить VNC-сервер можно следующей командой:

    TightVNCServer

    Далее программа попросит придумать пароль (от 6 до 8 символов), который в дальнейшем будет использоваться для подключения к сессии VNC.

    Сменить пароль можно в любой момент командой «vncpasswd».

    А также пользователю будет задан вопрос: «Would you like to enter a view-only password (y/n)?» («Вы хотите ввести пароль только для просмотра (да/нет)?») Функция позволяет подключиться к сессии для демонстрации. То есть пользователь будет видеть всё, что происходит на экране, но не сможет управлять удалённым компьютером. Если применять возможность не планируется, то стоит выбрать ответ «n» («нет»).

    Подготовка VNC для работы с окружением XFCE

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

    Не стоит забывать, что все действия требуется выполнять с одной и той же учётной записи Linux.

    Для начала нужно остановить работающий дисплей. Чуть раньше говорилось, что ему присвоен порядковый номер «1», поэтому команда составляется следующим образом:

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

    И создать вместо него новый:

    Откроется пустой документ, в который необходимо добавить следующий код:

    Ubuntu

    CentOS

    Для сохранения нужно воспользоваться сочетанием клавиш «Ctrl+X», затем «Y» и подтвердить внесений изменений нажатием «Enter».

    Остаётся сделать созданный файл исполняемым:

    Настройка автозапуска

    Для начала нужно создать скрипт, при выполнении которого будет запускаться TightVNCServer с определённым набором параметров:

    Теперь в открывшийся пустой файл нужно занести следующий код:

    Переменные, на которые стоит обратить внимание:

    • «DISPLAY» – номер запускаемой сессии;
    • «DEPTH» – глубина цвета;
    • «GEOMETRY» – разрешение экрана.

    Остаётся сделать файл исполняемым, чтобы скрипт стал доступен для запуска:

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

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

    В создаваемый файл вносится следующий код:

    В переменную «User» вводится логин пользователя Linux, от имени которого будет запускаться VNC-сервер.

    Теперь нужно сохранить файл и добавить созданную службу в автозагрузку:

    Для применения настроек остаётся перезапустить демон systemd и VNC-сервер следующими командами:

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

    Обеспечение безопасности VNC

    Использовать VNC в «голом» виде не рекомендуется по нескольким причинам:

    • Отсутствие шифровки трафика.
    • На сервере открыты порты, которые может атаковать злоумышленник.
    • Пароль ограничен 8 символами.

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

    Настройка туннелирования трафика через SSH

    Для начала нужно запретить доступ к VNC-серверу извне, чтобы исключить возможность атаки по открытому порту (5901, 5902 и т. д.). Для этого необходимо отредактировать скрипт, созданный на ранних этапах настройки TightVNCServer:

    В файле заменяются строки:

    «-localhost» – разрешает подключаться к порту только с самого сервера.

    После сохранения скрипта необходимо перезагрузить VNC для применения изменений:

    Подключение

    Выполнить подключение с туннелированием трафика на Unix-системах можно с помощью встроенной консольной утилиты. Команда составляется следующим образом:

    Значения, которые нужно изменить на собственные:

    • «user» – имя пользователя;
    • «xxx.xxx.xxx.xxx» – IP-адрес сервера.

    Утилита запросит пароль для входа в учётную запись. Внешне подключение будет ничем не отличаться от обычного соединения с сервером через SSH. Туннелирование будет работать до тех пор, пока сессия не будет закрыта.

    Windows

    Установка соединения на Windows будет рассмотрена на примере распространённого клиента Putty.

    Алгоритм подключения
    1. Открыть программу и перейти по пути: «Соединение» -> «SHH» -> «Туннели».
    2. В поле «Исходный порт» нужно ввести значение «5901», а в «Назначение» подставить «localhost:5901». Для применения параметров необходимо нажать «Добавить».Можно создать несколько таких профилей, изменив «5901» на значения других портов («5902», «5903» и т. д.), если планируется подключить сразу несколько сессий.
    3. Теперь можно вернуться в исходный раздел «Сеанс», ввести данные для подключения к серверу через SSH и нажать «Соединиться».

    Чтобы заново не проходить операцию настройки каждый раз, можно сохранить параметры в профиль. Для этого нужно ввести произвольное имя в поле «Управление сеансами» и нажать «Сохранить».

    1. В открывшемся окне нужно ввести данные для подключения к серверу. Туннелирование начинает работать с этого момента и проходит незаметно для пользователя. Для поддержания соединения достаточно не прерывать сессию SSH.

    Подключение к сессии VNC

    Подключиться по VNC к Linux можно с помощью клиента TightVNC Viewer, который доступен для загрузки на официальном сайте. Для остальных программ алгоритм установки соединения будет аналогичен.

    Сначала нужно открыть TightVNC Viewer и в поле «Remote Host» ввести внешний IP-адрес сервера и порт, разделяя их двоеточием («:»). Если подключение осуществляется с туннелированием трафика, то вместо IP-адреса подставляется стандартное значение локального хоста (например, «localhost» или «127.0.0.1»). Для установки соединения нужно нажать «Connect».

    TightVNC Viewer

    Откроется окно, в котором программа запросит пароль. Для подтверждения остаётся нажать «ОК».


    Серверы VNC, как известно, сложно настроить, особенно если вы новый пользователь Linux, пытаясь понять, как управлять одним ПК с другого. К счастью, RealVNC существует. Это кроссплатформенное решение VNC, которое очень просто настроить. RealVNC имеет превосходную поддержку многих различных дистрибутивов Linux, включая Ubuntu, Debian, Fedora, Arch Linux, OpenSUSE и многие другие. Чтобы использовать RealVNC в Linux, выберите ниже свою операционную систему и введите соответствующие команды!

    Примечание. Если ваш дистрибутив Linux не поддерживает DEB, RPM или Arch AUR, вам необходимо следовать инструкциям «Generic Linux».

    Ubuntu

    RealVNC имеет как серверный компонент, так и программу просмотра. Загрузите VNC Connect на ПК с Linux (или сервер), который будет хостом VNC, и загрузите клиентское приложение на удаленный ПК, подключенный к нему. Чтобы получить VNC Connect, перейти на официальный сайт , выберите DEB и загрузите пакет на свой компьютер. Скачайте приложение VNC Viewer здесь .

    Проверь это - Как использовать SLSK для резервного копирования сохраненных игр Steam в Linux

    Установка VNC Connect

    После завершения загрузки пакета VNC Connect DEB откройте файловый менеджер. Щелкните «Загрузки» и дважды щелкните пакет DEB с надписью «VNC-Server-6.3.1-Linux-x64.deb». Двойной щелчок по пакету VNC Server DEB мгновенно откроет Центр программного обеспечения Ubuntu. Нажмите «Установить», чтобы загрузить программное обеспечение на свой компьютер с Ubuntu.

    Либо, если у вас нет доступа к Ubuntu Software Center или вы предпочитаете терминал, установите VNC Connect с помощью инструмента dpkg:

    Установка VNC Viewer

    Выберите папку «Загрузки» в файловом менеджере Ubuntu, найдите «VNC-Viewer-6.18.625-Linux-x64.deb» и дважды щелкните по нему, чтобы запустить Центр программного обеспечения Ubuntu. Нажмите «Установить», чтобы начать установку.

    Предпочитаете терминал? Выполните следующие команды в окне терминала:

    Debian

    Поддержка Debian не описана специально на веб-сайте RealVNC, но, учитывая тот факт, что Ubuntu и Debian имеют схожие архитектуры, заставить программное обеспечение работать не должно быть проблемой. Для начала скачать пакет VNC Connect DEB к машине Linux, на которой размещается VNC.

    Загрузите VNC Viewer на компьютер Debian, который будет удален. После загрузки обоих пакетов следуйте приведенным ниже инструкциям.

    Установка VNC Connect

    Откройте файловый менеджер в Debian и выберите папку «Загрузки». Затем найдите «VNC-Server-6.3.1-Linux-x64.deb» и дважды щелкните его, чтобы открыть пакет в инструменте установки пакетов GDebi. Нажмите «Установить» и введите пароль для установки серверного программного обеспечения. Также можно установить через терминал с помощью:

    Установка VNC Viewer

    Проверь это - 5 лучших клиентов IRC для использования в Linux

    Инструкции по терминалу:

    Arch Linux

    Официального программного обеспечения RealVNC для Arch Linux нет. Однако это в AUR. Чтобы установить сервер, сделайте следующее:

    RealVNC Viewer также находится в AUR и устанавливается аналогичным образом. Имейте в виду, что эта версия программы просмотра VNC устарела. Используйте на свой риск!

    Чтобы начать установку, клонируйте последнюю версию pkgbuild.

    Fedora

    Подобно Ubuntu и Debian, Fedora имеет первоклассную поддержку RealVNC. Чтобы установить серверный компонент программного обеспечения, перейдите на страница загрузки , выберите «RPM» и нажмите «Загрузить».

    Когда пакет RPM загружен, откройте терминал и используйте инструмент управления пакетами DNF для его установки.

    Установите VNC Viewer с помощью:

    OpenSUSE

    OpenSUSE поддерживает программное обеспечение RealVNC через пакеты RPM. Чтобы установить их, скачать пакет и сделайте следующее:

    Общие инструкции Linux

    Для тех, кто работает с менее известными дистрибутивами Linux, Real VNC имеет общий двоичный архив как для сервера, так и для приложения просмотра. Скачайте архив сервера к ПК, на котором будет установлено соединение, и зритель на удаленную машину. Затем откройте терминал и выполните приведенные ниже команды, чтобы запустить RealVNC.

    Проверь это - Как изменить оболочку по умолчанию в Linux с помощью chsh

    Настроить RealVNC Server

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

    При запуске службы RealVNC systemd на рабочем столе Linux на панели задач отображается значок VNC. Щелкните по нему, чтобы запустить инструмент графического интерфейса сервера.

    В инструменте с графическим интерфейсом вы можете изменять способ работы серверного приложения RealVNC.

    Подключение

    Подключиться к удаленному компьютеру, на котором запущено серверное приложение RealVNC, очень просто. Чтобы запустить удаленное соединение, введите имя компьютера (также известное как имя хоста) в поле поиска. RealVNC найдет компьютер и немедленно установит новое соединение.


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

    Читайте также: