Vnc сессия. Подключение к удаленному компьютеру по VNC. Некоторые распространенные методы устранения проблем

  • 13.04.2019

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

Система VNC платформонезависима: VNC-клиент, называемый VNC viewer, запущенный на одной операционной системе , может подключаться к VNC-серверу, работающему на любой другой ОС. Существуют реализации клиентской и серверной части практически для всех операционных систем, в том числе и для J2ME). К одному VNC-серверу одновременно могут подключаться множественные клиенты. Наиболее популярные способы использования VNC - удалённая техническая поддержка и доступ к рабочему компьютеру из дома.

VNC была разработана компанией AT&T. Оригинальные исходные коды доступны на условиях лицензии GNU General Public License , как и многие варианты VNC, существующие на данный момент.

История

VNC была создана в Olivetti & Oracle Research Lab, которая в то время принадлежала Oracle Corporation. В 1999 году лаборатория была приобретена компанией AT&T, которая закрыла отдел разработок в 2002-м .

Название возникло из компьютерной сети тонких клиентов Videotile, которая представляла из себя LCD-панель с вводом пером и быстрым

Разработчики, работавшие над VNC в AT&T Research Lab:

  • Tristan Richardson
  • Quentin Stafford-Fraser
  • James Weatherall
  • Ken Wood
  • Andy Harter
  • Charlie McLachlan
  • Paul Webster

Устройство

VNC состоит из двух частей: клиента и сервера. Сервер - программа, предоставляющая доступ к экрану компьютера, на котором она запущена. Клиент (или viewer) - программа, получающая изображение экрана с сервера и взаимодействующая с ним.

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

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

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

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

Безопасность

