Настройка x11vnc в ubuntu 16.04

Введение

VNC (Virtual Network Computing) представляет собой клиент-серверный протокол, который позволяет клиентскому компьютеру (под управлением клиента VNC) подключаться и управлять удаленным компьютером (работающим на сервере VNC). Программное обеспечение было разработано исследовательской лабораторией Olivetti & Oracle в Кембридже, Великобритания, и его исходный код по-прежнему актуален и доступен под лицензией General Public License (GNU).

В зависимости от программного обеспечения сервера, VNC клиент будет подключаться к активному рабочему столу (например, как программы TeamViewer или AnyDesk) или к автономному виртуальному рабочему столу (как протокол удаленного рабочего стола Windows RDP). Последний, возможно, более мощный и безопасный, особенно если вам необходимо управлять серверным компьютером, потому что каждый сеанс будет уникальной средой, настроенной с разрешениями и правами подключаемого пользователя. Вот почему мы выбираем TigerVNC, который выполняет запуск параллельных сеансов среды рабочего стола компьютера (GNOME, KDE или другой GUI): это значит, что виртуальный рабочий стол будет создан для каждого отдельного подключения — это именно то, чего мы хотим.

Устанавливаем VNC-сервер в Ubuntu

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

Шаг 1: Установка необходимых компонентов

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

  1. Перейдите в меню и откройте «Терминал». Существует горячая клавиша Ctrl + Alt + T, которая позволяет сделать это быстрее.

Установите обновления для всех системных библиотек через .

Введите пароль для предоставления рут-доступа.

По окончании следует прописать команду и нажать на Enter.

Подтвердите добавление новых файлов в систему.

Ожидайте завершения инсталляции и добавления до появления новой строки ввода.

Теперь в Ubuntu присутствуют все необходимые компоненты, осталось только проверить их работу и провести настройку перед запуском удаленного рабочего стола.

Шаг 2: Первый запуск VNC-server

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

  1. В консоли напишите команду , отвечающую за запуск сервера.

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

Подтвердите пароль, введя его повторно.

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

Шаг 3: Настройка VNC-сервера для полноценного функционирования

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

  1. Сначала завершите запущенный десктоп командой .

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

Убедитесь, что файл имеет все строки, указанные ниже.

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

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

Если вы совершили какие-либо изменения, сохраните настройки нажатием клавиши Ctrl + O.

Выйти из файла можно нажатием на Ctrl + X.

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

После ее введения сохраните настройки, прописав .

Шаг 4: Проверка работы VNC-сервера

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

  1. Сначала потребуется запустить сам сервер путем ввода .

Убедитесь в том, что процесс прошел корректно.

Приступайте к добавлению приложения Remmina из пользовательского репозитория. Для этого надо напечатать в консоли .

Нажмите на Enter для добавления новых пакетов в систему.

По завершении установки требуется обновить системные библиотеки .

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

Подтвердите операцию по инсталляции новых файлов.

Запустить Remmina можно через меню, нажав на соответствующий значок.

Здесь осталось только выбрать технологию VNC, прописать нужный IP-адрес и подключиться к десктопу.

Конечно, для подключения таким образом пользователю нужно знать внешний IP-адрес второго компьютера. Для определения этого существуют специальные онлайн-сервисы или дополнительные утилиты, добавляемые в Ubuntu. Детальную информацию по этой теме вы найдете в официальной документации от разработчиков ОС.

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

Опишите, что у вас не получилось.
Наши специалисты постараются ответить максимально быстро.

Команды, синтаксис и примеры

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

Это полезно, например, когда вы хотите работать на одном «рабочем столе» из разных мест, и его можно использовать для запуска среды рабочего стола на сервере, к которому у вас нет физического доступа или к которому не подключен терминал (монитор и клавиатура). Все, что вам нужно, это подключение к сети.

Как работают виртуальные сетевые вычисления

Итак, как это работает? Вам необходимо установить «nvcserver» на серверном компьютере (если он еще не установлен), а также «nvcviewer» и клиентский компьютер (для ознакомления с популярной версией программного обеспечения VNC см. RealVNC). Чтобы избежать проблем с брандмауэром, рекомендуется использовать безопасную оболочку ssh для подключения с компьютера, на котором выполняется просмотр, к серверу, на котором вы хотите запустить сеанс рабочего стола. Пакет PuTTY отлично подходит для этой цели.

