Конфигурируем сервер
Конфигурируем сервер
В конце установки программы на экране откроется диалоговое окно конфигурирования сервера (рис. 9.4). Это значит, что нам необходимо произвести настройку сервера именно сейчас. Во всяком случае, нужно установить пароль для подключения, иначе мы просто не сможем воспользоваться клиентом, не зная этого пароля. Однако давайте не будем ограничиваться только установкой пароля, а рассмотрим все настройки сервера VNC, чтобы потом к ним не возвращаться. К тому же, их не так и много, всего несколько вкладок, каждая из которых посвящена определенной теме.
Давайте сразу договоримся, что мы будем работать с бесплатной версией программы, как самой привлекательной и полностью удовлетворяющей нашим потребностям. Исходя из этого, нужно помнить, что некоторые настройки сервера и клиента будут нам недоступны. Рядом с названием настроек я буду приводить соответствующие им аргументы командной строки, которые можно использовать при запуске сервера в виде обычного приложения.
Вкладка Authentication
Рассмотренные в этом разделе опции вкладки Authentication (Установление подлинности) представлены на рис. 9.4.
? VNC Password Authentication (Защита обычным паролем), аргумент командной строки: SecurityTypes=VncAuth.
По умолчанию переключатель стоит именно в этом положении, однако сам пароль мы еще не установили. Сделать это можно, нажав на кнопку Configure (Конфигурирование). Перед нами откроется новое диалоговое окно (рис. 9.5), в котором мы сможем ввести, а потом подтвердить пароль, чтобы не было сомнений, что первый раз мы его ввели правильно.
Нажимаем кнопку OK и выходим из диалогового окна с сохранением пароля. Если теперь мы хотим переустановить пароль, то нам не надо помнить старый. Просто нужно еще раз нажать на эту кнопку и два раза ввести новый пароль.
Интересный факт
Администраторы, использующие VNC, иногда жалуются, что к их серверу можно подключиться, используя два разных пароля. На это разработчики отвечают так: в качестве пароля используются только восемь первых символов, поэтому если вы настроили очень длинный пароль (в котором больше восьми символов), то это действительно становится возможным.
? No Authentication (Нет проверки пароля), аргумент командной строки:
SecurityTypes=None.
Если мы установим переключатель в это положение, то введенный нами пароль использоваться не будет, и клиенты смогут подключаться к серверу автоматически. Думаю, что это не совсем правильное решение.
? NT Logon Authentication (Защита на уровне пользователей системы). Переключение в этот режим позволяет выбрать зарегистрированных на данном компьютере пользователей, которым можно будет дистанционно подключаться и управлять им. К сожалению, в бесплатной версии программы эта опция недоступна.
? Encryption (Шифрование). Имеется в виду, что обмен данными между двумя компьютерами будет шифроваться, чтобы злоумышленник не смог их перехватить и во всем разобраться. Однако эта настройка в бесплатной версии всегда выключена, т. е. никакого шифрования не происходит.
? Prompt local user to accept connections (Локальный пользователь должен подтверждать подключения), аргумент командной строки: QueryConnect= true | false.
Если установить этот флажок (рис. 9.6), то всякий раз при попытке подключения к серверу, пользователь сервера должен будет разрешить или запретить соединение. Если же локальный пользователь никак не отреагирует на это, то соединение будет запрещено автоматически через десять секунд. Собственно говоря, это время и дается на принятие решения, при этом на экране открывается диалоговое окно, в котором указывается IP-адрес компьютера, с которого хотят подключиться.
? Only prompt when there is a user logged on (Беспокоить пользователя только в том случае, если он вошел в систему), аргумент командной строки: QueryOnlyIfLoggedOn=true|false.
Опция становится доступной, только если вы установили предыдущую опцию, которая является родительской по отношению к ней. Когда этот флажок установлен, локальному пользователю будет выдаваться на экран сообщение, только если он вошел в систему. Если же на компьютере-сервере завершен сеанс текущего пользователя, сообщение выдаваться не будет.
Вкладка Connections
Рассмотренные в этом разделе опции вкладки Connections (Соединения) представлены на рис. 9.7.
? Accept connections on port (Принимать соединения на порт), аргумент командной строки: PortNumber=<port number>.
Поставив этот флажок, вы сможете изменить порт, который прослушивает программа-сервер. Обычно в этом нет необходимости, и вы запросто можете использовать порт по умолчанию с номером 5900, однако если этот порт по каким-то хитрым соображениям запрещен брандмауэром, и вы не хотите снимать запрет, то можете изменить эту настройку. Если установить значение порта в ноль, сервер не будет принимать запросы на соединение.
? Disconnect idle clients after… (Рассоединить бездействующих клиентов после…), аргумент командной строки: IdleTimeout=<seconds>.
Бездействующим называется клиент, который не пользуется своей мышью и клавиатурой в течение определенного времени. Это время по умолчанию равно 3 600 секундам, и мы можем здесь его изменить. Бездействующие клиенты отключаются для того, чтобы экономить ресурсы сервера, т. е., чтобы не расходовать зря процессорное время и оперативную память. Как только бездействующий клиент воспользуется своей мышью или клавиатурой, время начнет отсчитываться сначала. Если же вы установите в этом пункте ноль, клиенты не будут отключаться вообще, сколько бы времени они ни бездействовали.
? Serve Java viewer via HTTP on port (Подключение Java-клиента к порту), аргумент командной строки: HTTPPortNumber= (port number).
Отличительной особенностью программы VNC является то, что ее сервер может одновременно прослушивать два порта. С первым портом мы уже разобрались — к нему можно подключиться с помощью обычной программы-клиента. Однако если мы активируем данный пункт, то сервер будет прослушивать порт с номером 5800, к которому можно будет подключиться по протоколу HTTP. Этот протокол используют в своей работе Web-браузеры, например Internet Explorer. То есть, прописав в адресной строке своего браузера http://172.16.35.200:5800 (где 172.16.35.200 — IP-адрес сервера, а 5800 — порт для подключения по протоколу HTTP), вы подключитесь к серверу VNC. Потом в окно вашего браузера будет перекачан программный код (так называемый Java-anплem), с помощью которого вы сможете управлять удаленным компьютером, если, конечно, правильно введете пароль. Такой метод удобно использовать, если вы хотите подключиться к серверу с чужого компьютера, на котором не установлен клиент VNC. Номер порта 5800 можно изменить, однако если вы установите его в ноль, то сервер не будет принимать запросы от браузеров по протоколу HTTP.
? Область Access Control (Контроль доступа) позволяет завести черный и белый списки, т. е. ограничить доступ к нашему серверу, используя IP-адреса клиентов.
Давайте сначала посмотрим, как можно настроить фильтрацию с помощью аргументов командной строки. Сама команда в общем виде выглядит так: Hosts=<pattern>.
Но лучше я приведу пример:
Hosts=+192.168.0.1/255.255.255.255,+192.168.1.0/255.255.255.0,-
Здесь знак плюс (+) означает, что следующий за ним IP-адрес будет разрешен, знак минус (-), наоборот, запрещает адрес. Если же перед адресом поставить знак вопроса (?), то это обяжет пользователя, который работает на компьютере-сервере, самому принять решение, нужно ли разрешить соединение или нет. При этом он будет руководствоваться IP-адресом, который появится в окошке на десять секунд. Запись +192.168.0.1/255. 255. 255. 255 означает, что пользователю с IP-адресом 192.168.0.1 можно подключиться к серверу, а запись +192.168.1.0/255. 255. 255. 0 разрешает подключение к серверу всем компьютерам подсети 192.168.1, т. е. с адресами 192.168.1.1, 192.168.1.2 и т. д. Поскольку в нашем примере в конце стоит знак минус, то всем остальным компьютерам нельзя будет подключиться к серверу.
Также существует несколько типов указания IP-адресов и масок: тип A (xxx.yyyyyyyyy), тип B (xxx.yyy.zzzzzz) и тип C (xxx.yyy.zzz.www). Это значит, что если вы укажете адрес по типу A, например 192.168, то он будет интерпретироваться как 192.0.0.168, а не 192. 168.0.0.
Однако такие настройки больше подходят для системных администраторов и были приведены мной только для того, чтобы вы имели об этом хотя бы общее представление. Обычным же пользователям лучше подойдет оконный интерфейс. Разумеется, таким интерфейсом располагает настроечная панель сервера VNC, и она находится прямо в этой области:
• нажав на кнопку Add (Добавить), мы вызовем на экран диалоговое окно (рис. 9.8), в котором нужно будет указать IP-адрес по уже знакомой нам схеме, т. е.: IP-адрес/Маска подсети (например, 192.168.0.0/255.255.0.0). Обратите внимание, что нам не нужно писать никаких знаков (+, - или?), потому что слева находится переключатель, в котором можно выбрать одно из трех значений: Allow (Разрешить), Deny (Запретить), Query (Спросить разрешение у локального пользователя). Если вы введете IP-адрес без маски, то программа добавит маску сама, как правило, это будет значение 255. 255. 255.255;
• Remove (Удалить) — для того чтобы удалить IP-адрес, занесенный в список, нужно сначала его выделить, а потом нажать на эту кнопку. Адрес будет удален без переспроса;
• если у вас в списке несколько IP-адресов, то вы можете воспользоваться кнопками Move Up (Поднять на одну позицию) или Move Down (Опустить на одну позицию), чтобы изменить положение определенного адреса в списке по вертикали;
• Edit (Редактировать) — можно изменить как сам IP-адрес, так и запрет или разрешение на него.
Обратите внимание, что в самом начале в списке присутствует только знак +. Это говорит о том, что фильтрация как таковая не применяется, и любой пользователь, знающий пароль вашего сервера, может к нему подключиться. Однако если вы захотите отредактировать эту запись, нажав на кнопку Edit, то в открывшемся диалоговом окне увидите пустую строку. Ни в коем случае не пытайтесь набрать там — или? — ведь здесь можно написать только IP-адрес. Просто измените положение переключателя на Deny или Query. Тогда, выйдя из этого диалогового окна с сохранением, вы вместо + увидите в списке -0.0.0.0/0.0.0.0 или?0.0.0.0/0.0.0.0 соответственно. Именно такое представление будет запрещать или выводить вопрос при подключении любого пользователя.
Если после этого вы заведете новый IP-адрес в белый список — т. е. со знаком +, то обязательно поднимите его выше записи -0.0.0.0/0.0.0.0, как это мы рассматривали в примере с командной строкой. Иначе даже разрешенный пользователь не сможет подключиться к вашему серверу. Если же в списке имеются три записи в следующей очередности:
?0.0.0.0/0.0.0.0
+172.16.35.132/255.255.255.255
— 0.0.0.0/0.0.0.0 то это значит, что пользователь с адресом 172.16.35.132 сможет подключиться только с разрешения локального пользователя (хотя он и находится в белом списке), а всем остальным будет автоматически отказано в доступе.
? В области Access Control имеется очень интересная опция Only accept connections from the local machine (Принимать соединения только от самого себя), аргумент командной строки: LocalHost=true | false.
Разве это нормально? — подумал я, — зачем локальному пользователю подключаться к самому себе, если он и так сидит за своим компьютером. Даже если он и пойдет на это извращение, то увидит в окне программы свой рабочий стол, в нем опять рабочий стол и так до бесконечности, пока голова не закружится. В чем здесь смысл? — задумался я и решил обратиться к справочной системе. Оказалось, что это имеет смысл при подключении к серверу не по протоколу TCP/IP, а с помощью другого вида соединения, например, модемного или беспроводного. Если мы подключимся таким способом к серверу, соединение тут же преобразуется к виду TCP/IP и произойдет от локального хоста. В конечном счете получится, что клиент и сервер будут находиться на одном компьютере, т. е. клиент будет иметь адрес 127.0.0.1 (localhost). Если на сервере установлена эта опция, то все остальные настройки фильтрации просто игнорируются и окрашиваются в серый цвет.
Вкладка Inputs
Рассмотренные в этом разделе опции вкладки Inputs (Входы) представлены на рис. 9.9.
? Accept pointer events from clients (Принимать от клиентов сообщения мыши), аргумент командной строки: AcceptPointerEvents=true/false.
Если эта опция снята в настройках сервера, то он все равно будет принимать сообщения мыши от всех клиентов для того, чтобы отличить активных пользователей от пассивных, но клиенты при этом не смогут пользоваться мышью на удаленном компьютере. Если же опция установлена, то мышью сможет пользоваться каждый клиент, если эта опция не снята в настройках его программы.
? Accept keyboard events from clients (Принимать от клиентов нажатия клавиш на клавиатуре), аргумент командной строки: AcceptKeyEvents= true/false.
Здесь все абсолютно аналогично, только относится не к мышиным сообщениям, а к нажатиям клавиш.
? Accept clipboard updates from clients (Принимать от клиентов изменения их буферов обмена), аргумент командной строки: AcceptCutText= true/false.
Если эта опция отключена, то все вновь приходящие изменения буфера обмена игнорируются. Так можно сконфигурировать сервер, если вы хотите, чтобы он использовался клиентами только в режиме просмотра, и никто из них не мог бы влиять на его работу даже переносом туда содержимого своего буфера обмена. Однако даже в режиме управления эту опцию можно отключить по собственному желанию.
? Send clipboard updates to clients (Отсылать клиентам изменения буфера обмена сервера), аргумент командной строки: SendCutText=true/false.
При отключенной опции никто из клиентов не получит содержимое буфера обмена сервера. Это применяется в том случае, если администратор не особо доверяет своим клиентам и боится, что конфиденциальная информация может попасть даже в буфер обмена.
? Allow input events to affect the screen-saver (Разрешать сообщениям от мыши и клавиатуры выключать экранную заставку).
Эта опция не выражена аргументами командной строки, потому что относится к операционной системе в целом, а не к возможностям программы-сервера VNC. Наблюдается интересный эффект: представьте, что вы сняли эту опцию, а потом через некоторое время на экране сервера появилась заставка, да еще и защищенная паролем. В этом случае вы не сможете попасть на сервер не только с помощью клиента VNC, но даже с помощью другой программы удаленного доступа, например, Radmin. Единственный выход из этой ситуации — попросить локального пользователя самому войти в систему (сделать это по месту возможно), а потом все же установить эту опцию. Тогда при следующем подключении защищенный экран не будет вам мешать, и вы сможете зайти на удаленный компьютер.
? Disable local inputs while server is in use (Заблокировать мышь и клавиатуру локального пользователя при подключении к серверу), аргумент командной строки: DisableLocalInputs=true/false.
Это самая интересная настройка, с ее помощью можно полностью обезоружить пользователя, сидящего за удаленным компьютером. Применяется, если мы сами являемся администраторами удаленного компьютера, а сидящий за ним пользователь просто там работает или поливает цветок, который растет рядом с компьютером.
Вкладка Sharing
Рассмотренные в этом разделе опции вкладки Sharing (Общий доступ) представлены на рис. 9.10.
? Always treat new connections as shared (Новое соединение всегда имеет общий доступ), аргумент командной строки: AlwaysShared=true.
При подключении нового клиента все старые клиенты сохраняют свои соединения. Никто не отключается от сервера даже в том случае, если настройки клиента сделаны так, чтобы не разделять сеанс с другими пользователями.
? Never treat new connections as shared (Соединения создаются без общего доступа), аргумент командной строки: NeverShared=true.
С сервером в одно и то же время может работать только один клиент. Если второй клиент в это время попытается подключиться к серверу, то это ему не удастся, или наоборот, он выбросит первого клиента и займет его место. Что произойдет на самом деле, зависит от установки флажка Nonshared connections replace existing ones (Новые соединения без общего доступа заменяют существующие). Если этот флажок установлен, то новый клиент выбросит с сервера старого, иначе он сам не сможет подключиться к серверу.
? Use client’s preferred sharing setting (Использовать настройки клиентов), аргумент командной строки: AlwaysShared=false, NeverShared=false.
В этом случае настройки сервера игнорируются, и все зависит от того, как настроены клиенты VNC. Дело в том, что программа-клиент имеет в своем распоряжении опцию Shared connection (do not disconnect other viewers) (Подсоединяться в режиме общего доступа (не отключать других клиентов)) — если она не установлена, то вновь подключившийся клиент будет выбрасывать с сервера своего коллегу.
Вкладка Desktop
Рассмотренные в этом разделе опции вкладки Desktop (Рабочий стол) представлены на рис. 9.11.
? Область While connected (Во время сеанса работы).
Всякие художественные оформления, которые очень нравятся пользователям (типа фонового рисунка рабочего стола или сглаживания шрифтов) дополнительно нагружают программу-сервер. Поэтому умные разработчики VNC предусмотрели возможность отключения всех этих прибамбасов на время удаленного сеанса. Причем отключаются они реально, а не только в окне клиентской программы, что может не понравиться локальному пользователю или ущемить его тонкий художественный вкус.
Примечание
Кстати говоря, если вы хотите узнать, какие вообще возможны эффекты на вашем компьютере, то в Windows XP это можно сделать так:
• Щелкаем правой кнопкой мыши по рабочему столу и выбираем Свойства.
• В открывшемся диалоговом окне свойств экрана переходим на вкладку Оформление и нажимаем кнопку Эффекты.
• Откроется новое диалоговое окно, в котором можно изучить все возможные эффекты, а потом включить или выключить их.
Если же у вас установлена Windows 2000, то добраться до эффектов можно, открыв диалоговое окно свойств экрана и перейдя на вкладку Эффекты.
Итак, давайте рассмотрим, что можно делать с художественным оформлением удаленного компьютера с помощью программы VNC:
• Remove wallpaper (Убрать обои), аргумент командной строки: RemoveWallpaper=true. Имеется в виду фоновый рисунок рабочего стола. Не важно, насколько красивое у него название: «Безмятежность», «Восхождение» или «В звездных пучинах» — если эта опция установлена, то его словно корова языком слижет;
• Remove background pattern (Убрать фоновый узор), аргумент командной строки: RemovePattern=true. Фоновый узор тоже относится к рабочему столу компьютера. В Windows XP я его не нашел, а вот в старой доброй 2000-й версии этих узоров просто пруд пруди — есть и «Вафли», и «Вертушка», и «Галочки», и «Коробочки» — и все это с большой буквы. Однако если вы установите данную опцию, то все галочки разлетятся, а коробочки закроются, но только на время удаленного сеанса. Как только последний клиент закроет соединение, весь этот сумасшедший домик опять оживет и начнет радовать своего пользователя;
• Disable user interface effects (Убрать эффекты пользовательского интерфейса), аргумент командной строки: DisableEffects=true. Установка этой опции уберет анимацию в стиле разворачивающихся меню, а также сглаженные шрифты, заштрихованные оконные шапки и пр., чему не место на компьютерах скромных пользователей, вроде нас с Дудкиным. Кстати говоря, как только вы уберете анимацию, все изменения в окне клиентов будут происходить быстро и четко: менюшки — быстро раскрываться, окна — быстро перетаскиваться по экрану, в общем, работать станет намного приятней. Со спецэффектами совсем по-другому: меню появляется на экране медленно, сначала оно выглядит прозрачным и только спустя пару секунд принимает нормальный вид. Это немножко напрягает, ведь всегда хочется быстрой работы.
? Область When last client disconnects (Когда отсоединится последний клиент).
Во время работы с удаленным компьютером может оборваться связь в силу разных причин, например, Вова Дудкин ножницами обрежет сетевой провод. Так вот, чтобы в это время никто из случайных прохожих не смог поработать на сервере, было бы очень кстати, если бы программа-сервер сама блокировала рабочий стол или завершила сеанс текущего пользователя. Тогда при восстановлении связи мы бы ввели пароль и продолжили работу. К счастью, такая возможность существует:
• Do nothing (Ничего не делать), аргумент командной строки: DisconnectAction=None. Если эта опция установлена, то сервер ничего не делает;
• Lock workstation (Заблокировать компьютер-сервер), аргумент командной строки: DisconnectAction=Lock. Эта опция заставляет сервер заблокировать свой рабочий стол, как только последний клиент отсоединится;
• Logoff user (Завершить сеанс текущего пользователя), аргумент командной строки: DisconnectAction=Logoff. На компьютере закрываются все программы (кроме системных служб), и происходит полный «разлогон».
Вкладка Capture Method
VNC-сервер может использовать несколько методов, чтобы отследить изменения, происходящие на экране компьютера. Таким образом, у нас появляется возможность выбора одного из них. Бесплатная версия программы поддерживает два метода: опрос экрана и технику ловушек (classic VNC Hooks technique).
Рассмотренные в этом разделе опции вкладки Capture Method (Метод захвата) представлены на рис. 9.12.
? Poll for changes to the desktop (Опрос экрана в поисках изменений), аргумент командной строки: UpdateMethod=0.
Если установлена эта опция, то программа сканирует строки экрана в поисках изменений. Как известно, экран компьютера состоит из маленьких точек, которые называются пикселами. Например, если вы установили разрешение экрана 1024 на 768, это значит, что сейчас он имеет 768 строк по вертикали, и в каждой строке находится по 1024 пиксела. Пиксел может принимать любой цвет, поэтому программа должна проверить каждый из них (не изменил ли он свой цвет), собрать сведения обо всех изменениях и передать их клиенту. Механизм построен так, чтобы не сильно загружать процессор компьютера и выполнять опрос как можно быстрее.
? Use VNC hooks to track changes (Использовать ловушки, чтобы отследить изменения), аргумент командной строки: UpdateMethod=1.
Техника ловушек в справочной системе не описывается. Однако там сказано, что работает она гораздо быстрее по сравнению с обычным непрерывным опросом, но иногда может пропускать некоторые изменения. В частности, это относится к консольным окнам типа командной строки. Для того чтобы программа смогла лучше отследить происходящие там изменения, нужно обязательно поставить флажок Poll console windows for updates (Проверять консольные окна на изменения), аргумент командной строки: PollConsoleWindows=true/false. Если эта опция установлена, то программа-сервер сканирует только видимую часть консольного окна (не прикрытую другими окнами). Дело в том, что техника ловушек не применима к консольным окнам из-за ограничений в самой операционной системе, поэтому такие окна можно только «пулить» (опрашивать, как в предыдущем варианте).
? Use VNC Mirror driver to track changes (Использовать зеркальный драйвер для отслеживания изменений). Зеркальный драйвер отсутствует в бесплатной версии программы (скорее всего, он работает лучше, чем метод ловушек).
? Capture alpha-blended windows (Захватывать прозрачные окна), аргумент командной строки: UseCaptureBlt=true/false.
От выбора этой опции зависит, какой будет применяться метод захвата. Если опцию снять, то захват будет происходить быстрей, и сервер не так сильно будет нагружать компьютер, на котором он работает. Однако прозрачные окна и всплывающие подсказки не будут видны в окне клиента. Если же опцию установить, то все можно будет увидеть, но нагрузка на процессор возрастет. Практика показала, что возрастет она совсем незначительно, а порой даже вообще не будет заметна, поэтому опцию можно смело включать.
Вкладка Legacy
Рассмотренные в этом разделе опции вкладки Legacy (Наследство) представлены на рис. 9.13.
? Import VNC 3.3 Settings (Импортировать настройки VNC версии 3.3 — если раньше вы устанавливали себе на компьютер бесплатную версию программы VNC (в частности версию 3.3) и успели ее полностью настроить, то зачем же перенастраивать эту версию, если можно перенести в нее уже готовые настройки. Однако всегда нужно помнить, что в каждой новой версии есть что-то новое — иначе, зачем она нужна? Поэтому, скорее всего, у вас останутся настройки, которые нужно будет установить вручную. Также могут возникнуть некоторые противоречия, но если это действительно произойдет, то программа вас обязательно оповестит.
Совет
Есть одна маленькая тонкость. При установке сервера VNC в меню Пуск появляются два ярлыка: один для запуска сервера в пользовательском режиме (User) — т. е. в виде обычной программы, а второй — для запуска в режиме системной службы (Service). Вы можете одновременно запустить тот и другой вариант, и они будут нормально работать. Единственная рекомендация — настроить их на прослушивание разных портов, иначе получится полная белиберда. Соединение на порт (например, 5900) примет та программа, которая была раньше запущена на прослушивание этого порта.
Я подвожу вас к мысли, что при попытке импортировать настройки прошлой версии, очень важно, чем вы их импортируете: службой или обычной программой, потому что для них существуют независимые настроечные записи.
Внимание!
Перед тем как устанавливать новую версию программы, нужно обязательно деинсталлировать старую, иначе при переносе ее настроек окажется, что две программы прослушивают один и тот же порт.
? Only use protocol version 3.3 (Использовать только протокол версии 3.3), аргумент командной строки: Protocol3. 3=true/false.
Сервер последней версии может работать по двум протоколам VNC: старому 3.3 и новому 3.7, который дает клиентам больше функциональных возможностей. Однако поскольку VNC-протоколы являются открытыми для сторонних производителей, то может так получиться, что пользователь будет подключаться к вашему серверу программой, которая работает только по старому протоколу. В этом случае ничего у него не выйдет. Именно для таких пользователей мы можем установить эту опцию, сузив при этом функциональные возможности клиентов, которые используют в своих программах новый протокол 3.7.
Дополнительные опции
Кроме основных настроек сервера есть некоторые дополнительные опции. К ним можно добраться, если щелкнуть правой кнопкой мыши в области уведомлений на значке сервера VNC (рис. 9.14). Кстати говоря, отсюда можно перейти и к основным настройкам (которые мы уже рассмотрели), если выбрать пункт меню Options (Опции).
? Add New Client (Добавить нового клиента) — это самый интересный пункт, и я сейчас объясню почему. Мы с вами уже привыкли, что обычно клиент посылает запрос на соединение, а сервер его принимает. Но если мы воспользуемся этим пунктом и в открывшемся диалоговом окне (рис. 9.15) введем IP-адрес клиента, то сможем к нему подключиться. При этом на экране клиента откроется новое окно, в котором он увидит рабочий стол нашего компьютера и сможет им управлять. Такая вот получается обратная связь. Это применимо в том случае, если вход на сервер защищен паролем, но вы не хотите сообщать этот пароль пользователю, которого нужно пустить на сервер только один раз.
Однако как это возможно — ведь все мы прекрасно знаем, что чудес на свете не бывает? Так и тут — для создания соединения между сервером и клиентом нужно предварительно «посадить» клиента на прослушивание запросов от сервера. Чтобы заставить клиент прослушивать порт, нужно запустить его в командной строке с параметром — listen[3], т. е. так:
vncviewer.exe — listen
Есть и другой путь — можно сделать это через главное меню Пуск | Программы | ReanVNC | VNC Viewer 4 | Run Listening VNC Viewer. Причем Run Listening VNC Viewer — это вовсе не новая программа, а наш клиент, запускаемый с параметром — listen, просто в этом случае нам не нужно вызывать командную строку, все делается гораздо проще и красивее.
Как только клиент будет запущен с таким параметром, в области уведомлений появится новый значок VNC (рис. 9.16).
Щелкнув по нему правой кнопкой мыши, мы сможем:
• завершить прослушивание серверов (Close Daemon);
• создать новое соединение с каким-нибудь сервером (New Connection);
• изменить свойства клиента по умолчанию (Default Options) — со свойствами клиента мы скоро познакомимся.
? Disconnect Clients (Отключить клиентов) — этот пункт меню сервера используется для того, чтобы отключить всех клиентов сразу.
? Close VNC Server (Закрыть сервер VNC) — так вы сможете закончить работу программы-сервера. Однако если сервер был установлен как системная служба, то он просто приостановит свою работу. Если же вы хотите полностью убрать из системы эту службу, например, для того чтобы потом запустить сервер как обычную программу, то вам нужно воспользоваться главным меню Пуск | Программы | ReanVNC | VNC Server 4 (Service mode) | Unregister VNC Service. Повторно зарегистрировать программу как системную службу можно, используя аналогичный пункт меню Пуск | Программы | ReanVNC | VNC Server 4 (Service mode) | Register VNC Service. В этой же группе находятся команды, позволяющие запустить (Start), остановить (Stop) или отконфигурировать (Configure) сервер VNC.
Общие рекомендации по настройке сервера
Итак, мы рассмотрели все настройки программы-сервера. Какой же можно сделать из этого вывод, какие рекомендации можно дать администраторам VNC-серверов? Лучший совет, как говорится — никогда не давать советов! Все зависит от того, кто и как будет использовать компьютер, на котором установлен VNC-сервер. Лично я по роду своей деятельности администрирую много удаленных компьютеров, поэтому здесь расскажу о выборе настроек, которые будут приемлемы в данном случае.
? Обязательно установить пароль для подключения к серверу.
? Можно не пересаживать сервер на другой порт, потому что тогда придется набирать его через двоеточие после IP-адреса в диалоговом окне подключения. Необходимость в этом может появиться, если нужно скрыть сервер от клиентов, — тогда неизвестный номер порта будет действовать как дополнительный пароль. А вот прослушивание порта по HTTP-протоколу лучше сразу убрать, чтобы никто посторонний не имел возможности подключиться к серверу с помощью обычного браузера.
? Фильтрация IP-адресов может пригодиться, если заранее знаешь, с каких компьютеров будешь чаще всего подключаться к серверу. Их следует завести в белый список, а все остальные IP-адреса — запретить.
? Нужно разрешить передачу серверу сообщений от мыши и клавиатуры, а также прием и передачу содержимого буфера обмена. Также я разрешаю сообщениям от мыши и клавиатуры снимать заставку с экрана, иначе пробиться на сервер будет невозможно. Блокировать органы управления локального пользователя можно только в том случае, если он в это время не выполняет ответственных операций — таких, как управление технологическим процессом. В любом случае, внезапное блокирование это наглость, лучше всего — заранее позвонить человеку и сказать ему, что вам нужно дистанционно поработать с его компьютером.
? Я отказался от создания соединений с общим доступом, потому что лично администрирую свои удаленные компьютеры. К тому же, я регулярно меняю пароли на серверах, чтобы не получилось смешной ситуации, когда злоумышленник, который как-то узнал пароль, первый подключится к серверу, а я не смогу этого сделать в силу того, что сервер настроен на соединения без общего доступа.
? Я настроил автоматическое снятие обоев, фоновых узоров и причудливого интерфейса пользователя при подключении к удаленному компьютеру. Хотя в большинстве случаев в этом нет необходимости, поскольку я сам инсталлирую свои компьютеры и делаю там «человеческие» настройки без всяких ненужных прибамбасов.
? Серверы настроены так, что по окончании управления они не блокируют рабочий стол и не завершают сеанс текущего пользователя, поскольку за удаленными компьютерами всегда работают люди. Зачем им создавать лишние проблемы?
? Я применяю метод захвата изображения экрана, при котором используются ловушки, поскольку он работает быстрее и, к тому же, не так часто, как постоянный опрос. Также на сервере установлен флажок принудительного сканирования видимых частей консольных окон. Это не отнимает больших ресурсов компьютера, равно как и показ прозрачных окон со всплывающими подсказками. На практике прозрачные окна встречаются редко, а вот всплывающие подсказки очень важны, без них порой нельзя получить нужную информацию.
Данный текст является ознакомительным фрагментом.