Изначально VNC не использует шифрование трафика, однако в процедуре аутентификации пароль не передается в открытом виде, а используется алгоритм "вызов-ответ" с и используется как при соединении через Интернет , так и в локальных сетях . SSH-клиенты позволяют создавать SSH-туннели как со всех основных платформ (Windows,

Также многие современные версии VNC поддерживают расширения стандартного протокола, которые реализуют шифрование и/или сжатие VNC-трафика, разграничения по спискам доступа (англ.) - официальная версия, поддерживаемая командой AT&T Laboratories

  • TightVNC (англ.) - альтернативная версия основанная на RealVNC
  • UltraVNC (англ.) - реализация VNC под Microsoft Windows
  • Vinagre (англ.) - VNC-клиент для рабочего окружения GNOME ОС Какое программное обеспечение VNC лучше?
  • Wikimedia Foundation . 2010 .

    Смотреть что такое "VNC" в других словарях:

      VNC - son las siglas en inglés de Virtual Network Computing (Computación Virtual en Red). VNC es un programa de software libre basado en una estructura cliente servidor el cual nos permite tomar el control del ordenador servidor remotamente a través de … Wikipedia Español

      VNC - son las siglas en inglés de Virtual Network Computing (Computación en Red Virtual). VNC es un programa de software libre basado en una estructura cliente servidor el cual nos permite tomar el control del ordenador servidor remotamente a través de … Enciclopedia Universal

      REDIRECT Virtual Network Computing … Википедия

      VNC

      Vnc - typische VNC Sitzung in einem Fenster Virtual Network Computing (VNC) ist eine Software, die den Bildschirminhalt eines entfernten Rechners (Server) auf einem lokalen Rechner (Client) anzeigt und im Gegenzug Tastatur und Mausbewegungen des… … Deutsch Wikipedia

      VNC - Cette page d’homonymie répertorie les différents sujets et articles partageant un même nom. VNC, sigle composé des trois lettres V, N et C, peut faire référence à : Virtual Network Computing, un logiciel d affichage graphique distant ;… … Wikipédia en Français

    Удалённо управлять компьютером – звучит интригующе, но только для тех, кто раньше с этим не сталкивался. На самом деле этот сервис появился уже давно и широко используется профессионалами. Многие разработчики различных программ изначально внедряют такую возможность в свои продукты, чтобы была возможность быстро помочь клиентам справиться с неполадками или настройками программного обеспечения. При наличии высокоскоростного интернета это происходит очень просто и быстро. Однако иногда возникает потребность помочь знакомым, друзьям или родственникам, особенно если это люди старшего поколения, впервые взявшие мышку в руку. Так же время от времени нужно срочно попасть на свой домашний компьютер, например, когда забыл скачать на флешку важную презентацию, или, находясь в другом городе, хочется показать подруге свои фотографии из последней поездки на Урал.

    UltraVnc – это ещё одна программа для удалённого управления компьютером.
    Достоинства: бесплатная и поддерживает как Windows, так и unixOS (напримерLinux).
    Недостатки: куча пугающих настроек на английском языке.

    Итак, глаза боятся, а руки делают. Скачиваем свежую версию с официального сайта www.uvnc.com или скачать . Запускаем. Выбираем server (сервер) и viewer (просмотрщик). Сервер ставится на тех компьютерах, к которым будем подключаться, а просмотрщик на тех, с которых будем подключаться.

    «Установить сервис » и «Позволить использовать Ctrl+Alt+Del ». Да.

    Поле «Incoming Connections » — «Входящие соединения».

    Accept Socket Connections - включаем (т.е. нетрогаем).

    Display - показывает номер порта (теоретически). Не трогаем.

    Ports – пусть остаётся авто.

    Enable JavaViewer (HTTP connect) - разрешить java-просмотрщик (через браузер). Да.

    Allow Loopback Connections - разрешить соединение через «петлю» (как бы сам не себя для теста). Оставляем.

    Loopback Only - только «петля» — больше ничего работать не будет. Нет.

    Поле «Authentication » — «Аутентификация» (подтверждение личности/прав).

    VNC Password - пароль на управление (на англ.).

    View-Only Password – пароль только для просмотра (на англ.). Неплохо бы выставить его отличным от VNC.

    Require MS Logon — применяет учётные записи windows. Галочку не ставим.

    Поле «File Transfer » — «Передача файлов».Да, пригодится.

    Поле «DSM Plugin » — шифрование данных. Как хотите, я не ставлю.

    Поле «When last client disconnects » — «Когда последний клиент отключен».

    — Ничего не делать. Выбираем .
    — Заблокировать комп.
    — Завершить сеанс.

    Поле «Keyboard&Mouse » — «Клавиатура и мышь». Я ничего не выставляю.
    — Отключает мышь и клаву того, кто подключается.
    — Отключает мышь и клаву того, к кому подключаются.
    — Японская клава.

    Поле «Query on incoming connection » — «Запрос о входящем соединении».
    Спрашивает у пользователя, разрешает ли он подключение к нему.
    Display Query Window — время показа сообщения. Если пользователь ничего не нажал:
    Refuse – отказ подключения.
    Accept – резрешение подключения.

    Поле «Multi Viewer Connections » — «Одновременное подключение нескольких клиентов».
    — «Disconnect all existing connections » — отключение последнего после подключения нового. Оставляем.
    — «Keep existing connections » — удерживать все подключения.
    — «Refuse the new connection » — пункт означает, что идёт запрет на новое подключение, хотя на практике никакого запрета нет.
    — «Refuse all new connections » — не позволять новых подключений, если одно уже есть.

    Поле «Misc. » - тут всякие полезности для удобства, ускорения работы, уменьшения трафика.
    Remove Aero (Vista) - отключить Aero (3D, прозрачность и прочие «украшения»). Отмечаем.
    Remove Wallpaperfor Viewers - убирает обои с рабочего стола. Ставим галочку.
    EnableBlank Monitoron Viewer Request - отключение монитора управляемого компа. Данная опция работает со сбоями, поэтому я снимаю галочку.
    Disable Only Inputson Blanking Request - запрещает только ввод с консоли сервера, при этом экран не закрывается.
    Enable Alpha-Blending Monitor Blanking - другой вариант отключения монитора сервера. Используйте, если с первым вариантом проблемы.
    Capture Alpha-Blending - возможность видеть включенное видео. Работает со сбоями, но очень полезная функция, когда нужно просмотреть видеокамеры, например. Отмечаем.
    Disable Tray icon - отключает иконку в трее. Отмечаем.
    Forbid the user to close down WinVNC - запрещает отключать сервер. Ставим галочку.
    Default Server Screen Scale - масштаб экрана при подключении. Оставляем 1/1.

    Поле «Logging » — «Создание log-файла»
    Log debug infos to the WinVNC.log file - пишет лог сервера. Не нужно.

    Настройки выставлены, кликаем Apply и ОК.

    На рабочем столе появляются три иконки: просмотрщик (Ultra VNC Viewer), сервер (Ultra VNC Server) и настройки (Ultra VNC Settings).
    Открываем «Настройки» (Settings) и можем их здесь изменить. Но есть одна новая настройка «ScreenCapture » — захват экрана. Позволяет делать скриншоты рабочего стола.

    Поле «Capture Options » — «Опции захвата». — Poll Full Screen – весь экран.
    Poll Foreground Window – активное окно.
    Poll Console Windows Only – только окно консоли.
    Poll On Event Only –только окно события.
    Poll Window Under Cursor – окно под курсором.
    LowAccuracy (низкая точность) — дает прибавку в скорости за счет снижения точности.

    Поле «Advanced » — «Расширенные».
    Use System HookDll - опция имеет смысл на Windows 9x.
    Video Hook Driver - использовать драйвер захвата видео. Обеспечивает наилучшее быстродействие на Windows XP, Vista, 7.
    Show Primary Display — показывать первый экран.
    Show Secondary Display – показать второй экран.
    Capture Alpha-Blending – захват изображения видео.
    Remote Aer While connected – отключить Aero, когда подключено соединение.
    Remote Wall paper While connected – отключить обои рабочего стола, когда подключено соединение.

    Двойной клик по значку «сервера» (Ultra VNC Server) запускает сервер, если он ещё не запущен.
    Теперь запускаем «просмотрщик» (Ultra VNC Viewer).

    Поле «Quick Options » настраивается скорость подключения.
    Оставляем авто. Так же есть настройки:
    View Only – только просмотр. Только при подглядывании.
    Auto Scaling – нет полос прокрутки, при движении мышки вниз экран движется сам. Ставим .
    Confirm Exit — подтверждать выход. Не нужно .

    В общем больше нам ничего не нужно, поэтому вводим IP-адрес компьютера (как узнать IP-адрес своего компьютера смотрите ), на котором стоит уже настроенный сервер (UltraVNCServer) и жмём «Connect ». После запроса пароля попадаем на нужный нам компьютер.

    (Visited 28 161 times, 7 visits today)

    Исходя из названия приложения VNC Viewer, многие пользователи сразу могут догадаться, к какому классу программного обеспечения оно относится, например, проведя аналогию с известным пакетом TeamViewer. Однако рядовые пользователи могут столкнуться с такой утилитой впервые, поэтому стоит отдельно остановиться на некоторых вопросах, связанных с тем, как и какую модификацию программы лучше установить, как настроить приложение для оптимального режима работы, как пользоваться VNC Viewer, «выжав» из приложения максимум его возможностей.

    Общие сведения о программе VNC Viewer

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

    То есть данную программу можно отнести к классу RDP-приложений, предназначенных для подключения к удаленному «Рабочему столу». Однако только доступом к удаленным компьютерам дело не ограничивается, поскольку в самой программе имеется еще немало дополнительных возможностей:

    • Полное управление настройками без ограничений в полноэкранном или оконном режиме.
    • Трансфер файлов.
    • Возможность отсылки сообщений через встроенный чат.
    • Блокирование периферийных устройств, если это необходимо (мыши, клавиатуры и т. д.).
    • Возможность доступа к подключенным ПК через браузер.
    • Организация подключения с несколькими терминалами одновременно.

    Сразу же стоит отметить, что технология Virtual Network Computing (VNC)имеет и еще одно неоспоримое преимущество, если сравнивать с аналогами. Дело в том, что в ней есть возможность установки серверной и клиентской части (в зависимости от того, какой именно тип подключения будет использоваться в дальнейшем), плюс, тонкая настройка ПО для каждого варианта установки с целью обеспечения максимальной производительности.

    Особенности выбора инсталляционного дистрибутива

    Прежде чем приступать к установке, необходимо определиться с выбором модификации VNC-клиента, который предполагается установить. Во-первых, сама программа является кроссплатформенной, может инсталлироваться практически во все известные стационарные и мобильные операционные системы. Во-вторых, для тех же ОС Windows можно найти версии программы RealVNC, TightVNC, UltraVNC и облегченную модификацию UltraVNC SC (все версии совместимы между собой, однако некоторые функции могут оказаться недоступными), для Mac OS X - Chicken и JollysFastVNC. В-третьих, следует определиться с типом устанавливаемого клиента (серверная часть используется для организации подключения с центральной машины к дочерним терминалам, а клиентская - для подключения с дочерних машин к центральному серверу).

    В-четвертых, непосредственно на официальном ресурсе разработчика можно выбрать предпочитаемый формат файла установщика VNC Viewer для Windows (EXE, MSI) или загрузить дистрибутив в виде запакованного архива ZIP. Последний пункт - по желанию пользователя.

    Установка VNC Viewer

    Теперь перейдем непосредственно к инсталляции выбранного программного продукта. Заметим, что практически для всех модификаций процесс установки выглядит одинаково.

    Для старта инсталляции в Windows версий 7 и выше файл установщика VNC-клиента запускается исключительно с администраторскими привилегиями (в меню ПКМ выбирается пункт запуска от имени администратора). В самом процессе инсталляции нет ничего необычного.

    Пользователю нужно выбрать предпочитаемый язык, принять условия лицензионного соглашения, указать путь установки (его можно не менять), на одной из стадий добавить значок на «Рабочий стол», а затем просто нажать кнопку старта установки.

    Первый запуск приложения

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

    Как пользоваться VNC Viewer?

    Сначала через файловое меню выбираете пункт нового подключения (New Connection), а затем в новом окне вводите IP-адрес удаленного терминала или полное название компьютера (адрес можно узнать на подключаемой машине, воспользовавшись свойствами интернет-соединения или командной строкой с вводом команды ipconfig, а имя компьютера можно просмотреть в свойствах системы). После этого появится окошко запроса пароля, в котором нужно ввести искомую комбинацию. При соответствии комбинации установленному на удаленном компьютере паролю появится удаленный «Рабочий стол».

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

    Если внимательно посмотреть на окно создания соединения, в нем можно обнаружить вкладку для экспертов. Если в этих настройках выбрать, например, предпочитаемые алгоритмы сжатия передаваемых и принимаемых данных, то можно существенно снизить нагрузку на центральный процессор и оптимизировать применение технологии Virtual Network Computing даже для сетей с пропускной способностью на уровне 256 кбит/с. Для графики рекомендуется устанавливать высокий уровень компрессии (Compression Level) с минимальным качеством (JPEG Quality), а в качестве дополнительной оптимизации активировать уменьшение количества цветов (Restricted Colors или bgr233).

    Кроме того, стоит обратить внимание, что на одном терминале может использоваться подключение к нескольким машинам на основе базового порта 5900 через параметр дисплея. По умолчанию основной дисплей имеет значение «0», а для всех остальных оно увеличивается («1», «2» и т. д.). Соответственно, изменятся порт (5901, 5902 и т. д.), который нужно будет указывать после адреса через двоеточие (например, 192.168.0.5:5901). В случае с динамическими (а не статическими) адресами, дополнительно можно воспользоваться получением динамического DNS, например, на основе DynDNS. Можно выставить такую настройку на маршрутизаторе или зарегистрироваться на портале сервиса в интернете. В этом случае служба будет передавать установленному клиенту все сведения, связанные с изменением IP подключаемого компьютера.

    Возможные сбои в работе программы

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

    Некоторые распространенные методы устранения проблем

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

    • Внесите установленную программу в список приложений, которым разрешено использовать интернет-соединение в брандмауэре Windows.
    • Создайте новые правила для порта 5900 исходящего и входящего подключений.
    • Если предыдущее решение не поможет, выполните проброс порта 5900 на маршрутизаторе.
    • Внесите программу в список исключений антивируса.
    • Проверьте правильность указания статического адреса и пароля доступа к удаленному терминалу.

    Итоги

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

    Работа с VNC-клиентом. Материал ориентирован на неопытного пользователя.

    1. Установка VNC-клиента
    2. Подключение VNC-клиента к удаленному компьютеру
    3. Отключение VNC-клиента от удаленного компьютера
    4. Тюнинг VNC-клиента
    5. Частые проблемы

    Для работы с удаленным компьютером по VNC на компьютере пользователя нужно запустить программу-клиент (VNC viewer, VNC client). Эта программа передает на удаленный компьютер данные о нажатиях на клавиши и о движениях мыши, сделанных пользователем, и показывает информацию, предназначенную к выводу на экран.

    1. Установка VNC-клиента
    Для ОС Windows можно бесплатно скачать и инсталлировать VNC-клиент UltraVNC и TightVNC .

    Mac OS X начиная с версии 10.5 имеет поддержку VNC-клиента в RemoteDesktop . Для предыдущих версий можно использовать VNC-клиенты JollysFastVNC и .

    Для Linux ветви Debian (Ubuntu) VNC-клиент устанавливается из репозитория командой:

    Apt-get install vncviewer

    Для ветви RedHat (CentOS, Fedora) - командой:

    Yum install vnc

    Для FreeBSD VNC-клиент (TightVNC) устанавливается из пакетов командой:

    Pkg_add -r tightvnc

    2. Подключение VNC-клиента к удаленному компьютеру
    Для подключения VNC-клиента к удаленному компьютеру требуется указать его IP-адрес или DNS-имя, и номер дисплея (по умолчанию, :0) или номер TCP-порта (по умолчанию, 5900). Если VNC-сервер требует авторизации, то при подключении к нему VNC-клиент запросит пароль. Обратите внимание, что пароль доступа к VNC-серверу не связан с каким-либо аккаунтом (учетной записью пользователя) на удаленном компьютере, а служит только для ограничения доступа к дисплею VNC-сервера.

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

    Так как на компьютере одновременно могут работать несколько VNC-серверов, для их разделения используют параметр номер дисплея . Например, один VNC-сервер может быть запущен на дисплее:0, другой - на дисплее:1. Каждому номеру дисплея соответствует номер TCP-порта, на котором VNC-сервер принимает соединения. Номер порта для дисплея получается прибавлением номера дисплея к базовому номеру порта - 5900. Дисплею:0 соответствует TCP-порт 5900, дисплею:1 - порт 5901.

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

    Главный параметр, который влияет на объем передаваемых данных - алгоритм кодирования передаваемой графики. Для уменьшения объема и, соответственно, ускорения работы, рекомендуется использовать алгоритмы Tight, ZLib, ZRLE - по сравнению с несжатыми данными (Raw), они обеспечивают сжатие в десятки раз, заметно нагружая процессор. Эти алгоритмы кодирования обеспечивают комфортную работу даже на каналах со скоростью 256-512 Кбит/сек.

    Для сокращения объема передаваемой по сети информации также можно устанавливать высокий уровень сжатия (Compression Level, Compression Value), низкий уровень качества JPEG (JPEG Quality) и включать режим уменьшения количества цветов (-bgr233, Restricted colors). Самый большой эффект из них при заметном снижении качества изображения дает режим уменьшения количества цветов - объем передаваемой информации уменьшается в 1.5-3 раза, соответственно, в 1.5-3 раза ускоряется отображение на экране.

    JPEG применяется алгоритмом кодирования Tight для сжатия участков экрана, содержащих фотографии и другие сложные изображения с большим числом цветов. Использование Tight+JPEG сокращает в 2-5 раз объем передаваемых при этом данных. Другие алгоритмы кодирования JPEG не поддерживают.

    1. Выпадающего меню «Система -> Параметры»

    Объем передаваемых данных и скорость отображения на канале 1 Мбит/сек при открытии выпадающего меню «Система -> Параметры» (на рисунке меню выделено зеленым пунктиром):

    5. Частые проблемы
    Не удается подключиться к VNC-серверу
    Нужно проверить:
    1. есть ли доступ к интернету;
    2. отвечает ли виртуальный сервер на пинги;
    3. запущен ли на виртуальном сервере VNC-сервер;
    4. нет ли по пути файервола, закрывающего доступ к TCP-порту VNC-сервера;
    5. правльно ли указан номер дисплея или TCP-порт VNC-сервера (номер порта = 5900 + номер дисплея).
    Медленная работа через достаточно быстрый канал
    Если VNC-клиент не может согласовать с VNC-сервером использование алгоритм кодирования графики с компрессией данных, выбирается алгоритм по умолчанию - Raw, который передает данные без сжатия. Также кодирование без сжатия или с низким уровнем сжатия может автоматически выбираться VNC-клиентом при работе через быструю локальную сеть. Данную проблему можно исправить, принудительно указав в настройках VNC-клиента алгоритм кодирования с высоким уровнем сжатия - ZLib, ZRLE, Tight.

    Однако, для некоторых сочетаний клиента и сервера такое решение может быть бесполезным из-за ошибок в согласовании алгоритма кодирования. Например, клиент TightVNC с сервером RealVNC часто могут работать только с кодировкой Raw. Решением в этом случае будет смена VNC-клиента или VNC-сервера.

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

    Данный мануал поможет установить VNC на виртуальный выделенный сервер Ubuntu 16.04 и настроить безопасное подключение при помощи SSH-туннеля. Сервер VNC будет использовать TightVNC , быстрый и легковесный пакет удалённого управления, поддерживающий работу даже при медленном интернете.

    Требования

    • Сервер Ubuntu 18.04, настроенный по .
    • Локальный компьютер с предустановленным клиентом VNC, который поддерживает VNC-соединения через SSH-туннель. Пользователи Windows могут установить TightVNC , RealVNC или UltraVNC . Пользователи Mac OS X могут обратиться к встроенному пакету Screen Sharing или использовать кроссплатформенные приложения (например, RealVNC). Пользователи Linux могут выбрать vinagre, krdc, RealVNC , TightVNC и т.п.

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

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

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

    sudo apt update
    sudo apt install xfce4 xfce4-goodies

    Теперь установите TightVNC:

    sudo apt install tightvncserver

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

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

    You will require a password to access your desktops.
    Password:
    Verify:

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

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

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

    Would you like to enter a view-only password (y/n)? n
    xauth: file /home/8host/.Xauthority does not exist
    New "X" desktop is your_hostname:1
    Creating default startup script /home/8host/.vnc/xstartup

    2: Настройка сервера VNC

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

    При первом запуске VNC использует порт 5901. VNC называет этот порт:1. VNC может запускать другие экземпляры на другие порты, которые будут называться:2, :3, и т.д.

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

    vncserver -kill:1

    Команда вернёт такое сообщение (PID будет отличаться):

    Killing Xtightvnc process ID 17648

    Создайте резервную копию файла xstartup:

    mv ~/.vnc/xstartup ~/.vnc/xstartup.bak

    Затем создайте новый файл xstartup:

    nano ~/.vnc/xstartup

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

    ~/.vnc/xstartup
    #!/bin/bash
    xrdb $HOME/.Xresources
    startxfce4 &

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

    Теперь нужно сделать файл исполняемым:

    sudo chmod +x ~/.vnc/xstartup

    Перезапустите 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

    3: Безопасное подключение к VNC

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

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

    Флаг -L указывает привязки портов. В этом случае мы привязываем порт 5901 удаленного подключения к порту 5901 на локальном компьютере. Флаг -C включает сжатие, а -N сообщает ssh, что выполнять удаленную команду не нужно. Параметр -l указывает имя удаленного входа.

    Не забудьте заменить 8host и your_server_ip своими данными.

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

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

    После этого вы увидите стандартный экран Xfce.

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

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

    4: Создание файла сервиса VNC

    Теперь нужно настроить сервер VNC как сервис system.

    Создайте новый юнит-файл /etc/systemd/system/[email protected]:

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

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

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

    /etc/systemd/system/[email protected]
    Description=Start TightVNC server at startup
    After=syslog.target network.target
    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:%i
    ExecStop=/usr/bin/vncserver -kill:%i
    WantedBy=multi-user.target

    Команда ExecStartPre останавливает VNC, если сервис уже запущен. Команда ExecStart запускает VNC и устанавливает глубину цвета – 24-битный цвет с разрешением 1280×800. Вы также можете изменить эти параметры в зависимости от потребностей.

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

    Затем дайте сообщите системе про новый юнит файл.

    sudo systemctl daemon-reload

    Включите его:

    sudo systemctl enable [email protected]

    Цифра 1, идущая за @, определяет, какой номер дисплея должен отображаться в сервисе, в этом случае это значение по умолчанию.

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

    vncserver -kill:1

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

    sudo systemctl start vncserver@1

    Чтобы убедиться, что сервер запущен, проверьте его состояние:

    sudo systemctl status vncserver@1

    [email protected] — Start TightVNC server at startup

    Loaded: loaded (/etc/systemd/system/[email protected]; indirect; vendor preset: enabled)
    Active: active (running) since Mon 2018-07-09 18:13:53 UTC; 2min 14s ago
    Process: 22322 ExecStart=/usr/bin/vncserver -depth 24 -geometry 1280x800:1 (code=exited, status=0/SUCCESS)
    Process: 22316 ExecStartPre=/usr/bin/vncserver -kill:1 > /dev/null 2>&1 (code=exited, status=0/SUCCESS)
    Main PID: 22330 (Xtightvnc)
    ...

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

    Снова запустите туннель SSH:

    ssh -L 5901:127.0.0.1:5901 -C -N -l 8host your_server_ip

    Создайте новое подключение с клиента VNC на localhost:5901, чтобы протестировать настройку.

    Заключение

    Теперь на сервере Ubuntu 18.04 установлен сервер VNC. С его помощью вы можете управлять файлами, программами и настройками удалённого сервера (например, удаленно запускать веб-браузер).

    Tags: ,