Итак, первый шаг – запустить ssh, например, с помощью PuTTY. Затем вы авторизуетесь на сервере и вводите:

 vncserver  Новый рабочий стол server1.org1.com:6 (juser) - server1.org1.com.6 

Перед запуском “vncserver” вы должны настроить файл инициализации “xstartup” в каталоге “.vnc”, который должен быть создан в вашем домашнем каталоге. Этот файл содержит команды инициализации, такие как

 # Выполнить общий файл xstartup  [-x/etc/vnc/xstartup] && exec/etc/vnc/xstartup  # Загрузить файл .Xresources  [-r $ HOME /. Xresources] && xrdb $ HOME/.Xresources  # Запустите помощник vncconfig для включения передачи буфера обмена и управления рабочим столом.  vncconfig -iconic &  # Запустите рабочий стол GNOME  exec gnome -сессия & 

Теперь на сервере запущен «рабочий стол», ожидающий отображения на локальном компьютере. Как вы к нему подключаетесь? Если вы установили программное обеспечение realVNC или загрузили программу просмотра VNC, вы запустите эту программу просмотра и введите сервер и отобразите номер, как показано в этом примере:

 server1.org1.com:6 

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

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

Вы можете прервать процесс VNC-сервера («рабочий стол»), введя следующую команду в окне оболочки на сервере:

 vncserver -kill: 

Например:

 vncserver -kill: 6  геометрия экспорта = 1920x1058 

Где «1920» представляет желаемую ширину, а «1058» желаемую высоту окна рабочего стола. Лучше всего, чтобы оно соответствовало фактическому разрешению вашего экрана.

Вариант первый. Подключение к текущей сессии пользователя.

Установка x11vnc

user@ubuntu$ sudo apt install x11vnc

Создание пароля для подключения к сессии, опционально

user@ubuntu$ sudo x11vnc -storepasswd /etc/x11vnc.passwd

далее устанавливаем файлу с паролем права.

user@ubuntu$ sudo chmod 0400 /etc/x11vnc.passwd

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

user@ubuntu$ sudo nano /etc/systemd/system/x11vnc.service

вставьте следующий текст в файл /etc/systemd/system/x11vnc.service

если вы не используете пароль, удалите это:


Description=Start x11vnc
After=multi-user.target display-manager.service


Type=simple

ExecStart=/bin/sh -c '/usr/bin/x11vnc -display :0 -forever  -rfbport 5900 -xkb -noxrecord -noxfixes -noxdamage -nomodtweak -repeat -shared -norc -auth /var/run/sddm/* -rfbauth /etc/x11vnc.passwd'

# For KDE ONLY, include the "Restart" and "RestartSec" commands, otherwise you could just use "-loop" but that is busted since at least kubuntu 18.04
# This was added because logging out killed the x11vnc session even though "-loop -forever" was enabled.
# NOTE: In order to use this, make sure "-loop" switch is not used above!!
# NOTE: While vnc client will disconnect, at least the vncserver will restart itself to client can connect again.
Restart=always
RestartSec=1

ExecStop=/usr/bin/killall x11vnc


WantedBy=multi-user.target

перезагрузите systemd, чтобы он прочитал конфигурацию нового сервиса:

user@ubuntu$ sudo systemctl daemon-reload

теперь можно попробовать запустить новую службу и проверить, что все стартовало удачно:

user@ubuntu$ sudo systemctl start x11vnc
user@ubuntu$ sudo systemctl status x11vnc
user@ubuntu$ sudo systemctl enable x11vnc

Подключение при использовании Vncviewer

После настройки SSH-туннеля можно открыть Vncviewer и подключиться к VNC серверу по адресу . Вы можете использовать любую программу просмотра VNC: TigerVNC, TightVNC, RealVNC, UltraVNC Vinagre или VNC Viewer для Google Chrome. В данном примере мы будем использовать TigerVNC. Откройте программу просмотра VNC, введите и нажмите кнопку . Вместо введите IP вашего сервера.

Введите ваш пароль (тот из 8 символов) который вы ввели при первом запуске VNC сервера. После этого откроется рабочий стол Xfce по умолчанию. Он будет выглядеть примерно следующим образом:

Теперь вы можете действовать на удаленном рабочем столе XFce, используя клавиатуру и мышь.

Заключение

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

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

Если у вас есть какие-либо вопросы, оставляйте комментарии.

Установка VNC Server на Ubuntu 18.04

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

Чтобы установить VNC server в Ubuntu выполните такую команду:

Также необходимо установить эмулятор терминала xterm, его программа будет использовать для запуска тестового окружения:

Для запуска сервера используется команда vncserver. Её синтаксис очень прост:

vncserver порт:номер_дисплея опции

А вот её основные опции:

  • -dry-run — тестовый запуск, не выполнять никаких реальных действий;
  • -verbose — включить более подробный вывод;
  • -useold — запустить VNC сервер только если он ещё не запущен;
  • -cleanstale — очистить оставшиеся файлы после предыдущего запуска;
  • -localhost — разрешить подключения только с локального компьютера;
  • -name — имя VNC сервера, которое будет отображаться при подключении, по умолчанию используется host:display# (username);
  • -geometry — разрешение экрана для запускаемого окружения, например, 1024×768;
  • -depth — глубина цвета, доступны значения: 8, 15, 16 и 24;
  • -fg — не запускать сервис в фоновом режиме и оставить его привязанным к терминалу;
  • -autokill — автоматически останавливать сервер после завершения подключения;
  • -xstartup — программа, которую следует использовать вместо оболочки;
  • -list — список запущенных серверов;
  • -kill — завершить запущенный vnc сервер.

Теперь можно попытаться запустить VNC Server:

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

Обратите внимание, что утилиту необходимо запускать от имени обычного пользователя, а не суперпользователя

Утилита не только создаст конфигурацию, но и запустит VNC сервер. Посмотреть список запущенных серверов можно командой:

Чтобы завершить запущенный VNC сервер используйте опцию kill и идентификатор дисплея, на котором запущен сервер из предыдущей команды:

Мы запускали TigerVNC с рабочем окружением в виде терминала, но теперь нам необходимо полноценное рабочее окружение Gnome. Чтобы его настроить создайте файл ~/.vnc/xstartup со следующим содержимым:

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

Чтобы показать использование других опций давайте запустим vncserver на четвертом виртуальном дисплее с разрешением экрана 1024×768:

Why a custom installation ?

