Удаленное управление для всех: VNC шагает через платформы и сети

VNC (Virtual Network Computing) — это подарок от AT&T пользователям, желающим иметь бесплатное, не требующее большой пропускной способности, кросс-платформенное удаленное управление для своих систем. VNC работает на всех вариантах Unix, Windows и MacOS.
А как насчет протокола Х Window System? — спросите вы. Да, X можно считать одним из самых толковых протоколов, но, тем не менее, он довольно требователен к пропускной способности, хорошо работает только на Unix-машинах и не сильно удобен для работы с windows- и mac-приложениями.
А как насчет SSH? На мой взгляд, SSH (безопасный шелл) — это прекрасный, можно даже сказать, лучший выбор для безопасного удаленного доступа (технически, это не шелл, а протокол). Для всех платформ существует множество его версий, как платных, так и бесплатных. Он более сложен при установке, чем VNC и имеет больше возможностей, но VNC также может делать вещи, которые не под силу SSH. Давайте пока что все же остановимся на VNC.

тонкий и незаметный

VNC является самым тонким из клиентов. Клиентской машине не нужно обрабатывать ничего лишнего — VNC клиент является всего лишь обозревателем серверной машины. Он посылает через TCP/IP информацию от устройств ввода вроде клавиатуры и мыши серверу, а обратно получает информацию с экрана. При этом в обозревателе не хранится никакой лишней информации. Соединение можно разорвать и восстановить в любой нужный момент без потери информации. Пользователь также может открыть сколько угодно одновременных сессий с разных машин.
Как правило, VNC применяется для использования одного монитора, клавиатуры и мыши для нескольких машин, или, если выражаться по-научному, для управления автономными машинами. При использовании Ethernet, VNC обладает неплохой производительностью, т.е. не имеет видимых задержек при работе с мышью или клавиатурой. Он, конечно же, заработает и через Internet, и вообще в любом месте, где есть TCP/IP. При использовании dial-up могут появится задержки. Их можно избежать, если запустить нетребовательный к ресурсам менеджер на клиенте. Он имеет собственный Х-сервер, так что вы сможете по своему усмотрению выбрать любой менеджер или рабочий стол. По умолчанию используется не слишком требовательный к ресурсам twm. Кроме него есть еще все типы X Window менеджеров, так что у вас есть возможность выбрать между функциональностью и производительностью. Среди них, например, Blackbox, Sawfish, XFce, и IceWM.

приступим…

VNC состоит из двух основных компонентов: vncserver vncviewer. Что касается установки под Windows и Mac, то в ней ничего особенного нет: достаточно просто скачать архив и сделать по нему дабл клик. Linux-инсталляция несколько отличается от высказанного, поэтому рассмотрим ее подробней. Для начала распакуйте архив, который содержит уже откомпилированные файлы, и скопируйте их в нужные директории, описанные в README. Vncserver является Perl-скриптом, который управляет Xvnc, который уже является самим сервером. Если вы не хотите устанавливать программу в директории по умолчанию или желаете поменять еще что-либо, то для этого необходимо отредактировать скрипт. Кстати, лучше всего проводить запуск именно через скрипт, а не напрямую Xvnc, так как скрипт определяет переменные настройки экрана и окружения.
После того, как инсталляция клиента и сервера закончена, можно приступать к работе. На линукс-машинах необходимо запустить vncserver, напечатав в командной строке vncserver. После запуска он попросит вас установить пароль. При необходимости его изменить воспользуйтесь vncpassword. Теперь запускайте на клиентской машине vncviewer. Для этого наберите в командной строке: vncviewer [servername or IP]. Разумеется, в Windows и Mac есть соответствующие иконки и прочий GUI. На *nix-машинах vncserver можно запустить удаленно через telnet или ssh. Я знаю, что вы скажете, что знаете про это, но я должна предупредить вас: никогда не используйте telnet в небезопасной сети, так как он передает пароли в открытом виде.
Кстати, под Linux могут одновременно работать несколько Х-сессий. Команда vncserver без аргументов запускается на первом доступном дисплее. Номер дисплея можно задать в параметре, например, vncserver :2. Соответственно, на клиентской стороне необходимо написать: vncviewer serername:2.
Также еще одной интересной особенностью является поддержка Java, поэтому можно осуществлять подключения с любого Java-совместимого браузера: http://servername:portnumber.
Теперь рассмотрим версию для Windows. WinVNC, сервер VNC для Windows может устанавливаться в качестве системного сервиса. Это, наверное, наиболее предпочтительный способ его запуска, если нет возможностей запустить его удаленно. Правда для этого вам придется некоторое время полазить по реестру с паяльником, что, впрочем, хорошо документировано на вебсайте VNC. Windows и Mac поддерживают только одиночные рабочие столы, поэтому вам не нужно заморачиваться с их нумерацией. Обозреватель занимает очень мало места, буквально 150 килобайт, поэтому его можно запросто записать на дискету, что может оказаться полезным для мобильных пользователей.

массовое портирование

В основе VNC лежит концепция удаленного кадрового буфера (remote framebuffer, RFB), что позволяет использовать его и на небольших маломощных устройствах. Это означает, что при желании можно переписать VNC для чего угодно. Он уже существует для компьютеров Palm, HP Jornada, Windows CE, Newton и даже для некоторых сотовых телефонов.

немного магии

Ок, мы выяснили, что с помощью vnc можно управлять с одного терминала удаленной машиной. Это, конечно, замечательно, но как вам идея управлять несколькими машинами с помощью одной клавиатуры и мыши? Это замечательная идея реализована Фредериком Юбинет в x2vnc. Возьмите ваши компьютеры Linux и Windows и поставьте рядом их мониторы. Сплошная работа без передышек не есть хорошо, поэтому оторвитесь от программирования на Linux-машине и пристрелите кого-нибудь в игре под Windows. Для этого просто подвиньте курсор мышки в нужную позицию и, вуаля, он появляется на windows-мониторе вместе с переключением клавиатуры и управления. Закончили рубиться? Тогда двигайте курсор назад.
Для двух машин с Windows необходим Win2VNC, для двух *nix — x2x. Что бы вы ни устанавливали, вам в любом случае понадобится VNC-сервер на каждой машине. В отличие от VNC, x2vnc осуществляет переключение только между двумя машинами, обслуживая локальные дисплеи.
Секрет работы этого приложения заключается в однопиксельных окнах в углах экранов. Когда курсор наводится на них, осуществляется переключение. Разумеется, что основано оно на VNC. Вот что значит открытый код! Благодаря нему разные полезные примочки растут как грибы после дождя.
Добыть vnc вы можете тут:http://www.uk.research.att.com/vnc/index.html

 

Карла Шредер, перевод Дмитрия Герусса.
обсуждение статьи



Сетевые решения. Статья была опубликована в номере 05 за 2003 год в рубрике software

©1999-2024 Сетевые решения