СОФТЕРРА: Длинные руки: Прикладной телекинез и никакой мистики. Часть 1
Автор: Ралько, Андрей
Бывают ситуации, когда нужно оказаться у экрана компьютера, установленного в соседнем здании или расположенного за несколько сотен километров. Причины для этого могут быть разные — например, потребность в виртуализации собственного десктопа на рабочем месте для доступа к нему из дома, удаленное системное администрирование, дистанционное обучение, консультирование и поддержка пользователей.
Сетевые технологии делают эту задачу решаемой с помощью клиент-серверных систем удаленного управления. Они позволяют через сеть «видеть», что отображается на управляемом компьютере, и передавать назад команды клавиатуры и мыши. При этом на рабочей станции, выполняющей роль управляющего терминала, создается полная «иллюзия присутствия», которая тем реалистичней, чем выше качество канала связи между компьютерами. Существует множество технологий удаленного управления — мы расскажем о нескольких наиболее распространенных представителях этого семейства.
Одним из эффективных способов организации дистанционного доступа и контроля удаленной рабочей станции является технология VNC (Virtual Network Computing), разработанная в лаборатории Olivetti & Oracle Research Lab, ставшей впоследствии частью AT&T. Исходная реализация VNC была выпущена с открытыми исходниками под лицензией GPL, а среди его современных вариаций есть как коммерческие, так и бесплатные.
Отличительные черты VNC — это в первую очередь впечатляющая платформонезависимость, включающая реализации для десятков операционных систем, сравнительная простота используемого протокола RFB (Remote Frame Buffer — удаленная видеопамять), а также хорошая совместимость различных реализаций серверов и клиентов.
Первые open source-реализации VNC стали доступны начиная с 1998 года. В 2002 году в Великобритании изобретателями VNC-технологии была основана компания RealVNC (realvnc.com), развивающая коммерческие реализации VNC.
В настоящее время на сайте компании-разработчика предлагается три варианта поставки продукта — Free Edition, Personal Edition и Enterprise Edition, для двух последних возможно 30-дневное Trial-использование. RealVNC является поистине кроссплатформной системой: на download-странице сайта можно найти версии под Windows, Linux, Solaris, HP-UX и Mac OS. Разработчики также обещают поддержку Microsoft PocketPC, которая в данный момент находится в бета-тестировании. Реализуются соединения и через HTTP с использованием Java-апплетов.
RealVNC-сервер допускает запуск в режимах приложения и сервиса, два способа аутентификации — обычную с паролем и на основе учетных записей NT, а также имеет функцию шифрования трафика на основе 128-битного AES алгоритма (в платных версиях). Free Edition шифрование не поддерживает, а сам по себе VNC не считается безопасным протоколом, поэтому соединения по нему рекомендуется устанавливать поверх SSH— или VPN-туннелей.
Скорость обновления изображения в клиентской части системы удаленного контроля во многом определяется эффективностью видеозахвата на сервере. Сервер RealVNC может использовать три метода: обычный, когда регистрируется изменение содержимого всего экрана, метод с применением hook-техники, предусматривающей перехват сообщений к окнам, и захват с помощью mirror-драйвера. Бесплатная и пробные платные версии сервера допускают только первый, самый медленный тип захвата.
Клиент (вьюер) представляет собой простое окно без инструментальной панели — все опции программы доступны из контекстного меню, в частности, метод кодирования и количество цветов, используемых для отображения в окне клиента. Впрочем, последний параметр, как показывает практика, почти не влияет на время отклика.
В целом интерфейсы как сервера, так и клиента довольно аскетичны и имеют небольшое количество настроек. Интересно, что для передачи файлов между машинами не предусмотрено отдельного диалога, а используются стандартные средства Copy/ Paste (копирование — из окна вьюера, а вставка — уже в локальные папки). При первом запуске непонятно, есть ли эта функция вообще, если бы не малозаметный checkbox «Enable file transfer» в опциях вьюера.
Лицензионная версия RealVNC-сервера доступна в двух вариантах: Enterprise ($50), и Personal ($30).
TightVNC и Ultr@VNC являются открытыми вариантами систем удаленного контроля на основе VNC. TightVNC (рис. 1) так же как и RealVNC представляет собой кроссплатформный продукт, хоть и с гораздо более скромным списком поддерживаемых ОС — для скачивания доступны версии только под Windows и Linux. На момент написания статьи на сайте разработчика помимо стабильной предлагалась еще и development-версия, наделенная рядом новых свойств, в частности, поддержкой многомониторных конфигураций.
Наверное, каждая программа в чем-то проигрывает другим, но в то же время содержит полезные функции, присущие только ей. Так и TightVNC — не поддерживает NT-аутентификацию и шифрование данных, зато имеет весьма любопытную особенность — возможность трансляции клиенту не всего пространства рабочего стола, а лишь определенного окна или произвольно выбранной прямоугольной области. Такая функция может быть полезной, например, для задач дистанционного обучения, когда нужно сосредоточить внимание учащихся на каком-то определенном приложении, или же в целях безопасности.