Даже если вы плохо знакомы с языком Perl, просмотрев данный сценарий, вы найдете сведения о многих характеристиках, которые, возможно, захотите изменить. В основном данный сценарий устанавливает опции, которые должны быть указаны при запуске
Xvnc
; они помещаются в строку
$cmd
. Разобравшись в том, как формируются опции, вы сможете легко модифицировать их. По команде
Xvnc -help &> Xvnc-help.txt
создается текстовый файл с именем
Xvnc-help.txt
, содержащий информацию о доступных опциях
Xvnc
.
Перед тем как вносить изменения в сценарий
vncserver
, необходимо создать его резервную копию. Она понадобится в случае, если вы допустите ошибку и вам придется
вернуться к исходному варианту сценария.
Сценарии
vncserver
, входящие в состав некоторых пакетов, существенно отличаются от исходного варианта. Особенно это относится к сценарию, поставляемому в составе системы Debian. Тем не менее советы, приведенные выше, применимы ко всем разновидностям
vncserver
. Необходимо лишь перед внесением изменений ознакомиться с конкретными особенностями сценария. Например, сценарий для системы Debian создает для определения шрифта переменную
$fontpath
.
Изменение параметров для отдельных пользователей
Глобальные характеристики сервера VNC задаются с помощью сценария
vncserver
. Если пользователь захочет изменить некоторые установки, он может предпринять следующие действия.
• Самостоятельно создать сценарий запуска сервера VNC. Пользователь может скопировать сценарий в свой каталог, модифицировать его и использовать в дальнейшем для запуска сервера.
• Организовать передачу опций сценарию. Сценарий
vncserver
обрабатывает несколько опций, которые могут быть использованы для переопределения значений, заданных по умолчанию. Например, опция
– geometry ширина_и_высота
устанавливает размер рабочего стола. Эти опции в основном совпадают с опциями программы
Xvnc
.
• Редактировать отдельные конфигурационные файлы. Стандартный сценарий запуска сервера перед окончанием своего выполнения вызывает сценарий
~/.vnc/xstartup
. В нем содержатся команды запуска диспетчера окон и
xterm
. Пользователь может редактировать этот файл так же, как и обычный сценарий запуска X Window. В некоторых дистрибутивных пакетах имя и расположение этого сценария отличается от указанных здесь. Например, в системе Debian вызывается сценарий
/etc/X11/Xsession
, который, в свою очередь, запускает пользовательский сценарий
.xsession
.
В большинстве случаев для организации передачи опций и редактирования конфигурационных файлов приходится затрачивать гораздо меньше усилий, чем для создания сценария запуска. Однако бывают ситуации, когда один из способов настройки оказывается намного удобнее остальных. Например, размер экрана проще всего задавать с помощью опции
– geometry
в сценарии
vncserver
, а диспетчер окон лучше всего настраивать, используя его сценарий запуска. Общее правило таково: содержимое сценария
vncserver
позволяет задать поведение X-сервера в составе VNC, а опции сценария запуска дают возможность настроить диспетчер окон и среду рабочего стола.
Совместная работа серверов XDMCP и VNC
Один из главных недостатков заключается в следующем: для того, чтобы начать работу с сервером VNC, надо зарегистрироваться, используя один из стандартных протоколов, загрузить сервер и запомнить номер дисплея. Эта рутинная процедура мешает выполнению реальных задач. Решением данной проблемы может быть использование VNC X-сервера и сервера XDMCP на одном компьютере.
Подобно большинству X-серверов, VNC X-сервер позволяет серверу XDMCP управлять отображением данных. Для того, чтобы это стало возможным, вам надо указать при запуске VNC X-сервера опцию
– query имя_узла
. Если вы используете суперсервер
xinetd
, соответствующая запись в конфигурационном файле будет выглядеть следующим образом:
service vnc
{
disable = no
socket_type = stream
protocol = tcp
wait = no
user = nobody
server = /usr/local/bin/Xvnc
server_args = -inetd -query vncserv -once
}
В
данном случае важно правильно задать параметры сервера. В частности, опция
– inetd
сообщает
Xvnc
о том, что он запущен посредством суперсервера,
– query vncserv
означает, что необходимо обратиться к
vncserv
. Опция
– once
свидетельствует о том, что сервер должен быть вызван однократно, а затем прекратить свою работу; в результате, если пользователь завершит сеанс взаимодействия, соединение будет разорвано. Вы можете также использовать и другие опции
Xvnc
, например
– geometry
или
– fp
. Кроме того, в файле
/etc/services
должно присутствовать описание порта.
vnc 5900/tcp
Для обычных соединений VNC использует номера портов 5900-5999, а порты 5800-5899 применяются для обработки обращений посредством Web-броузера (поддержки режима Java-сервера). Порт 5900 соответствует дисплею 0, порт 5901 — дисплею 1 и т.д. Таким образом, приведенное выше описание задает отображение приглашения к регистрации XDMCP и взаимодействие VNC через порт 0. Очевидно, что сервер XDMCP должен выполняться на компьютере, определенном посредством опции
– query
. Вы можете настроить систему так, чтобы она по-разному реагировала на обращения клиента через различные порты. Например, дисплею 0 может соответствовать размер рабочего стола 800×600, дисплею 1 — размер 1024×768 и т.д. Для идентификации таких серверов необходимо поместить в файл
/etc/services
несколько записей: по одной на каждый порт. Настроенный таким образом сервер VNC не требует ввода пароля — все детали взаимодействия обеспечивает сервер XDMCP. (Заметьте, что в отличие от традиционного VNC-взаимодействия, имя пользователя и пароль передаются в незакодированном виде.) Еще одна особенность сконфигурированного подобным образом сервера VNC состоит в том, что он может принимать обращения нескольких пользователей через один порт. Таким образом, совместное использование серверов VNC и XDMCP можно условно сравнить с применением сервера XDMCP и удаленного X-сервера. Однако эти системы имеют ряд отличий. Наиболее важные из них описаны ниже.
• При использовании между двумя компьютерами устанавливается одно соединение. Это удобно в тех случаях, когда взаимодействующие компьютеры разделены брандмауэром; при этом уменьшается количество серверов, доступных извне.
• При работе VNC на пользовательском компьютере вместо X-сервера выполняется клиент VNC. Сервер VNC распространяется в исходных кодах, поэтому он свободно доступен, в то время как большинство X-серверов для Windows и MacOS предоставляется на коммерческой основе.
• Протокол VNC имеет свои особенности. Если на пользовательском компьютере вы замените X-сервер клиентом VNC, качество системы может как повыситься, так и снизиться, в зависимости от потребностей пользователя и применяемого X-сервера.
• В большинстве случаев протокол VNC обеспечивает меньшее быстродействие по сравнению с X Window, однако в некоторых случаях применение VNC вместо X Window может повысить производительность системы.
Преимущества и недостатки различных технологий удаленной регистрации
В табл. 14.1 приведены наиболее важные характеристики различных технологий удаленной регистрации, рассмотренных в данной главе. Заметьте, что конкретные оценки могут различаться в зависимости от реализации протокола и конфигурации программных средств. Например, уровень безопасности при VNC-регистрации в текстовом режиме зависит от применяемого инструмента. Если вы используете для установления начального соединения SSH, то защита оценивается как отличная, если же кодирование передаваемых данных не осуществляется, информация может быть перехвачена, поэтому защита считается неудовлетворительной.