Меню Рубрики

Установка vnc для freebsd

Установка VNC сервера, и настройка его работы поверх SSH


Да, отчего-то не все клиенты хотят работать в таком удобном и черном терминале, панель полностью не удовлетворяет их эстетические потребности, и вообще — «где мой такой любимый и удобный VNC?».
вопрос привычки и вкуса

В данной статье будет рассмотрен пример установки и настройки VNC server и графической оболочки (GUI) на примере OC Debian 8 jessie.

Вводная: на руках имеется чистый Debian 8 и жгучее желание получить на выходе защищенный vnc-доступ к серверу.

Приступим

Обновим список доступных пакетов.

Если система свежеустановленная — стоит обновиться.

(!)Бездумно запускать данную команду не на свежеустановленном сервере не стоит, чревато сломанными зависимостями и перспективой работы напильником.

Устанавливаем Xfce и VNC server (любители GNOME, KDE, LXDE, etc. устанавливают оболочку по своему вкусу).

Создаем пользователя от которого будем запускать vnc сервер.

Устанавливаем sudo (в Debian данный пакет не установлен по умолчанию).

Добавляем пользователя vnc в группу sudo.

Переходим под пользователя vnc.

Если это первый запуск vnc сервера, будет создан конфиг файл и запрошены некоторые параметры:

по умолчанию порт vnc сервера будет 5901, порт каждого следующего дисплея будет увеличиваться на 1 (5902,5903. ).

Проверить запущен ли VNC сервер и на каком порту слушает можно следующей командой.

Убить конкретный дисплей можно так:

:1 — какой дисплей нужно убить.

Создание скрипта автостарта vnc сервера.

Сначала убьем запущенный дисплей :1 (если он запущен).

Добавляем следующие строки в файл:

если требуется — в скрипте можно изменить глубину цвета или разрешение экрана.

использование созданного нами скрипта:

Теперь нужно позаботиться о том, чтобы настроенный нами vnc стартовал после загрузки сервера (запланированной и не очень).
Для этого создаем файл по следующему пути.

Добавляем следующий текст в файл:

[Unit] — указываем описание скрипта (так же можно указать требуемые зависимости и порядок запуска при загрузке).
[Service] — указываем какими командами запускать сервис, под каким пользователем, и тип сервиса.
[Install] — указываем на каком уровне должен запускаться скрипт (runlevel 3 — многопользовательский режим без графики).

Включаем юнит в автозагрузку при старте системы.

Смотрим статус созданного нами юнита.

Дергаем systemd для поиска новых или измененных юнитов.

Шифрование трафика

Голый VNC не шифрует трафик, и оставлять его в таком виде не стоит.
Кроме того, если на Ваш IP выйдут боты из Китая и начнут стучатся по портам, даже если пароль установлен действительно качественный (учтите, что пароль на vnc сессию ограничен 8 символами) и его не взломают, попасть на сервер посредством VNC будет затруднительно, из-за постоянной ошибки на количество неверных попыток авторизации.

Using password file /home/vnc/.vnc/passwd

Warning: password truncated to the length of 8.

Would you like to enter a view-only password (y/n)? n

Пускаем VNC поверх SSH:

Теперь для подключения к серверу сначала нужно создать тунель.

Под *nix:

Теперь возможно подключение посредством vnc клиента, указав вместо IP удаленного сервера localhost и порт на котором слушает vnc-server.

При использовании Windows и putty агента:

После запуска putty переходим Connection -> SSH -> Tunnels.
В поле Source Port вбиваем порт на котором слушает VNC сервер — 5901, в поле Destination вписываем — localhost:5901 и жмем кнопку Add.
должно получиться как на картинке.

Теперь возвращаемся на вкладку Session вписываем IP сервера и порт 22 (тут же можно и сохранить конфигурацию подключения), жмем Open.

паранойи мало не бывает К осторожности нужно приучать сразу, хоть теперь и попасть на наш сервер посредством VNC извне невозможно (для начала нужно залогиниться по ssh и создать тунель), все же стоит задуматься о дополнительной безопасности ssh подключений (помните — китайские боты не дремлют).

Установим и настроим fail2ban.
По умолчанию защита от брутфорса для SSH включена, что нам собственно и требуется.
при превышении заданного числа неудачных вводов пароля подряд (по умолчанию — 6) бан IP, с которого были попытки подбора на заданное время (по умолчанию — 600 секунд).

Устанавливаем пакет из репозитория.

Основной интересующий нас файл настроек находится по пути /etc/fail2ban/jail.conf

Блок настроек для подключения по ssh:

ignoreip — IP адреса, которые не должны быть заблокированы. Можно задать список IP адресов разделённых пробелами, маску подсети, или имя DNS сервера.

bantime — время бана в секундах, по истечении которого IP адрес удаляется из списка заблокированных.

maxretry — количество подозрительных совпадений, после которых применяется правило. В контексте ssh — это число неудавшихся попыток логина, после которых происходит блокировка.

enabled — значение true указывает что данный jail активен, false выключает действие изолятора.

port — указывает на каком порту или портах запущен целевой сервис. Стандартный порт SSH сервера — 22, или его буквенное наименование — ssh.

filter — имя фильтра с регулярными выражениями, по которым идёт поиск «подозрительных совпадений» в журналах сервиса. Фильтру sshd соответствует файл /etc/fail2ban/filter.d/sshd.conf.

logpath — путь к файлу журнала, который программа Fail2ban будет обрабатывать с помощью заданного ранее фильтра. Вся история удачных и неудачных входов в систему, в том числе и по SSH, по умолчанию записывается в log файл /var/log/auth.log.

Дефолтная настройка удовлетворяет наши требования (6 неверных попыток авторизации по shh и IP летит в бан на 600 секунд), но я бы советовал добавить свой IP в доверенный список.
Обидно будет ждать почти два часа, в случае шестикратной ошибки ввода пароля со своего IP (шанс данного кейса отнюдь не нулевой).

В строке ignoreip = 127.0.0.1/8, адрес 127.0.0.1/8 заменяем на свой IP.

Выходим из редактора nano (ctrl+x, отвечаем y на вопрос сохранения внесенных изменений).

Перегружаем сервис для применения изменений в правилах.

В случае срабатывания бана в логах fail2ban, можно заметить строку предупреждения:

И попытки подключения с данного адреса будут отбиваться сервером автоматически до истечения срока бана.

Готово, настройка VNC сервера завершена.

источник

Подключение к удаленному компьютеру по VNC

Работа с VNC-клиентом. Материал ориентирован на неопытного пользователя.

1. Установка VNC-клиента
2. Подключение VNC-клиента к удаленному компьютеру
3. Отключение VNC-клиента от удаленного компьютера
4. Тюнинг VNC-клиента
5. Частые проблемы

Для работы с удаленным компьютером по VNC на компьютере пользователя нужно запустить программу-клиент (VNC viewer, VNC client). Эта программа передает на удаленный компьютер данные о нажатиях на клавиши и о движениях мыши, сделанных пользователем, и показывает информацию, предназначенную к выводу на экран.

Читайте также:  Установка ком на кпп ямз 238
1. Установка VNC-клиента

Для ОС Windows можно бесплатно скачать и инсталлировать VNC-клиент UltraVNC и TightVNC.

Mac OS X начиная с версии 10.5 имеет поддержку VNC-клиента в RemoteDesktop. Для предыдущих версий можно использовать VNC-клиенты JollysFastVNC и Chicken.

Для Linux ветви Debian (Ubuntu) VNC-клиент устанавливается из репозитория командой:

Для ветви RedHat (CentOS, Fedora) — командой:

Для FreeBSD VNC-клиент (TightVNC) устанавливается из пакетов командой:

2. Подключение VNC-клиента к удаленному компьютеру

Для подключения VNC-клиента к удаленному компьютеру требуется указать его IP-адрес или DNS-имя, и номер дисплея (по умолчанию, :0) или номер TCP-порта (по умолчанию, 5900). Если VNC-сервер требует авторизации, то при подключении к нему VNC-клиент запросит пароль. Обратите внимание, что пароль доступа к VNC-серверу не связан с каким-либо аккаунтом (учетной записью пользователя) на удаленном компьютере, а служит только для ограничения доступа к дисплею VNC-сервера.

После установки соединения и открытия экрана, в зависимости от настроек VNC-сервера может потребоваться авторизация пользователя на виртуальном сервере или может быть открыта уже запущенная рабочая сессия какого-либо пользователя.

Так как на компьютере одновременно могут работать несколько VNC-серверов, для их разделения используют параметр номер дисплея. Например, один VNC-сервер может быть запущен на дисплее :0, другой — на дисплее :1. Каждому номеру дисплея соответствует номер TCP-порта, на котором VNC-сервер принимает соединения. Номер порта для дисплея получается прибавлением номера дисплея к базовому номеру порта — 5900. Дисплею :0 соответствует TCP-порт 5900, дисплею :1 — порт 5901.

3. Отключение VNC-клиента от удаленного компьютера

При закрытии окна VNC-клиента или после выхода из окружения средствами рабочего стола, в зависимости от настроек VNC-сервера, рабочая сессия пользователя может закрыться с остановкой всех используемых программ, или продолжать работу и быть доступной снова при повторном подключении к VNC-серверу.

4. Тюнинг VNC-клиента

Большое количество передаваемой на экран информации влечет за собой повышенные требования к скорости канала — к его пропускной способности и времени передачи пакетов. Нахватка пропускной способности приводит к некомфортным задержкам при больших изменениях показывамой на экране информации — открытии новых окон, скроллинге и т.д. Особенно большие задержки будут возникать при показывании фотографий и других изображений или элементов интерфейса, имеющих большое количество цветов и сложные формы.

Главный параметр, который влияет на объем передаваемых данных — алгоритм кодирования передаваемой графики. Для уменьшения объема и, соответственно, ускорения работы, рекомендуется использовать алгоритмы Tight, ZLib, ZRLE — по сравнению с несжатыми данными (Raw), они обеспечивают сжатие в десятки раз, заметно нагружая процессор. Эти алгоритмы кодирования обеспечивают комфортную работу даже на каналах со скоростью 256-512 Кбит/сек.

Для сокращения объема передаваемой по сети информации также можно устанавливать высокий уровень сжатия (Compression Level, Compression Value), низкий уровень качества JPEG (JPEG Quality) и включать режим уменьшения количества цветов (-bgr233, Restricted colors). Самый большой эффект из них при заметном снижении качества изображения дает режим уменьшения количества цветов — объем передаваемой информации уменьшается в 1.5-3 раза, соответственно, в 1.5-3 раза ускоряется отображение на экране.

JPEG применяется алгоритмом кодирования Tight для сжатия участков экрана, содержащих фотографии и другие сложные изображения с большим числом цветов. Использование Tight+JPEG сокращает в 2-5 раз объем передаваемых при этом данных. Другие алгоритмы кодирования JPEG не поддерживают.


1. Выпадающего меню «Система -> Параметры»

Объем передаваемых данных и скорость отображения на канале 1 Мбит/сек при открытии выпадающего меню «Система -> Параметры» (на рисунке меню выделено зеленым пунктиром):

Полноцветный режим 256 цветов (BGR233)
Объем Время Объем Время
ZLib 11 Кб 0.09 сек 7 Кб 0.06 сек
HexTile 208 Кб 1.6 сек 118 Кб 0.95 сек
Raw 248 Кб 2 сек 128 Кб 1 сек
5. Частые проблемы
Не удается подключиться к VNC-серверу
Медленная работа через достаточно быстрый канал

Если VNC-клиент не может согласовать с VNC-сервером использование алгоритм кодирования графики с компрессией данных, выбирается алгоритм по умолчанию — Raw, который передает данные без сжатия. Также кодирование без сжатия или с низким уровнем сжатия может автоматически выбираться VNC-клиентом при работе через быструю локальную сеть. Данную проблему можно исправить, принудительно указав в настройках VNC-клиента алгоритм кодирования с высоким уровнем сжатия — ZLib, ZRLE, Tight.

Однако, для некоторых сочетаний клиента и сервера такое решение может быть бесполезным из-за ошибок в согласовании алгоритма кодирования. Например, клиент TightVNC с сервером RealVNC часто могут работать только с кодировкой Raw. Решением в этом случае будет смена VNC-клиента или VNC-сервера.

источник

Установка VNC-сервера на VDS и рекомендации по тюнингу

Данное руководство ориентировано на виртуальные серверы (VDS/VPS), доступ к которым осуществляется по VNC через интернет. Это задает основные приоритеты — экономное использования ресурсов сервера и работа по недостаточно быстрому каналу. В качестве базовой системы, на которую выполняется установка, используется минимальная инсталляция Ubuntu 9.10. С небольшими изменениями это руководство применимо к другим дистрибутивам Linux и операционным системам семейства Unix, а также для настройки VNC на обычных выделенных серверах и на серверах в локальной сети.

* Способы организации работы VNC-серверов
** Встроенный VNC-сервер в эмуляторах аппаратного обеспечение (Xen/HVM, VMWare, Qemu)
** VNC-сервер, привязанный к работающему X-серверу (GNOME vino)
** VNC-сервер с встроенным X-сервером
*** VNC-сервер, запускаемый вручную
*** VNC-сервер, запускаемый в режиме демона
*** VNC-сервер, запускаемый через inetd
* Выбор VNC-сервера
* Тюнинг сервера
** Тюнинг десктопа
** Опции VNC-сервера

Способы организации работы VNC-серверов

Основные способы организации удаленной работы с графическим десктопом на виртуальных серверах:

1. Встроенный VNC-сервер в эмуляторах аппаратного обеспечения (Xen/HVM, VMWare, Qemu)
2. VNC-сервер, привязанный к работающему X-серверу (GNOME vino)
3. VNC-сервер с встроенным X-сервером
3.1 VNC-сервер, запускаемый вручную
3.2 VNC-сервер, запускаемый в режиме демона
3.3 VNC-сервер, запускаемый через inetd

Рассмотрим эти способы и оценим их преимущества и недостатки.

1. Встроенный VNC-сервер в эмуляторах аппаратного обеспечение (Xen/HVM, VMWare, Qemu)

Многие платформы виртуализации, поддерживающие эмуляцию аппаратного обеспечение (VMWare, Qemu, Xen в режиме HVM) снабжают виртуальную машину виртуальными устройствами — графическим адаптером, клавиатурой, мышью — имитирующими работу реально существующиx устройств. Операционная система в виртуальной машине обращается с ними, как с обычным оборудованием, не отличая разницы. Программа, управляющая работой виртуальной машины, может связать эти эмулируемые устройства с встроенным в нее VNC-сервером, перенаправляя на VNC-клиент информацию, выводимую на графический адаптер виртуальной машины, и передавая на клавиатуру виртуальной машины информацию о нажатиях на клавиши, полученную от VNC-клиента. Для операционной системы и программ, работающих в виртульной машине, существование VNC-сервера и VNC-клиента незаметно, для них не требуются дополнительные драйверы или настройки — только стандартные драйверы того оборудования, которое эмулирует платформа виртуализации.

Читайте также:  Установка верхнего душа размеры


1. VNC-клиент, подключенный к VNC-серверу виртуальной машины Xen в режиме HVM, момент загрузки ОС FreeBSD.

В Xen включение VNC-сервера для виртуальной машины осуществляется указанием типа vnc в конфигурационном параметре vfb. Дополнительные опции в этом параметре: vnclisten — указывает IP-адрес, на котором VNC-сервер принимает соединения; vncpasswd — пароль, который должен сообщить VNC-клиент.

Например, добавление в конфигурационный файл виртуальной машины строки:

означает включение VNC-сервера, который принимает соединения на всех доступных IP-адресах и требует авториазацию по паролю qwerty.

Основной и исчерпывающий плюс использования VNC-сервера платформы виртуализации: простота — достаточно включить поддержку VNC-сервера в настройках виртуальной машины.

Основные минусы: очень большой расход ресурсов на участке эмуляции оборудования и ограниченное число платформ виртуализации, поддерживающих эту возможность.

Плюсы Минусы
  • Простота включения

  • Небольшое число платформ виртуализации
  • Расход ресурсов на эмуляцию оборудования
  • Расход на передачу данных между виртуальной машиной и супервизором
  • Расход ресурсов на постоянно работающие программы X-сервера и десктопа
  • Одновременно работать с десктопом может только один пользователь

Для некоторых платформ виртуализации также существует менее ресурсоемкий вариант, в котором вместо эмуляции реального графического устройства виртуальной машине передается упрощенная абстракция — фреймбуфер. Xen поддерживает фреймбуфер в качестве графического адаптера виртуальной машины, для X-серверов XFree86 и X.org есть драйверы экрана для фреймбуфера. При использовании фреймбуфера исключаются расходы процессора и оперативной памяти на эмуляцию реальной аппаратной части, но все остальные недостатки сохраняются.

2. VNC-сервер, привязанный к работающему X-серверу (GNOME vino)

Вариант лучше всего подходит для удаленного доступа к десктопу обычного компьютера (рабочего, домашнего). Доступ к рабочему столу по VNC в GNOME включается элементарно — достаточно включить в системном меню в разделе System / Preferences / Remote Desktop опции Allow other users to view you desktop, Allow other users to control you desktop. При их включении запускается входящий в GNOME VNC-сервер (vino), привязанный к дисплею X-сервера и полностью дублирующий для VNC-клиента выводимую на экран информацию.

Но на виртуальном сервере все становится сложнее. Сначала потребуется каким-либо образом запустить X-сервер, например, на эмулируемом графическом адаптере виртуальной машины, и только после этого можно будет разрешить VNC-доступ к дисплею данного X-сервера описаным выше способом. По сравнению с VNC-сервером на эмуляторе оборудования, плюс только один: меньшие расходы на эмуляцию. Но остальные минусы остаются и появляется новый — более трудоемкая настройка. Все вместе делает этот вариант худшим кандидатом для виртуального сервера.

Плюсы Минусы
  • Меньший расход ресурсов на эмуляцию

  • Небольшое число платформ виртуализации
  • Расход ресурсов на эмуляцию оборудования
  • Расход на передачу данных между виртуальной машиной и супервизором
  • Расход ресурсов на постоянно работающие программы X-сервера и десктопа
  • Одновременно работать с десктопом может только один пользователь
  • Усложнение первоначальной настройки
  • Функция должна поддерживаться средой рабочего стола

3. VNC-сервер с встроенным X-сервером

Существует ряд программ — VNC-серверов, которые самостоятельно выступают в роли X-сервера для приложений. В отличии от стандартного X-сервера, работающего с реальными устройствами (графическим адаптером, клавиатурой, мышью) или их эмуляцией в виртуальных машинах, встроенному в VNC-сервер X-серверу эта функциональная часть не требуется — вместо аппаратного обеспечения взаимодействие осуществляется только с VNC-клиентом. X-серверу, встроенному в VNC-сервер, не требуются ни сложная настройка, ни вычислительные ресурсы для работы с оборудованием, поэтому для виртуальных серверов этот вариант подходит лучше всего.

В Ubuntu 9.10 виртуальный пакет vnc-server предлагает в качестве VNC-сервера две альтернативы: vnc4server (RealVNC) и tightvncserver (TightVNC). Существенной разницы между ними нет, есть только небольшие нюансы в их использовании, которые будут описаны позже. Сейчас рассмотрим vnc4server.

Минимальные инсталляции ОС для VDS, как правило, не включают графические среды, поэтому также понадобится установить GNOME. Для установки сервера RealVNC и GNOME достаточно установить два пакета:

apt-get install vnc4server gnome-core

3.1 VNC-сервер, запускаемый вручную

Настройки по умолчанию позволяют использовать VNC-сервер без дополнительной настройки сразу же после установки. Запускаем из командной строки VNC-сервер, создающий X-сервер на нулевом дисплее (и принимающий VNC-соединенения на порту 5900):

а на созданном нулевом дисплее запускаем GNOME:

При первом старте vncserver попросит задать пароль, который нужно будет вводить в VNC-клиенте при подключении. Для изменения пароля VNC-сервера используется команда vncpasswd.

Но каждый раз заходить на сервер через SSH и запускать VNC-сервер вручную — для повседневной работы вариант не пригодный. Предпочтительнее настроить автоматический старт VNC-сервера.

3.2 VNC-сервер, запускаемый в режиме демона

Для того, чтобы не стартовать вручную VNC-сервер после каждой перезагрузки, его можно добавить в стартовую процедуру. При желании, можно построить полноценный набор скриптов для upstart, но на практике достаточно обойтись добавлением в /etc/rc.local строки:

где в качестве $USER нужно указать логин пользователя, для которого запускается десктоп. При необходимости можно одновременно запустить несколько VNC-серверов для одного или разных пользователей на разных дисплеях.

При отключении VNC-клиента сессия десктопа и запущенные программы не завершаются, а продолжают работать так же, как при подключенном VNC-клиенте. При повтороном соединении VNC-клиента к этому дисплею, пользователь попадет в эту же самую сессию десктопа, как если бы отключения не было. К одному и тому же VNC-серверу (X-дисплею) могут подключиться несколько VNC-клиентов, при этом они будут работать с одним и тем же десктопом.

Плюсы Минусы
  • Не зависит от платформы виртуализации
  • Не расходуются ресурсы на эмуляцию
  • Не расходуются ресурсы на работу с драйверами оборудования
  • Одновременно могут работать несколько пользователей
  • При отключении VNC-клиента сессия десктопа не прерывается

  • Расход ресурсов на постоянно работающие программы X-сервера и десктопа

3.3 VNC-сервер, запускаемый через inetd

Существует возможность стартовать VNC-сервер только по требованию — при подключении VNC-клиента. Для этого порт VNC-сервера 5900 передается на обслуживание демону inetd. Пока нет ни одного подключенного VNC-клиента, ни один VNC-сервер запущен не будет. При поступлении запроса на соединении со стороны клиента, inetd запускает VNC-сервер и связывает клиента с ним. VNC-сервер создает дисплей и начинает рабочую сессию. После отключения клиента, VNC-сервер закрывает сессию и завершает все программы, работающие с дисплеем.

При подключении к одному и тому же порту нескольких клиентов, для каждого будет запущен отдельный VNC-серверов с собственным дисплеем. Таким образом, у всех подключенных клиентов будут открыты независимые рабочие сессии. Это позволяет с помощью аутентификации через GDM легко настроить систему на многопользовательскую работу — после соединения запрашиваются логин и пароль пользователя виртуального сервера, после их правильного ввода будет начата рабочая сессия этого пользователя.


2. Авторизация пользователя через GDM при подключении к VNC-серверу.

В дополнение к уже установленным серверу RealVNC и GNOME, нам потребуется установить gdm и xinetd.

apt-get install xinetd gdm-2.20

Для начала нужно настроить менеджер дисплея GDM: разрешить принимать запросы на аутентификацию пользователей по XDMCP и отключить запуск X-сервера из gdm. Редактируем конфигурационный файл /etc/gdm/gdm.conf в соответствии с патчем:

— /etc/gdm/gdm.conf.orig 2009-09-11 23:46:30.000000000 +0400
+++ /etc/gdm/gdm.conf 2009-11-30 02:36:06.000000000 +0300
@@ -311,3 +311,3 @@
# the security of XDMCP.
-Enable=false
+Enable=true
# Honor indirect queries, we run a chooser for these, and then redirect the
@@ -604,3 +604,3 @@
#
-0=Standard device=/dev/console
+#0=Standard device=/dev/console

или сохраняем патч в файл /tmp/gdm.conf.patch и применяем его командой:

patch /etc/gdm/gdm.conf /tmp/gdm.conf.patch

Для того, чтобы xinetd стартовал VNC-сервер, создадим для него конфигурационный файл /etc/xinetd.d/xvnc с таким содержимым:

В аргументах запуска Xvnc обязательно должны быть -inetd, дающий знать VNC-серверу, что он запускается через демон inetd, и -query 127.0.0.1, означающий, что при старте VNC-сервера ему нужно будет выполнить аутентификацию пользователя через локальный менеджер дисплея (GDM). Опция -once сообщает, что после отключения клиента X-сервер нужно тоже отключить. -SecurityTypes none отключает собственную авторизацию VNC-сервера, так как пользователи аутентифицируются через gdm.

Рестартуем xinetd и gdm командами:

service gdm restart
service xinetd restart

Запускаем VNC-клиента и соединяемся с нашим сервером. Вводим логин и пароль пользователя системы, и получаем стандартный десктоп:

3. Ubuntu 9.10, десктоп GNOME.

Главное преимущество способа c inetd — отсутсвие расхода ресурсов на работу X-сервера и программ десктопа без VNC-клиентов. Дополнительный плюс — полноценная многопользовательская работа: все подключаются к стандратному VNC-порту, число пользователей не ограничено.

Плюсы Минусы
  • Минимальный расход ресурсов в отсутствие VNC-клиентов
  • Не зависит от платформы виртуализации
  • Не расходуются ресурсы на эмуляцию
  • Не расходуются ресурсы на работу с драйверами оборудования
  • Полноценная многопользовательская работа

  • Более сложная настройка

Выбор VNC-сервера

В Ubuntu 9.10 стандартный дистрибутив имеет два VNC-сервера: vnc4server (RealVNC) и tightvncserver (TightVNC).

С RealVNC в качестве сервера встречаются проблемы с некоторыми клиентами. Например, ряд версий клиентов TightVNC и UltraVNC не могут использовать с этим сервером алгоритмы с сжатием, что приводит к замедлению работы через интернет. У сервера TightVNC таких проблем с клиентами не наблюдается. Кроме этого, в отличие от RealVNC, сервер TightVNC поддерживает алгоритм кодирования Tight, который позволяет сжимать данные с помощью JPEG — при отображении фотографий и других сложных изображений это существенно сокращает объем передаваемых данных. В остальном, заметных различий между серверами нет.

Отличия в настройке сервера TightVNC

В описании установки VNC-сервера с inetd все настройки приводились для сервера RealVNC. При использовании в качестве сервера TightVNC, потребуются небольшие изменения в настройках.

Для сервера TightVNC не требуются аргументы -SecurityTypes none и -extension XFIXES, поэтому строка аргументов в конфигурационном файле /etc/xinetd.d/xvnc для xinetd должна выглядеть так:

server_args = -inetd -query 127.0.0.1 -once

Также требуется запретить ремаппинг клавиатуры в GNOME, иначе нажатия на некоторые клавиши будут передаваться неверно. Для этого нужно установить переменную окружения XKL_XMODMAP_DISABLE. Легче всего это сделать создав файл /etc/X11/Xsession.d/10tightvncserver с содержимым:

Файл будет автоматически выполняться при старте сессии GNOME.

Тюнинг сервера

Тюнинг десктопа

Настройки рабочего стола способны оказать заметное влияние на скорость работы по сети. Задача снижения объема передаваемых данных сводится к двум подзадачам: минимизация изменений на экране и использование хорошо сжимаемых изображений.

Сглаживания шрифтов

Основная часть информации, с которой работает пользователь — это текст: окна с текстом, меню, формы и т.д. Включенное сглаживание шрифтов увеличивает в 1.5-3 раза объем передаваемых при отображении текста данных, так как полутоновые области на границах символов несут в себе дополнительную плохо сжимаемую информацию.

Сглаживание можно отключить в окне настроек шрифтов GNOME, но такое отключение будет работать не во всех программах — например, Firefox шрифты по прежнему будет сглаживать. Поэтому лучше внести настройки в системный конфигурационный файл /etc/fonts/fonts.conf (отключается сглаживание всех шрифтов размером менее 14 пикселей):

Объем передаваемых данных и скорость отображения на канале 1 Мбит/сек выпадающего меню (глубина цвета: 16 бит, кодирование: Tight):

Включено субпиксельное сглаживание Без сглаживания
Объем 30 Кб 13.8 Кб
Скорость 0.24 сек 0.11 сек

Фон рабочего стола

Фон рабочего стола способен сильно замедлить работу, если в нем будет расположена фотография или рисунок. Любое сворачивание окна или меню влечет за собой перерисовку того участка фона, который был им перекрыт. И, чем сложнее изображение, тем больший объем данных будет передаваться. Для минимизации затрат полосы пропускания на фон рекомендуется использовать одноцветный фон, лучше всего — белый.

Десктопная тема

Оформление элементов интерфейса тоже может влиять на объем передаваемых данных. Для минимизации трафика следует выбрать тему с плоскими цветами, без градиентов. Впрочем, многие темы, использующие вертикальные градиенты, сжимаются достаточно хорошо и их можно использовать без ощутимых потерь в скорости.

Размер шрифтов

Уменьшение размера шрифтов для системных меню и текстовых полей влечет за собой уменьшение геометрического размера текстовых участков, а следовательно, уменьшение объема передаваемых данных.

Опции VNC-сервера

VNC-сервер имеет много опций, но нас интересуют следующие три: geometry — размер экрана, depth — глубина цвета, deferupdate — задержка передачи изменений.

geometry

Размер экрана в пикселях. Формат: -geometry ШИРИНАxВЫСОТА. Например, -geometry 800×600 — 800 пикселей в ширину и 600 пикселей в высоту. Чем больше размер экрана, там больший объем данных необходимо передавать — но прямой зависимости между ними нет. При изменении информации на дисплее, клиенту передается не изображение дисплея полностью, а только участок с измененной информацией — открытое окно, открытый пункт меню или напечатанный символ. Поэтому существенного выигрыша при использовании 800×600 вместо 1024×768 нет.

источник

Добавить комментарий