Виртуальные сетевые вычисления
Virtual Network Computing ( VNC ) — это графическая система совместного использования рабочего стола, которая использует протокол удаленного буфера кадров (RFB) для удаленного управления другим компьютером . Он передает вводимые данные с клавиатуры и мыши с одного компьютера на другой, передавая обновления графического экрана по сети . [1]
VNC не зависит от платформы: существуют клиенты и серверы для многих операционных систем с графическим интерфейсом, а также для Java . Несколько клиентов могут одновременно подключаться к VNC-серверу. Популярные варианты использования этой технологии включают удаленную техническую поддержку и доступ к файлам на рабочем компьютере с домашнего компьютера или наоборот.
Первоначально VNC был разработан в исследовательской лаборатории Olivetti & Oracle в Кембридже, Великобритания. Исходный код VNC и многие современные производные находятся в открытом доступе под лицензией GNU General Public License .
Существует несколько вариантов VNC. [2] которые предлагают свои особые функции; например, некоторые из них оптимизированы для Microsoft Windows или предлагают передачу файлов (не является частью собственно VNC) и т. д. Многие из них совместимы (без дополнительных функций) с собственно VNC в том смысле, что средство просмотра одного варианта может подключаться к серверу другого. ; другие основаны на коде VNC, но несовместимы со стандартом VNC.
VNC и RFB являются зарегистрированными торговыми марками RealVNC Ltd. в США и некоторых других странах.
История
[ редактировать ]Исследовательская лаборатория Olivetti & Oracle (ORL) [3] в Кембридже в Великобритании разработали VNC в то время, когда Olivetti и Oracle Corporation лабораторией владели . В 1999 году лабораторию приобрела AT&T, а в 2002 году закрыла ее исследовательскую деятельность.
Среди разработчиков, которые работали над VNC еще в исследовательской лаборатории AT&T: [4]
- Тристан Ричардсон (изобретатель)
- Энди Хартер (руководитель проекта)
- Квентин Стаффорд-Фрейзер
- Джеймс Уэзеролл
- Энди Хоппер
После закрытия ORL в 2002 году несколько членов команды разработчиков (в том числе Ричардсон, Хартер, Уэзералл и Хоппер) сформировали RealVNC, чтобы продолжить работу над открытым и коммерческим программным обеспечением VNC под этим именем.
Исходный исходный код под лицензией GPL был использован в нескольких других версиях VNC. Такое разветвление не привело к проблемам совместимости, поскольку протокол RFB спроектирован так, чтобы его можно было расширять. Клиенты и серверы VNC согласовывают свои возможности с помощью подтверждения связи , чтобы использовать наиболее подходящие параметры, поддерживаемые на обоих концах.
По состоянию на 2013 год [update], RealVNC Ltd заявляет, что термин «VNC» является зарегистрированным товарным знаком в США и других странах. [5]
Этимология
[ редактировать ]Название Virtual Network Computer/Computing (VNC) возникло в связи с работой ORL над тонким клиентом под названием Videotile, который также использовал протокол RFB. Videotile имел ЖК-дисплей с перьевым вводом и быстрое банкоматное подключение к сети. В то время сетевой компьютер обычно использовался как синоним тонкого клиента; VNC, по сути, представляет собой программный (то есть виртуальный) сетевой компьютер. [ нужна ссылка ]
Операция
[ редактировать ]- VNC Сервер — это программа на машине, которая совместно использует некоторый экран (и не может быть связана с физическим дисплеем — сервер может быть «безголовым» ) и позволяет клиенту совместно управлять им.
- VNC Клиент (или программа просмотра) — это программа, которая представляет данные экрана, поступающие с сервера, получает от них обновления и, предположительно, управляет ими, сообщая серверу о собранных локальных входных данных.
- VNC Протокол ( протокол RFB ) очень прост и основан на передаче одного графического примитива от сервера к клиенту («Поместите прямоугольник пиксельных данных в указанную позицию X,Y») и сообщений о событиях от клиента к серверу.
При обычном режиме работы средство просмотра подключается к порту на сервере (порт по умолчанию: 5900). Альтернативно (в зависимости от реализации) браузер может подключиться к серверу (порт по умолчанию: 5800). Сервер может подключиться к средству просмотра в «режиме прослушивания» через порт 5500. Одним из преимуществ режима прослушивания является то, что сайту сервера не нужно настраивать свой брандмауэр для разрешения доступа к порту 5900 (или 5800); обязанность лежит на зрителе, что полезно, если серверный сайт не имеет компьютерных знаний, а пользователь зрителя более осведомлен.
Сервер отправляет небольшие прямоугольники фреймбуфера клиенту . В своей простейшей форме протокол VNC может использовать большую полосу пропускания , поэтому были разработаны различные методы для снижения накладных расходов на связь. Например, существуют различные кодировки (методы определения наиболее эффективного способа передачи этих прямоугольников). Протокол VNC позволяет клиенту и серверу согласовывать, какую кодировку они будут использовать. Самая простая кодировка, поддерживаемая всеми клиентами и серверами, — это необработанное кодирование слева направо , при котором данные пикселей отправляются в порядке развертки , а после передачи исходного полноэкранного режима передаются только изменяющиеся прямоугольники. Это кодирование работает очень хорошо, если только небольшая часть экрана меняется от одного кадра к другому (например, когда указатель мыши перемещается по рабочему столу или когда текст пишется под курсором), но требования к пропускной способности становятся очень высокими, если много пикселей изменяются одновременно (например, при прокрутке окна или просмотре полноэкранного видео).
VNC по умолчанию использует TCP-порт 5900+ N , [6] [7] где N — номер дисплея (обычно: 0 для физического дисплея). Некоторые реализации также запускают базовый HTTP- сервер на порту 5800+ N , чтобы предоставить средство просмотра VNC в виде Java-апплета , что позволяет легко подключаться через любой веб-браузер с поддержкой Java. Можно использовать различные назначения портов, если и клиент, и сервер настроены соответствующим образом. Также существует реализация HTML5 VNC-клиента для современных браузеров (плагины не требуются). [8]
Хотя это возможно даже при низкой пропускной способности, использование VNC через Интернет облегчается, если у пользователя есть широкополосное соединение на обоих концах. может потребоваться расширенная трансляция сетевых адресов (NAT), настройка брандмауэра и маршрутизатора, Однако для установления соединения например переадресация портов. Пользователи могут устанавливать связь через технологии виртуальной частной сети (VPN), чтобы упростить использование через Интернет, или через подключение к локальной сети, если VPN используется в качестве прокси-сервера, или через повторитель VNC (полезно при наличии NAT). [9] [10]
Xvnc — это Unix VNC-сервер, основанный на стандартном X-сервере . Для приложений Xvnc выглядит как «сервер» X (т. е. он отображает клиентские окна), а для удаленных пользователей VNC — как VNC-сервер. Приложения могут отображаться на Xvnc, как если бы это был обычный X-дисплей, но они будут отображаться на любых подключенных средствах просмотра VNC, а не на физическом экране. [11] В качестве альтернативы можно настроить машину (которая может быть рабочей станцией или сетевым сервером) с экраном, клавиатурой и мышью для загрузки и запуска VNC-сервера в качестве службы или демона, после чего экран, клавиатуру и мышь можно удалить. и машина хранится в труднодоступном месте.
Кроме того, изображение, обслуживаемое VNC, не обязательно совпадает с изображением, которое видит пользователь на сервере. На компьютерах Unix/Linux, поддерживающих несколько одновременных сеансов X11, VNC может быть настроен на обслуживание определенного существующего сеанса X11 или на запуск одного из них. Также возможно запустить несколько сеансов VNC с одного компьютера. В Microsoft Windows обслуживаемым сеансом VNC всегда является текущий сеанс пользователя. [ нужна ссылка ]
Пользователи обычно развертывают VNC как кроссплатформенную систему удаленного рабочего стола. Например, Apple Remote Desktop для Mac OS X (и какое-то время « Back to My Mac » в «Leopard» — Mac OS X 10.5 до «High Sierra» — macOS 10.13) взаимодействует с VNC и подключается к компьютеру пользователя Unix. текущий рабочий стол, если он обслуживается с помощью x11vnc , или в отдельный сеанс X11, если он обслуживается с помощью TightVNC . Из Unix TightVNC подключится к сеансу Mac OS X, обслуживаемому Apple Remote Desktop, если опция VNC включена, или к VNC-серверу, работающему в Microsoft Windows. [12]
В июле 2014 года RealVNC опубликовала предварительную версию Wayland для разработчиков. [13] [14]
Безопасность
[ редактировать ]По умолчанию RFB не является безопасным протоколом. Хотя пароли не передаются в виде открытого текста (как в telnet ), взлом может оказаться успешным, если и ключ шифрования , и закодированный пароль будут перехвачены из сети. По этой причине рекомендуется использовать пароль длиной не менее 8 символов. С другой стороны, в некоторых версиях VNC существует ограничение в 8 символов; если отправляется пароль, длина которого превышает 8 символов, лишние символы удаляются, а усеченная строка сравнивается с паролем.
UltraVNC поддерживает использование плагина шифрования с открытым исходным кодом, который шифрует весь сеанс VNC, включая аутентификацию по паролю и передачу данных. Он также позволяет выполнять аутентификацию на основе учетных записей пользователей NTLM и Active Directory . Однако использование таких плагинов шифрования делает его несовместимым с другими программами VNC. RealVNC предлагает высоконадежное шифрование AES как часть своего коммерческого пакета, а также интеграцию с Active Directory. Workspot выпустила патчи шифрования AES для VNC. По данным TightVNC, [15] TightVNC небезопасен, поскольку данные изображения передаются без шифрования. Чтобы обойти это, его следует туннелировать через SSH-соединение (см. ниже).
VNC может быть туннелирован через соединение SSH или VPN , что добавит дополнительный уровень безопасности с более надежным шифрованием. Клиенты SSH доступны для большинства платформ; Туннели SSH можно создавать из клиентов UNIX , клиентов Microsoft Windows, клиентов Mac (включая Mac OS X и System 7 и выше) и многих других. Существуют также бесплатные приложения, которые создают мгновенные VPN-туннели между компьютерами.
Дополнительной проблемой безопасности при использовании VNC является проверка того, требует ли используемая версия авторизации от владельца удаленного компьютера, прежде чем кто-либо возьмет под контроль свое устройство. Это позволит избежать ситуации, когда владелец компьютера, к которому получен доступ, без предварительного уведомления узнает, что кто-то контролирует его устройство.
См. также
[ редактировать ]Ссылки
[ редактировать ]- ^ Ричардсон, Т.; Стаффорд-Фрейзер, К.; Вуд, КР; Хоппер, А. (1998). «Виртуальные сетевые вычисления» (PDF) . IEEE Интернет-вычисления . 2 : 33–38. CiteSeerX 10.1.1.17.5625 . дои : 10.1109/4236.656066 .
- ^ Семейство приложений дистанционного управления VNC: список вариантов VNC.
- ^ «Часто задаваемые вопросы о VNC (FAQ)» . 1999. Архивировано из оригинала 15 августа 2000 года.
- ^ Профили руководителей RealVNC
- ^ Авторские права и товарные знаки RealVNC. По состоянию на 23 февраля 2018 г.
- ^ «RealVNC – Часто задаваемые вопросы» .
- ^ «Конфигурация UltraVnc» .
- ^ «ноВНК» .
- ^ «Репитер OpenWRT VNC» .
- ^ «UVNC-ретранслятор» .
- ^ Лаборатории AT&T, Кембридж (1999). «VNC-сервер на базе X» . Виртуальные сетевые вычисления . Архивировано из оригинала 19 марта 2007 года . Проверено 24 марта 2007 г.
- ^ «Сервер OnlineVNC для ОС Windows» .
- ^ «Предварительный просмотр VNC® Wayland для разработчиков» . 8 июля 2014 года. Архивировано из оригинала 14 июля 2014 года . Проверено 10 июля 2014 г.
- ^ «Электронное письмо с предварительным просмотром для разработчиков RealVNC Wayland» . сайт freedesktop.org . 9 июля 2014 г.
- ^ Насколько безопасен TightVNC? TightVNC Часто задаваемые вопросы. TightVNC.com, доступ: 23 февраля 2018 г.
Внешние ссылки
[ редактировать ]- Стандарт протокола RFB 3.8
- AT&T VNC - оригинальный веб-сайт AT&T-Cambridge VNC