Some people might be wondering why performing a custom installation of XRDP.  If you work with xrdp, you know that the main issue is the fact that you cannot reconnect to the same session if you are using the default packages available in Ubuntu Repositories.  However, if you tweak a little bit some configuration files, you can overcome this limitation and connect to the same remote session (see our posts : http://c-nergy.be/blog/?p=4471, http://c-nergy.be/blog/?p=5382 – Check the section reconnecting to the same session)

If we perform a custom installation, we do not need to tweak the configuration files and we will be able to reconnect to the same session after finishing our installation (see http://c-nergy.be/blog/?p=4168, http://c-nergy.be/blog/?p=4242).  This post will describe how to perform this custom installation and as you will see, it’s really not that difficult.

So, Let’s go !

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

Tigervnc-server — это высокоскоростная, кроссплатформенная VNC-программа, которая запускает Xvnc-сервер и начинает
параллельные сеансы Gnome или любой другой среды рабочего стола на рабочем столе VNC.

Чтобы установить TigerVNC-сервер и другие необходимые пакеты в Ubuntu, пропишите следующую команду:

Теперь запустите VNC-сервер, выполнив команду vncserver от имени обычного пользователя. После чего создастся
начальная конфигурация, хранящаяся в директории $HOME/.vnc. Также не забудьте установить пароль для входа.

Введите пароль (длиной не менее шести символов) и подтвердите его. Если потребуется, вы можете установить пароль
“только для просмотра”:

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

Чтобы настроить GNOME или любой другой выбранный вами рабочий стол, создайте файл с именем xstartup
в каталоге конфигурации:

Допишите следующие строки в файл. Эти команды будут автоматически выполнены, когда вы запустите или перезапустите
TigerVNC-сервер

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

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

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

Кроме того, изначально VNC использует TCP-порт 5900+N, где N — это номер дисплея. В таком случае :1
означает, что VNC-сервер будет работать с номером порта дисплея 5901.

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

После запуска VNC-сервера проверьте порт, на котором он работает, используя команду netstat:

Создание Systemd unit файла

Сейчас мы создадим Systemd unit файл, который позволит легко запускать, останавливать или вновь запускать сервис VNC по мере необходимости, как и другие сервисы systemd.

Откройте текстовый редактор, скопируйте и вставьте туда следующую конфигурацию. Не забудьте поменять имя пользователя в строке 7 на ваше.

Shell

sudo nano /etc/systemd/system/[email protected]

1 sudo [email protected]

/etc/systemd/system/[email protected]

Shell

Description=Remote desktop service (VNC)
After=syslog.target network.target

Type=simple
User=vnc_user
PAMName=login
PIDFile=/home/%u/.vnc/%H%i.pid
ExecStartPre=/bin/sh -c ‘/usr/bin/vncserver -kill :%i > /dev/null 2>&1 || :’
ExecStart=/usr/bin/vncserver :%i -localhost no -geometry 1440×900 -alwaysshared -fg
ExecStop=/usr/bin/vncserver -kill :%i

WantedBy=multi-user.target

1
2
3
4
5
6

8
9
10
11
12
13
14

Unit

Description=Remote desktop service(VNC)

After=syslog.targetnetwork.target

Service

Type=simple

User=vnc_user

PIDFile=home%u.vnc%H%i.pid

ExecStartPre=binsh-c’/usr/bin/vncserver -kill :%i > /dev/null 2>&1 || :’

ExecStart=usrbinvncserver%i-localhost no-geometry1440x900-alwaysshared-fg

ExecStop=usrbinvncserver-kill%i

Install

WantedBy=multi-user.target

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

Сообщите systemd, что вы создали новый unit файл:

Shell

sudo systemctl daemon-reload

1 sudo systemctl daemon-reload

На следующем шаге делаем unit файл доступным с помощью следующей команды:

Shell

sudo systemctl enable [email protected]

1 sudo systemctl enable [email protected]

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

Запустите сервис VNC, выполнив:

Shell

sudo systemctl start [email protected]

1 sudo systemctl start [email protected]

Проверьте, что сервис успешно запущен:

Shell

sudo systemctl status [email protected]

1 sudo systemctl status [email protected]

Shell

[email protected] — Remote desktop service (VNC)
Loaded: loaded (/etc/systemd/system/[email protected]; indirect; vendor preset: enabled)
Active: active (running) since Thu 2018-08-16 19:05:54 UTC; 4s ago
Process: 9893 ExecStartPre=/bin/sh -c /usr/bin/vncserver -kill :1 > /dev/null 2>&1 || : (code=exited, status=0/SUCCESS)
Main PID: 9900 (vncserver)
Tasks: 0 (limit: 507)
CGroup: /system.slice/system-vncserver.slice/[email protected]
‣ 9900 /usr/bin/perl /usr/bin/vncserver :1 -geometry 1440×900 -alwaysshared -fg

1
2
3
4
5
6
7
8

[email protected] desktop service(VNC)

Loadedloaded([email protected];indirect;vendor presetenabled)

Activeactive(running)since Thu2018-08-16190554UTC;4sago

Process9893ExecStartPre=binsh-cusrbinvncserver-kill1>devnull2>&1||(code=exited,status=SUCCESS)

Main PID9900(vncserver)

Tasks(limit507)

[email protected]

‣9900usrbinperlusrbinvncserver1-geometry1440x900-alwaysshared-fg

Step 1 — Installing the Desktop Environment and VNC Server

By default, an Ubuntu 18.04 server does not come with a graphical desktop environment or a VNC server installed, so we’ll begin by installing those. Specifically, we will install packages for the latest Xfce desktop environment and the TightVNC package available in the official Ubuntu repository.

On your server, update your list of packages:

Now install the Xfce desktop environment on your server:

Once that installation completes, install the TightVNC server:

To complete the VNC server’s initial configuration after installation, use the command to set up a secure password and create the initial configuration files:

You’ll be prompted to enter and verify a password to access your machine remotely:

The password must be between six and eight characters long. Passwords more than 8 characters will be truncated automatically.

Once you verify the password, you’ll have the option to create a a view-only password. Users who log in with the view-only password will not be able to control the VNC instance with their mouse or keyboard. This is a helpful option if you want to demonstrate something to other people using your VNC server, but this isn’t required.

The process then creates the necessary default configuration files and connection information for the server:

Now let’s configure the VNC server.

Смена пароля

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

vncpasswd

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

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 символов; также после ввода нового пароля система предложит ввод пароля на режим «только для чтения».

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

vncpasswd /etc/vnc/passwd.txt

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

По умолчанию серверы Debian 10 поставляются без предустановленного графического окружения рабочего стола и сервера VNC. Сначала нужно установить эти компоненты. В этом мануале используются пакеты Xfce и TightVNC, доступные в официальном репозитории Debian.

Чтобы установить на сервер указанные пакеты, обновите индекс и введите команду:

Во время установки вам будет предложено выбрать раскладку клавиатуры из списка доступных параметров. Выберите клавиатуру вашего языка и нажмите Enter. Теперь установите TightVNC:

Чтобы завершить начальную настройку сервера VNC после его установки и выбрать надёжный пароль, используйте команду vncserver.

Команда предложит установить и подтвердить пароль:

Пароль должен быть от шести до восьми символов. Более длинные пароли будут автоматически сокращены до 8 символов.

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

Затем начальная настройка VNC завершится и создаст конфигурационные файлы:

Подключение к VNC-серверу

VNC не является зашифрованным протоколом и может подвергаться перехвату пакетов. Рекомендуемый подход — создать туннель SSH, который будет безопасно перенаправлять трафик с вашего локального компьютера на порт 5901 на сервер на том же порту.

Настроить SSH-туннелирование в Linux и macOS 

Если вы используете Linux, macOS или любую другую операционную систему на основе Unix на своем компьютере, вы можете легко создать туннель SSH с помощью следующей команды:

   Вам будет предложено ввести пароль пользователя.

Не забудьте заменить и своим именем пользователя и IP-адресом вашего сервера.

Настроить SSH-туннелирование в Windows 

Если вы используете Windows, вы можете настроить SSH-туннелирование с помощью SSH-клиента PuTTY .

Откройте Putty и введите IP-адрес вашего сервера в поле.

В поле меню разверните и выберите . Введите порт VNC-сервера ( ) в поле, введите его в поле и нажмите кнопку, как показано на изображении ниже:

Вернитесь на страницу, чтобы сохранить настройки, чтобы не вводить их каждый раз. На удаленном сервере выберите сохраненный сеанс и нажмите кнопку.

Подключение с помощью Vncviewer 

Теперь, когда туннель SSH создан, пора открыть Vncviewer и подключиться к VNC Server по адресу .

Вы можете использовать любую программу просмотра VNC, такую ​​как TigerVNC, TightVNC, RealVNC, UltraVNC, Vinagre и VNC Viewer для Google Chrome .

Мы будем использовать TigerVNC. Откройте программу просмотра, войдите и нажмите кнопку.

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

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

Step 3 — Connecting the VNC Desktop Securely

VNC itself doesn’t use secure protocols when connecting. We’ll use an SSH tunnel to connect securely to our server, and then tell our VNC client to use that tunnel rather than making a direct connection.

Create an SSH connection on your local computer that securely forwards to the connection for VNC. You can do this via the terminal on Linux or macOS with the following command:

The switch specifies the port bindings. In this case we’re binding port of the remote connection to port on your local machine. The switch enables compression, while the switch tells that we don’t want to execute a remote command. The switch specifies the remote login name.

Remember to replace and with the sudo non-root username and IP address of your server.

If you are using a graphical SSH client, like PuTTY, use as the connection IP, and set as a new forwarded port in the program’s SSH tunnel settings.

Once the tunnel is running, use a VNC client to connect to . You’ll be prompted to authenticate using the password you set in Step 1.

Once you are connected, you’ll see the default Xfce desktop. It should look something like this:

You can access files in your home directory with the file manager or from the command line, as seen here:

Press in your terminal to stop the SSH tunnel and return to your prompt. This will disconnect your VNC session as well.

Next let’s set up our VNC server as a service.

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

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

Сколько открыть портов, будет зависеть от того, сколько экземпляров VNC-серверов вам понадобится. В нашем сценарии мы сделали только 1, поэтому вам нужно открыть только первый выделенный порт VNC: TCP 5901, как мы уже и говорили. Команда, чтобы открыть этот порт на Firewalld:

Не будет лишним упомянуть, что вы также можете ограничить этот порт для определенных групп, IP-адресов, сетевых карт или других простых или сложных правил брандмауэра.

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

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

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

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

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

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

: этот флаг активирует сжатие, что минимизирует потребление ресурсов и ускоряет процессы.

: эта опция указывает , что вы не хотите выполнять какие-либо удаленные команды

Эта настройка полезна в случае, если вы планируете только перенаправлять порты.

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

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

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

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

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

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

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

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

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

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

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

Рейтинг
( Пока оценок нет )
Понравилась статья? Поделиться с друзьями:
Ваша ОС
Добавить комментарий

;-) :| :x :twisted: :smile: :shock: :sad: :roll: :razz: :oops: :o :mrgreen: :lol: :idea: :grin: :evil: :cry: :cool: :arrow: :???: :?: :!: