12 бесплатный vnc клиент и просмотрщик для windows, mac и linux

Протокол RFB

RFB (англ. remote framebuffer) — простой клиент-серверный сетевой протокол прикладного уровня для удалённого доступа к графическому рабочему столу компьютера, используемый в VNC. Так как он работает на уровне кадрового буфера, то его можно применять для графических оконных систем, например X Window System, Windows, Quartz Compositor.

В начале своего развития RFB был относительно простым протоколом, основанным на графических примитивах: «положить прямоугольник пиксельных данных на заданную координатами позицию». Сервер посылает небольшие прямоугольники клиенту. Такая схема в своей примитивной форме потребляет значительный трафик. Для снижения нагрузки на канал используются различные методы. Существуют различные кодировки — методы определения наиболее эффективного способа передачи этих прямоугольников. Протокол RFB позволяет клиенту и серверу «договориться» о том, какая кодировка будет использована. Самый простой метод кодирования, поддерживаемый всеми клиентами и серверами — «raw encoding» (рус. сырое кодирование), при котором пиксели передаются в порядке слева направо, сверху вниз, и после передачи первоначального состояния экрана передаются только изменившиеся пиксели. Этот метод работает очень хорошо при незначительных изменениях изображения на экране (движения указателя мыши по рабочему столу, набор текста под курсором), но загрузка канала становится очень высокой при одновременном изменении большого количества пикселей, например, при просмотре видео в полноэкранном режиме. За время своего развития протокол оброс различными дополнительными функциями и опциями, такими как передача файлов, сжатие, безопасность.

По умолчанию RFB использует диапазон TCP-портов с 5900 до 5906. Каждый порт представляет собой соответствующий экран X-сервера (порты с 5900 по 5906 ассоциированы с экранами с :0 по :6). Java-клиенты, доступные во многих реализациях, использующих встроенный веб-сервер для этой цели, например, в RealVNC, связаны с экранами таким же образом, но на диапазоне портов с 5800 до 5806. Многие компьютеры под управлением ОС Windows могут использовать лишь один порт из-за отсутствия многопользовательских свойств, присущих UNIX-системам. Для Windows-систем экран по умолчанию — :0, что соответствует порту 5900.

Также существует возможность обратного подключения от сервера к клиенту. В этом случае клиент переводится в слушающий (англ. listening) режим и соединение инициируется сервером на 5500 TCP-порт клиента.

Порты могут быть изменены.

Методы кодирования и расширения, опубликованные из проекта TigerVNC:

  •  — Сырой (Raw)
  •  — Копирование прямоугольников (CopyRect)
  •  — Увеличение прямоугольника (Rising Rectangle)
  •  — CoRRE (Compact Rising Rectangle)
  •  — Hextile
  •  — Сжатие Zlib
  •  — Версия клиента Tight
  •  — ZlibHex
  •  — Версия клиента Ultra
  •  — Сжатие ZRLE
  •  — Сжатие ZYWRLE (ZLib YUV Wavelet Run Length Encoding)
  •  — Флаг кэширования (CacheEnable)
  •  — Флаг побитового XOR (XOREnable)
  •  — ServerState (UltraVNC)
  •  — EnableKeepAlive (UltraVNC)
  •  — Передача файлов (FTProtocolVersion — UltraVNC)
  •  —  — CompressLevel (Tight)
  •  — XCursor
  •  — RichCursor
  •  — PointerPos
  •  — LastRect
  •  — NewFBSize
  •  —  — QualityLevel (Tight)

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

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

Давайте установим SSH- соединение на локальном компьютере, которое перенаправляет трафик на «localhost» для VNC. Запустите терминал на вашем локальном компьютере (macOS или Linux), выполните следующую команду:

-L 59000: localhost: 5901 : порт на локальном компьютере 59000 будет перенаправлен на целевой сервер: localhost: 5901

-C : сжать данные для ускорения соединения

-l <user> <server_ip_address> : указать пользователя, к которому вы войдете, и IP-адрес сервера Ubuntu 20.04

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

В случае использования ОС Windows вы можете настроить SSH-туннель с помощью SSH-клиента PuTTY.

Откройте PuTTY, затем введите IP-адрес вашего сервера Ubuntu:

Затем разверните подменю Connection> SSH> Tunnels, введите «5901» в «Source port» и «<server_ip_address>: 5901» в «Destination». Затем нажмите кнопку «Добавить», как показано ниже:

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

Теперь вы можете подключиться к серверу Ubuntu удаленно с помощью клиента VNC. В этом руководстве мы используем программу просмотра VNC. Откройте клиент VNC, затем введите IP-адрес сервера и порт 5901:

Вы успешно подключились к рабочему столу XFCE вашего сервера Ubuntu:

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

Установка VNC-сервера

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

Введите следующую команду, чтобы установить TigerVNC на свой сервер Ubuntu:

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

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

При первом команды она создает и сохраняет файл паролей в . Этот каталог будет создан, если он отсутствует.

Обратите внимание на после имени хоста в выходных данных выше. Это указывает номер порта дисплея, на котором работает сервер vnc

В нашем случае сервер работает на TCP-порту (5900 + 1). Если вы создадите второй экземпляр с он будет работать на следующем свободном порту, например , что означает, что сервер работает на порту (5900 + 2).

Важно помнить, что при работе с серверами VNC — это порт дисплея, который ссылается на

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

Шаг 3 — Тестирование рабочего стола VNC

Теперь проверим соединение с вашим VNC сервером.

Сначала создадим SSH соединение на вашей локальной машине для установки безопасного соединения с VNC. Вы можете сделать это с помощью терминала на Linux или OS X следующей командой. Не забудьте заменить и на имя своего пользователя с правами sudo и IP адрес вашего сервера.

Если вы используете графический клиент SSH, например, PuTTY, задайте в качестве IP адреса соединения, а также установите в качестве пробрасываемого порта в настройках соединения SSH своего клиента.

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

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

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

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

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

  • Один сервер Ubuntu 20.04, non-root user с правами администратора и брандмауэр, настроенный с помощью UFW. Чтобы выполнить настройку, воспользуйтесь руководством по начальной настройке сервера Ubuntu 20.04.
  • Локальный компьютер с установленным клиентом VNC. Клиент VNC, который вы используете, должен поддерживать подключение через туннели SSH:

    • В Windows вы можете использовать TightVNC, RealVNC или UltraVNC.
    • В macOS вы можете использовать встроенную программу Screen Sharing или кросс-платформенное приложение, например RealVNC.
    • В Linux вы можете использовать разные решения, в том числе , , RealVNC или TightVNC.

Дополнительные настройки удаленного рабочего стола.

меню «Пуск» — выполнить — gpedit.msc (редактор политик) — «конфигурация компьютера» — «конфигурация windows»- «локальные политики» —  «параметры безопасности» — «ограничить использование пустых паролей…..» — «отключен»

Да, на младших версиях Windows, конечно, gpedit.msc не запускается (нет этой настройки)

Все бытовые версии Windows позволяют работать на ПК только одному пользователю  — при входе нового пользователяWindows любезно предложит отключить другого пользователя

Это лицензионное ограничение для не серверных вариантов Windows — но выход есть. Немного шаманства — и все работает, смотреть здесь (открытие в новом окне)

Автоматический вход с сохраненным логином и паролем

Есть волшебная галочка «Разрешить мне сохранять учетные данные». Если запустить изменение еще раз — галочка сменится на «Всегда запрашивать учетные данные»

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

А если учетные данные не сохраняются (в Windows 7 и старше)?

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

Что делать?

Дело в том, что в последних версиях Windows пароль хранится не в rdp-файле, а в отдельном хранилище (Credential Manager — Диспетчер учетных данных). Как минимум — в групповых политиках должны быть отключены следующие параметры:

  • Конфигурация пользователя — Административные шаблоны — Компоненты Windows — Службы удаленных рабочих столов — Клиент подключения к удаленному рабочему столу — Запретить сохранение паролей;
  • Конфигурация компьютера — Административные шаблоны — Компоненты Windows — Службы удаленных рабочих столов — Клиент подключения к удаленному рабочему столу — Запретить сохранение паролей.

Вот можно почитать подробнее (откроется в новом окне)

Проверка подлинности была добавлена, начиная с Windows XP SP3. Но она там отключена по умолчанию (на Wibdows Vista уже включена).

Как включить проверку подлинности удаленного компьютера на Window XP SP3?

Идем в реестр regedit.exe (Выполнить)

Ветка HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Lsa

Открываем параметр Security Packages и ищем там слово tspkg. Если его нет, добавляем к уже существующим параметрам.

Ветка HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\SecurityProviders

Открываем параметр SecurityProviders и добавляем к уже существующим провайдерам credssp.dll, если таковой отсутствует.

Закрываем редактор реестра. Перезагружаемся.

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

Подключение к удаленному рабочему столуОшибка при проверке подлинности(код 0×507)

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

«Не удается определить издателя этого удаленного подключения»

Это означает, что файл rdp не защищен подписанным сертификатом. Для локальной сети ничего страшного тут нет, можно поставить галочку «Больше не выводить запрос…»

Сама система безопасности работает следующим образом. Параметр политики позволяет указать, могут ли пользователи запускать на клиентском компьютере неподписанные файлы протокола удаленного рабочего стола (RDP) и RDP-файлы, полученные от неизвестных издателей.

Если этот параметр политики включен или не настроен, то пользователи могут запускать на клиентском компьютере неподписанные RDP-файлы и RDP-файлы, полученные от неизвестных издателей. Перед началом сеанса RDP пользователь получит предупреждение и запрос на подтверждение подключения.

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

Поддерживается: Не ниже Windows Vista с пакетом обновления 1 (SP1)

Registry Hive HKEY_LOCAL_MACHINE
Registry Path SOFTWARE\Policies\Microsoft\Windows NT\Terminal Services
Value Name AllowUnsignedFiles
Value Type REG_DWORD
Enabled Value 1
Disabled Value

Читаем статью

Установка tigervnc-server

Выполните

sudo yum install tigervnc-server

Залогиньтесь под пользователем, которому вы хотите дать доступ по vnc

vncpasswd

Password:
Verify:
Would you like to enter a view-only password (y/n)? n
A view-only password is not used

view-only password это пароль для доступа только с правами на просмотр. Действия мыши и клавиатуры
во время такого доступа ограничены.

sudo vi /lib/systemd/system/[email protected]

# The vncserver service unit file
#
# Quick HowTo:
# 1. Copy this file to /etc/systemd/system/[email protected]
# 2. Replace <USER> with the actual user name and edit vncserver
# parameters in the wrapper script located in /usr/bin/vncserver_wrapper
# 3. Run `systemctl daemon-reload`
# 4. Run `systemctl enable vncserver@:<display>.service`
#
# DO NOT RUN THIS SERVICE if your local area network is
# untrusted! For a secure way of using VNC, you should
# limit connections to the local host and then tunnel from
# the machine you want to view VNC on (host A) to the machine
# whose VNC output you want to view (host B)
#
# $ ssh -v -C -L 590N:localhost:590M hostB
#
# this will open a connection on port 590N of your hostA to hostB’s port 590M
# (in fact, it ssh-connects to hostB and then connects to localhost (on hostB).
# See the ssh man page for details on port forwarding)
#
# You can then point a VNC client on hostA at vncdisplay N of localhost and with
# the help of ssh, you end up seeing what hostB makes available on port 590M
#
# Use «-nolisten tcp» to prevent X connections to your VNC server via TCP.
#
# Use «-localhost» to prevent remote VNC clients connecting except when
# doing so through a secure tunnel. See the «-via» option in the
# `man vncviewer’ manual page.

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

Type=simple

# Clean any existing files in /tmp/.X11-unix environment
ExecStartPre=/bin/sh -c ‘/usr/bin/vncserver -kill %i > /dev/null 2>&1 || :’
ExecStart=/usr/bin/vncserver_wrapper <USER> %i
ExecStop=/bin/sh -c ‘/usr/bin/vncserver -kill %i > /dev/null 2>&1 || :’

WantedBy=multi-user.target

Выполните первый и второй шаги из Quick HowTo

sudo cp /lib/systemd/system/[email protected] /etc/systemd/system/vncserver@:1.service

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

sudo vi /etc/systemd/system/vncserver@\:1.service

В строке

Замените <USER> на имя вашего пользователя. (моего зовут andrei)

Можно вручную через vi
а можно с помощью sed

sudo sed -i ‘swrapper\ <USER>wrapper\ andrei‘ /etc/systemd/system/vncserver@\:1.service

Если вашего пользователя зовут

vncuser

команда будет выглядеть так:

sudo sed -i ‘swrapper\ <USER>wrapper\ vncuser‘ /etc/systemd/system/vncserver@\:1.service

5: Создание сервиса для VNC

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

Остановите текущий интерфейс:

Создайте простой скрипт для управления сервером VNC.

В сессии пользователя vnc (или любого другого пользователя с правами sudo) создайте скрипт-файл.

Вставьте в него следующий код без изменений. Этот скрипт содержит несколько параметров для запуска VNC.

Можно немного изменить скрипт, чтобы отрегулировать глубину цвета VNC.

В текстовом редакторе nano нажмите CTRL+O, чтобы сохранить, и CTRL+X, чтобы закрыть файл.

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

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

Примечание: При необходимости скрипт можно запустить/остановить вручную.

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

Скопируйте следующий код в файл. Данный сервис будет просто вызывать ранее созданный скрипт запуска.

Перезапустите systemctl и включите сервис:

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

Запустите сервер VNC как сервис.

Установка рабочего стола VNC на Ubuntu

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

В репозиториях Ubuntu есть несколько видов сред рабочего стола (DE). В данном руководстве мы будем устанавливать Xfce. Это быстрая, стабильная и легкая среда рабочего стола, что делает ее идеальной для использования на удаленном сервере.

Для начала обновите систему через:

Shell

sudo apt update
sudo apt upgrade

1
2

sudo apt update

sudo apt upgrade

Затем выполните следующую команду для установки Xfce на ваш сервер:

Shell

sudo apt install xfce4 xfce4-goodies xorg dbus-x11 x11-xserver-utils

1 sudo apt install xfce4 xfce4-goodies xorg dbus-x11 x11-xserver-utils

Время, что уходит на установку пакетов Xfce, зависит от особенностей вашего оборудования и системы.

Настройка x11vnc сервера

Протокол VNC позволяет получить удаленный доступ к графическому интерфейсу Linux, FreeBSD. Настройка x11vnc (порт 5900) на Ubuntu 9.10 GNOME (настройка на любом дистрибутиве аналогична этой).

# aptitude show x11vnc
...
Версия: 0.9.3.dfsg.1-1ubuntu2
...
Описание: VNC server to allow remote access to an existing X session
 
# aptitude install x11vnc
...
Следующие НОВЫЕ пакеты будут установлены:
  libvncserver0{a} x11vnc 
 пакетов обновлено, 2 установлено новых,  пакетов отмечено для удаления, и  пакетов не обновлено.
Необходимо получить 933kБ архивов. После распаковки 2.015kБ будет занято.
Хотите продолжить? Yn? Y
# man x11vnc
...
x11vnc - allow VNC connections to real X11 displays

       Typical usage is:

              Run this command in a shell on the remote machine "far-host" with X session you wish to view:

              x11vnc -display :0

...
$ x11vnc -storepasswd
Enter VNC password: 
Verify password:    
Write password to .vnc/passwd?  /n y

Создадим скрипт запуска для x11vnc и поместим его в домашнюю директорию пользователя, к X-сессии которого мы будем соединяться.

$ mkdir Autostart
$ touch Autostart/xvnc0.sh
$ chmod +x Autostart/xvnc0.sh
$ nano Autostart/xvnc0.sh
#!/bin/sh
/usr/bin/x11vnc -notruecolor -forever -display :0 -usepw

, где параметры

  • -notruecolor -отключение полной цветопередачи, полезно для слабого канала интернета. Получим восьмибитный цвет.
  • -forever -после запуска x11vnc ждёт подключения клиента, а по завершении подключения — завершает свою работу. Если необходимо чтобы x11vnc был запущен постоянно и не завершал работу после отключения клиента — нужно добавить опцию -forever к строке запуска.
  • -display :0 -явно указываем используемый дисплей. Если опция не указана то используется дисплей, указанный в переменной окружения DISPLAY. Если же переменная окружения DISPLAY не указана — создаётся новый дисплей.
  • -usepw — вынуждает x11vnc использовать авторизацию

Другие возможные параметры:

-scale 2/3 — масштабирование передаваемого изображения. Размер 2/3 от оригинала. Полезно для слабого канала интернета.

Далее в GNOME идем в меню Система→Параметры→Запускаемые приложения и добавляем скрипт xvnc0.sh для автоматической загрузки. Для KDE переносим файл в директорию .kde/Autostart

Установка 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:

Шаг 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.

Проверить статус VNC сервера

systemctl status vncserver@:1

vncserver@:1.service — Remote desktop service (VNC)
Loaded: loaded (/etc/systemd/system/vncserver@:1.service; enabled; vendor preset: disabled)
Active: active (running) since Tue 2021-03-16 13:49:55 EET; 3min 56s ago
Process: 23138 ExecStartPre=/bin/sh -c /usr/bin/vncserver -kill %i > /dev/null 2>&1 || : (code=exited, status=0/SUCCESS)
Main PID: 23145 (vncserver_wrapp)
CGroup: /system.slice/system-vncserver.slice/vncserver@:1.service
├─23145 /bin/sh /usr/bin/vncserver_wrapper andrei :1
└─24097 /bin/sh /usr/bin/vncserver_wrapper andrei :1

Dec 16 18:42:14 localhost.localdomain systemd: Starting Remote desktop service (VNC)…
Dec 16 18:42:14 localhost.localdomain systemd: Started Remote desktop service (VNC).
Dec 16 18:42:14 localhost.localdomain vncserver_wrapper: New ‘localhost.localdomain:1 (andrei)’ desktop is localhost.localdomain:1
Dec 16 18:42:14 localhost.localdomain vncserver_wrapper: Creating default startup script /home/andrei/.vnc/xstartup
Dec 16 18:42:14 localhost.localdomain vncserver_wrapper: Creating default config /home/andrei/.vnc/config
Dec 16 18:42:14 localhost.localdomain vncserver_wrapper: Starting applications specified in /home/andrei/.vnc/xstartup
Dec 16 18:42:14 localhost.localdomain vncserver_wrapper: Log file is /home/andrei/.vnc/localhost.localdomain:1.log

Проверить, что vnc server слушает на порту 5901 можно командой

ss -tulpn| grep vnc

tcp LISTEN 0 5 *:5901 *:* users:((«Xvnc»,pid=1330,fd=9))
tcp LISTEN 0 128 *:6001 *:* users:((«Xvnc»,pid=1330,fd=6))
tcp LISTEN 0 5 :5901 :* users:((«Xvnc»,pid=1330,fd=10))
tcp LISTEN 0 128 :6001 :* users:((«Xvnc»,pid=1330,fd=5))

Удалённый доступ к Linux с помощью VNC

На сегодняшний день самое популярное удаленное подключение к Linux из Windows, с использованием привычный в Windows графического интерфейса, является VNC (Virtual Network Computing) — утилита, использующая протокол RFB (Remote FrameBuffer — удалённый кадровый буфер). Управление осуществляется путём передачи нажатий клавиш на клавиатуре и движений мыши с одного компьютера на другой и ретрансляции содержимого экрана через компьютерную сеть.

Шаг 1. Установка рабочей среды XFCE

Xfce — одна из самых легковесных рабочих сред, используемых в Linux, она будет быстро работать даже при слабом и нестабильном сетевом подключении. Установите её с помощью команд:

Шаг 3. Настройка пароля

Перед началом выполнения всех действий необходимо задать пароль пользователя VNC.  Выполните команду:

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

Завершите процесс vncserver:

Шаг 4. Настройка скрипта запуска

Отредактируйте скрипт, который выполняется после запуска VNC-сервера:

Он должен содержать такой текст:

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

Шаг 6. Подключение из Windows

Укажите IP-адрес компьютера, к которому нужно подключиться, и номер порта в поле Remote Host. В данном примере — 192.168.56.102::5901:

После того, как будет введён пароль, вы должны увидеть рабочий стол Xfce:

Шаг 8. Настройка systemd

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

Его содержимое должно быть следующим:

Измените имя пользователя ubuntu и рабочего каталога ubuntu на нужные вам значения. Если у вас запущен VNC-сервер, остановите его:

Сообщите systemd о появлении нового сервиса:

Добавьте запуск вашего нового сервиса в список автозагрузки:

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

Ubuntu

Ubuntu — единственный дистрибутив Linux, на который нацелены многие разработчики программного обеспечения. В результате RealVNC имеет серьезную поддержку как сервера RealVNC, так и средства просмотра. Чтобы он работал в Ubuntu, вам не нужно включать какие-либо определенные PPA или сторонние репозитории программного обеспечения. Вместо этого для его использования требуется автономный файл пакета DEB.

Установка 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:

cd ~/Downloads

sudo dpkg -i VNC-Server-*-Linux-x64.deb
sudo apt install -f

Установка VNC Viewer

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

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

cd ~/Downloads

sudo dpkg -i VNC-Viewer-*-Linux-x64.deb

sudo apt install -f

Возможные ошибки

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

1. Учетная запись пользователя не указана в списке разрешений шлюза удаленных рабочих столов.

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

2. Возможно, удаленный компьютер указан в формате NetBIOS (например, computer1), но шлюз удаленных рабочих столов ожидает полное доменное имя или IP-адрес (например, computer1.fabrikam.com или 157.60.0.1).

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

3. Сертификат шлюза удаленных рабочих столов просрочен или отозван.

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

Популярные теги

ubuntu
linux
ubuntu_18_04
settings
debian
setup
ubuntu_16_04
error
macos
redhat
mint
problems
windows
install
server
android
bash
hardware
ubuntu_18_10
wifi
update
desktop
network
files
убунту
rhel
docker
web
kali
password
python
security
windows_10
nvidia
ustanovka
software
apt
ubuntu_20_04
filesystem
manjaro
shell
stretch
issues
kde
mysql
apache2
partition
wine
program
video_card
disk
package-management
apt-get
drivers
kernel
virtualbox
performance
vpn
video
gnome
games
keyboard
terminal
kubuntu
usb
nginx
command-line
macbook
sound
driver
wi_fi
centos
installation
display
delete
scripting
user
os
memory
hotkeys
disk_space
freebsd
dual_boot
ubuntu_17_10
opera
cron
backup
fedora
lubuntu
oshibka
chrome
boot
for
ssh
mail
zorin_os
arch_linux
установка
firewall
git

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

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