UltraVNC (Ultr@VNC, UVNC). Удаленный доступ к консоли Windows

02.07.2019

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

VNC сервер можно запустить на рабочем комьютере, и по необходимости заходить на него из дома. Или наоборот. Для соединения надо убедиться, что TCP порт, используемый сервером (по умолчанию 5900) доступен для входящих соединений от клиента.

UltraVNC берется на . Другие известные реализации VNC - RealVNC и TightVNC , еще варианты можно найти . Теоретически они все совместимы между собой, хотя некоторые специальные функции (clipboard или file transfer) могут между разными реализациями не работать.

Помогаем новичкам

Удобен VNC и для помощи другим пользователям. Помогать, видя происходящее на экране, гораздо проще.

Однако у очень многих стоят раутеры и файерволы, и нереально требовать от новичка умения открыть для входящих соединений нужный порт. Нам на помощь приходит reverse connection (обратное соединение). В этом режиме соединение инициирует VNC сервер.

Опытный пользователь запускает у себя VNC клиент в listening mode (режиме слушания порта) (vncviewer.exe /listen ) и делает у себя порт 5500 доступным снаружи. Новичку остается только скачать и запустить VNC сервер и соединиться с клиентом по указанному IP адресу.

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

Дополнительно

Достоинства VNC - многоплатформенность и бесплатность. Если у вас везде стоит Windows XP, то для удаленного доступа вам вероятно подойдут и встроенные средства - Remote Desktop или Remote Assistance. Вроде бы их тоже можно соединять через reverse connection.

Если у вас динамический внешний IP адрес, удобно сделать себе (бесплатный) Dynamic DNS, например на dyndns.com . У вас на компьютере будет работать маленькая программка (а в некоторых раутерах есть такая встроенная функциональность), извещающая DynDNS сервис об изменениях вашего IP. Как результат, выбранный вами domain, к примеру pupkin.dyndns.org, будет всегда показывать на ваш текущий IP адрес

Если вы профессионально занимаетесь технической поддержкой, то вам может быть особенно удобен . Это специальная облегченная версия VNC сервера, которая может делать только reverse connection и только на заранее сконфигурированные вами IP адреса. Конечно, тогда вы должны быть достаточно авторитетны для пользователя, чтобы он согласился скачать и запустить этот сконфигурированный VNC сервер с вашего собственного сайта.
(А, кого я тут обманываю... Многие пользователи и так запустят все, что им предложат)

В повседневной жизни довольно часто возникает ситуация, когда необходимо установить или настроить программы на компьютерах который находиться в соседнем кабинете, офисе или в другом городе. Бегать по кабинетам и по офисам конечно полезно для здоровья, особенно если приходится обслуживать свысше 30 компов:)) но мы не будем так над собой измываться, организуем и настроим удаленный доступ к ПК. Программ для удаленного доступа очень много и каждая по своему выделяется.

Для более продвинутых пользователей

Рассмотрим UltraVNC . Почему выбрал именно это прогу?:

  • Бесплатная,
  • Поддерживает Клиент Серверный режим работы.
  • Поддерживает передачу файлов
  • Многоклиентный режим
  • Работает под windows, Linux, Mac OS X
  • Реализовано шифрование
  • Возможность развертования в домене через политики.

Установка и настройка UltraVNC

Ниже опишу настройки для особо любопытных

Incoming Connections — входящие подключения

  • Accept Socket Connections — разрешить входящие подключения.
  • Display: номер дисплея.
  • Ports — используемые порты программой.
  • Main : порт для UltraVNC клиента по умолчанию 5900.
  • Http : порт подключаться через веб интерфейс, При первоначальном подключении прога предложит скачать плагин java, он необходим что бы подключаться через web форму.
  • Enable Java Viewer (Http Connect) разрешить подключения по Http.
  • Allow Loopback Connections - разрешить подключения в обратку, оставляем галочку да.
  • Loopback Only - разрешить только обратные подключения.

When Last Client Disconnects Когда последний клиент отключается, действия

  • Do Nothing - переводится как, ничего не делать. Пускай галочка стоит на нем:)
  • Lock Workstation (W2K) - Блокировка рабочей станции для (W2K).
  • Logoff Workstation - выход рабочих станций .

Query On Incoming Connection Запрос входящих подключений

  • Display Query Window — показать окно запроса.
  • Timeout — Тайм-аут .
  • Default action — действие по умолчанию. Refuse — отклонить, Accept - принять.

Keyboard & Mouse - клавиатура и мышь.

  • Disable Viewers Inputs - отключить управление компом, будет разрешен тока просмотр.
  • Disable Local Inputs - оключить локальный ввод.

Multi Viewer Connections — действия при подключение нескольких пользователей.

  • Disconnect all existing connections разрешает только одному пользователю подключаться, а всех остальных клиентов отключает .
  • Keep existing connections — держать текущее соединение. Одновременно может быть подсоединено несколько клиентов.
  • Refuse the new connection — запретить новые соединения
  • Refuse all new connections — отказаться от новых соединений.

Authentication - аутентификация.

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

Misc — дополнительно

  • Remove Aero (Vista) — отключить визуальные эффекты Vista. Оставляем галочку.
  • Remove Wallpaper for Viewers — отключить обои. Для беспалевного входа на ПК, лучше убрать галочку, так как при подключении к ползователю у него будут исчезать обои. Но если нам нужна высокая производительностьвключаем эту настройку.
  • Capture Alpha-Blending — позволяем просматривать видео на сторене клиента. Хотя и не всегда эта опция работает.
  • Disable Tray icon - убрать иконку.
  • Forbid the user to close down WinVNC - запретить закрывать UltraVnc сервак.
  • Default Server Screen Scale - масштаб экрана по умолчанию.

File Transfer — управление файлами.

  • Enable — разрешить передавать файлы.

Подключение к UltraVnc server

Запускаем UlnraVnc viewer (vncviewer.exe) появляется окно с настройками:

  • VNC Server: — адрес компа к которому мы подключаемся
  • AUTO, ULTRA, LAN, MEDIUM, MODEM, SLOW, MANUAL — режим подключения, выбираем в зависимости от скорости подключения. Оставляйте AUTO
  • View Only — разрешает тока просмотр
  • Auto Scaling — автоподгонка масштаба
  • Confirm Exit — подтверждаем если мы хотим закрыть сеанс
  • Use DSMPlugin -выбор и использование дополнительных плагинов
  • Proxy/Repeater — указываем прокси или репитер, если они у нас есть.
  • Save connection settings as default — сохраняем текущие настроийки и используем их по дефолту.

  • Track remote cursor locally — отображать курсора мыши
  • Don’t show remote cursor — не отображать курсор мыши
  • Show button’s bar — показать/скрыть панель инструментов
  • Full-screen mode — открыться на весь экран
  • Viewer Scale — открыться на % экрана
  • Disable clipboard transfer — отключить общий буфер обмена
  • Number of times the reconnect is attempted Количество раз, когда предпринимается попытка восстановить соединение

Внимание! Вышла новая версия UVNC — 1.0.9.2 . Заявлена поддержка Windows 7, Vista и Aero!

Рассмотрим следующую ситуацию. Удаленный офис, имеется локальная сеть на несколько компьютеров, NAT роутер. К одному из компьютеров необходимо получить удаленный доступ для оказания удаленной помощи. Компьютер работает под управлением Windows 7.

Запускаем установщик UltraVNC. Несколько первых экранов обычные бла-бла, ознакомление с лицензией и т.п. Важные моменты начинаются с экрана выбора типа инсталляции:

Доступно несколько вариантов:

  • Full installation — полная установка. Устанавливается сервер + клиент.
  • UltraVNC Server Only — устанавливается только сервер.
  • UltraVNC Server Only «silent» — устанавливается только сервер в режиме «без лишних вопросов».
  • UltraVNC Viewer Only — устанавливается только клиент.

Наш выбор — UltraVNC Server Only.

Далее нам предлагается скачать дополнения для Windows Vista (они актуальны и для Семерки). Самое важное из них: cad.exe — без него клиент не сможет послать команду CTRL+ALT+DEL на удаленный компьютер. Опцию «Download Vista addons files now» отмечаем.

В следующем окне нам предложат скачать драйвер захвата. Лично я предпочитаю устанавливать драйвер в ручную, поэтому опцию Download mirror driver НЕ отмечаем:

Следующий экран:

Отмечаем опции:

  • Register UltraVNC Server as a system service — зарегистрировать сервер UltraVNC в качестве системной службы.
  • Start or restart UltraVNC service — запустить/перезапустить службу UltraVNC.
  • Create UltraVNC desktop icons — создать ярлыки на рабочем столе.
  • Associate UltraVNC Viewer with .vnc file extension — открывать файлы с расширением.vnc с помощью UltraVNC Viewer.

Нажимаем Next, после загрузки дополнений, завершаем установку. При необходимости перезагружаемся.


В архиве driver.zip содержится несколько папок, соответствующих разным версиям ОС. Для установки под 32-битную Windows 7, открываем папку Vista (этот драйвер отлично работает и под Семеркой). Далее запускаем файл install.bat. На вопрос системы: «Установить программное обеспечение для данного устройства?» отвечаем Установить.

Теперь можно перейти к настройке основных параметров сервера UltraVNC.

Настройка UltraVNC.

В трее делаем правый клик на иконке UltraVNC и выбираем пункт Admin Properties:

Подробнее о настройках. Раздел Incoming Connections — входящие соединения.

  • Accept Socket Connections — принимать входящие подключения. Для нормальной работы этот пункт должен быть обязательно отмечен.
  • Display — номер дисплея.
  • Ports — порты. Main — порт для подключения uvnc-клиента. Http — порт для подключения java-клиента. Лучше всего оставить значение Auto.
  • Enable Java Viewer (Http Connect) — разрешить подключения java-клиента.
  • Allow Loopback Connections — разрешить обратные подключения (подключения к адресам из диапазона 127.х.х.х). необходимо отметить, если на этот компьютер устанавливается репитер.
  • Loopback Only — разрешать только обратные подключения.

Раздел When Last Client Disconnects — когда отключается последний клиент.

  • Do Nothing — ничего не делать. Оставляем эту опцию.
  • Lock Workstation (W2K) — залочить сеанс (чтобы войти потребуется ввод пароля).
  • Logoff Workstation — завершение сеанса.

Раздел Query On Incoming Connection — вывести запрос при получении нового входящего соединения.

  • Display Query Window — показать окно запроса.
  • Timeout — время до выполнения действия по умолчанию.
  • Default action — действие по умолчанию. Refuse — отклонить, Accept — принять.

Раздел Keyboard & Mouse — клавиатура и мышь.

  • Disable Viewers Inputs — запретить ввод с клиента.
  • Disable Local Inputs — запретить ввод с сервера.
  • Japanese — ??? Возможно, имеется в виду поддержка японской клавиатуры… Иногда помогает при глюках с русской раскладкой.

Раздел Multi Viewer Connections — одновременное подключение нескольких клиентов.

  • Disconnect all existing connections — отключить все текущие соединения. Одновременно может быть подключен только один клиент. Последний подключившейся побеждает.
  • Keep existing connections — поддерживать текущие соединения. Одновременно может быть подсоединено несколько клиентов.
  • Refuse the new connection — ???. Смысл непонятен. При выставлении этой опции можно подключаться нескольким клиентам…
  • Refuse all new connections — запретить все новые соединения. Одновременно может быть подключен только один клиент. Первый подключившейся побеждает. Выбираем этот вариант.

Раздел Authentication — аутентификация.

  • VNC Password — пароль для входа. После установки необходимо придумать новый пароль, иначе подключиться не получится.
  • View-Only Password — пароль для входа в режиме просмотра. С этим паролем клиент будет подключаться в режиме просмотра (настройки клиента и сервера игнорируются).
  • Require MS Logon — использовать аутентификацию Windows (компьютер и пользователь должны быть в одном домене).
  • New MS Logon — активирует MS-Logon II (кросс-доменная аутентификация).

Раздел Misc. — разное.

  • Remove Aero (Vista) — отключить Aero (3D, прозрачность и прочие примочки интерфейса Висты). Рекомендуется.
  • Remove Wallpaper for Viewers — убрать обои рабочего стола. Рекомендуется.
  • Enable Blank Monitor on Viewer Request — по запросу клиента отключает монитор сервера (на весь экран выводится картинка). Странно, но опция также закрывает картинкой и экран клиента. Этот баг можно обойти, если отключить использование драйвера захвата (Properties -> Video Hook Driver).
  • Disable Only Inputs on Blanking Request — запрещает только ввод с консоли сервера, при этом экран не закрывается.
  • Enable Alpha-Blending Monitor Blanking — другой вариант отключения монитора сервера. Используйте, если с первым вариантом проблемы.
  • Capture Alpha-Blending — включение этой опции позволяет В НЕКОТОРЫХ СЛУЧАЯХ «видеть» клиенту видео запущенное на сервере в видеоплеере, например в Windows Media Player (зависит от установленных на компьютере-сервере кодеков).
  • Disable Tray icon — убрать иконку из трея. Если пользователь любопытный, лучше убрать.
  • Forbid the user to close down WinVNC — запретить пользователю закрытие uvnc-сервера. Рекомендуется.
  • Default Server Screen Scale — масштаб экрана по умолчанию.

Раздел File Transfer — передача файлов.

  • Enable — разрешить передачу файлов.
  • User Impersonation (for Service only) — ???

Раздел DSM (Data Stream Modification) Plugin — подключение плагинов (в настоящее время доступны несколько плагинов для шифрования потока данных).

Раздел Logging — создание log-файла.

  • Log Debug infos to the WinVNC.log file — запись данных о функционировании uvnc в лог-файл.
  • Path — путь для сохранения лог-файла.

После установки параметров нажимаем Apply и затем Ок. Каждый раз Windows попросит подтвердить внесение изменений.

Следующий этап — настройки захвата экрана. Делаем правый клик на иконке UltraVNC и выбираем пункт Properties.

  • Poll Full Screen (Ultra Fast) — ??? Особой разницы при включении/отключении не замечал.
  • Poll Foreground Window — ??? При использовании этой и следующих трех опций некоторые части экрана могут подвиснуть и перестать обновляться. Эта информация — просто мое предположение…
  • Poll Console Windows Only -???
  • Poll Window Under Cursor — ???
  • Poll On Event Only — ???
  • System HookDll — опция имеет смысл на Windows 9x.
  • Video Hook Driver — использовать драйвер захвата видео. Обеспечивает наилучшую производительность на Windows XP/Vista/7. Этот вариант обеспечивает наилучшее быстродействие.
  • Low Accuracy (Turbo Speed) — дает прибавку в скорости за счет снижения точности (лично я изменений не замечал, возможно, эта опция для медленных соединений).
  • Share only the Server Window Named: — показывать не весь экран, а только окно с указанным именем. Сколько не пытался, ни разу не получилось…

Кнопка Check the Video Hook Driver используется для проверки функционирования драйвера захвата. Использовать ее нужно только, если к серверу подключен хотя бы один клиент. В противном случае всегда будет выводиться сообщение, что драйвер не активен. Вот как выглядит сообщение, что драйвер установлен и функционирует:

На этом настройка базовая настройка сервера UltraVNC завершена.

Чтобы сервер был доступен через Интернет, на роутере необходимо настроить проброс порта tcp 5900. Также этот порт должен быть открыт в брандмауэре сервера. Если используется только встроенный брандмауэр Windows, то никаких дополнительных действий предпринимать не надо, нужные разрешения уже созданы во время установки.

Подключение к серверу

Запускаем UltraVNC Viewer (клиент):

Основные параметры UltraVNC Viewer:

  • VNC Server — адрес сервера.
  • AUTO, ULTRA, LAN, MEDIUM, MODEM, SLOW, MANUAL — в зависимости от скорости вашего канала программа оптимизирует настройки качества.
  • View Only — подключиться в режиме просмотра. Взаимодействие с консолью запрещено.
  • Auto Scaling — автоматическая настройка масштаба. Отметьте, чтобы исключить вероятность появления полос прокрутки.
  • Confirm Exit — подтвердить выход. При закрытии окна клиента будет выводиться диалоговое окно.
  • Use DSMPlugin — использовать плагин.
  • Proxy/Repeater — использовать репитер. Здесь же необходимо указать адрес репитера.
  • Save connection settings as default — сохранить текущие настройки в качестве настроек по умолчанию.

Дополнительные параметры uvnc клиента (кнопка Options):

Все опции описывать не буду, отмечу только наиболее важные:

  • Track remote cursor locally — показывать курсор/указатель мыши.
  • Don’t show remote cursor — не показывать курсор/указатель мыши.
  • Show button’s bar («Toolbar») — показывать или нет панель инструментов.
  • Full-screen mode — полноэкранный режим.
  • Viewer Scale — настройки масштабирования.
  • Disable clipboard transfer — отключить синхронизацию буфера обмена.
  • Number of times the reconnect is attempted — число повторных попыток подключения.

Установка и настройка репитера.

Скачиваем repeater.zip . В архиве только один файл — repeater.exe. Рекомендую сразу перенести его в папку C:\Program Files\UltraVNC\Repeater.

Запускаем repeater.exe. В трее появится иконка. Делаем правый клик по ней и в меню выбираем пункт Settings:

Следует проверить значения следующих опций:

  • Listen port Viewer — значение 5901.
  • Enable Proxy(443) — отключить.
  • Enable Mode I — включено.
  • Enable Mode II — отключить.

Остальные опции оставляем без изменений. Save — сохраняем настройки и закрываем окно.

Следующий этап — открыть порт tcp 5901 в брандмауэре. В настройках роутера необходимо создать правило для переадресации порта tcp 5901 на компьютер, где установлен репитер.

Для подключения через репитер в настройках клиента необходимо сделать следующее:

  • В поле VNC Server указать не внешний, а внутренний адрес сервера в локальной сети.
  • Отметить опцию Proxy/Repeater и указать внешний адрес роутера с портом, на который настроен репитер (например 83.45.67.8:5901 ).

Последний штрих. Чтобы репитер был постоянно доступен, его необходимо запускать в качестве системной службы. Для этого открываем командную строку от имени администратора, и запускаем repeater.exe с параметром -install. Будет создана служба repeater_service (по умолчанию она не запущена, поэтому осуществите запуск вручную или просто перезагрузитесь).
Для удаления службы запустите repeater.exe с параметром -uninstall.

UltraVNC SC (Single Click) — удаленная помощь без предварительной установки UltraVNC сервера.

Как это работает. На своем компьютере вы запускаете UltraVNC Viewer в режиме ожидания (listen mode). Пересылаете (по электронной почте или как-то еще) на удаленный компьютер архив с заранее сконфигурированным сервером UltraVNC SC. Пользователь распаковывает архив, запускает программу и производит подключение. В итоге вы получаете доступ к консоли удаленного компьютера. Т.к. подключение инициирует удаленный компьютер, нет необходимости настройки брандмауэра и роутера в удаленной сети.

Теперь подробнее о настройке. Сначала необходимо сконфигурировать UltraVNC SC.

Нам понадобятся следующие файлы: winvnc_SCII_100.exe и custom.zip . Далее создаем папку с произвольным названием (например UltraVNC SC). В ней подпапку data. В эту подпапку переносим winvnc_SCII_100.exe и туда же распаковываем содержимое custom.zip.

Теперь необходимо отредактировать файл helpdesk.txt. Этот файл отвечает за интерфейс менеджера подключений:

Каждый раздел helpdesk.txt отвечает за текстовое поле (см. скриншот ниже):

Вот пример моего helpdesk.txt:

Удаленная помощь q2w3.ru maxbond.no-ip.org -connect test.no-ip.org:5500 -noregistry // вместо test.no-ip.org необходимо указать свой ip-адрес иди домен, порт 5500 лучше лучше не менять Выберите подключение Используйте двойной клик, чтобы начать соединение q2w3.ru http://www.q2w3.ru Закрыть Подключение... Соединение установлено!

Если будете создавать свой helpdesk.txt на основе моего, незабудьте удалить комментарии начинающиеся с «\\».

Файл rc4.key не удаляем, он нужен для шифрования.

Возвращаемся к папке UltraVNC SC. Чтобы пользователь не путался, создадим ярлык для запуска winwvnc_SCII_100.exe прямо из нее. Для этого делаем правый клик на winwvnc_SCII_100.exe и выбираем пункт «Создать ярлык». Созданный ярлык переносим на уровень выше, в UltraVNC SC. Теперь открываем свойства ярлыка. Поле «Рабочая папка» очищаем, оно должно быть пустое. В поле прописываем следующую команду:

%windir%\system32\cmd.exe /C start /B /D .\data .\data\winvnc_SCII_100.exe

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

В конце концов запаковываем папку UltraVNC SC в архив и отправляем его пользователю.

Осталось подготовить свой компьютер к приему соединения. UltraVNC Viewer необходимо запустить в режиме ожидание соединения (listen mode). Для этого используем ярлык Программы -> UltraVNC -> UltraVNC Viewer -> Run UltraVNC Viewer (listen mode) или запускаем vncviewer.exe с параметром -listen. Также незабываем открыть порт tcp 5500 в брандмауэре и настроить форвардинг этого же порта на роутере (если, кончено, таковой присутствует в вашей сети).

Обратите внимание, что параметры подключения (качество и т.п.) настраиваются по-прежнему в UltraVNC Viewer (правый клик на иконке uvnc в трее -> Default connection options…).

  • Как сохранить настройки подключения в файл?
    Подключаетесь к серверу (сохранить настройки можно только во время подключения), затем нажимаете CTRL+ALT+F5 .
  • Системное администрирование
  • Предупреждение: все прилетевшие тапочки будут проданы, помидоры – съедены, яйца – пожарены, испорченные – выброшены. Те, кто думают, что мы маемся фигней – вы угадали, возьмите с полки пирожок. Автор не призывает бросать мешки грудью на амбразуры. Он вообще ни к чему не призывает – он же не политик и не гражданин с активной гражданской позицией. А вот желающих подискутировать – милости просим. Сегодня я буду рассказывать вам занимательную историю о замене Teamviewer на UltraVNC.

    Зачем вообще нужны такие заморочки, ведь Teamviewer такой офигенный? В моем случае это обусловлено несколькими причинами. В работе была нужна система удаленного управления серверами и рабочими станциями пользователей, а их у нас на поддержке >1000. Teamviewer контролируется сторонней компанией и неизвестно, что она делает с трафиком. Teamviewer не пользуется доверием у некоторых наших клиентов. Нам нужны были уникальные ID для всех пользователей. Ну и его стоимость для достаточно большой инфраструктуры очень приличная, что тоже повлияло на решение. При этом у нас достаточно широкие каналы связи и нет жестких требований к скорости отклика, что нивелировало основной недостаток UltraVNC, а именно - более низкую скорость работы.

    Как это работает

    Исходная архитектура VNC протокола слабо предназначена для работы через глобальные сети. Для этого есть несколько причин.
    • Отсутствие шифрования передаваемых данных.
    • Короткие пароли (8 символов в современном мире? Вы серьезно?)
    • Отсутствие сквозной нумерации серверов, подключение по IP.
    • Невозможность работы из-за NAT.
    Я, конечно, перечислил не все. Но это основные недостатки, которые мешали нам рассматривать данное решение всерьез. В итоге, все они были тем или иным образом преодолены. Текущая схема работы выглядит примерно так:

    Клиентский UltraVNC сервер подключается к нашему репитеру, который одним своим портом (нестандартным) смотрит в интернет и принимает подключения. А мы подключаемся к этому же серверу по внутреннему адресу изнутри и уже оттуда - к клиенту. Соединения шифруются RSA2048/AES256. Так как серверы и клиенты цепляются на разные порты, можно гибко ограничить, у кого и откуда есть право подключения, не трогая возможность UltraVNC-серверов подключаться к репитеру.

    Установка UltraVNC репитера

    Так как репитер будет единственным публичным сервисом, его настройке надо уделить максимум внимания. Использовать нестандартные порты, блокировать подозрительную активность, например сканирование портов и жестко определять, откуда можно будет подключаться Viewer-ам. Но начнем с самого простого – установки и настройки. Сервер настраивается во втором режиме, третий (через SSL) требует специальных сборок просмотрщиков и серверов, поэтому его решили не использовать.

    Итак, заходим на сервер, которому предначертано стать будущим репитером и начинаем колдунство. Установка будет описана для Ubuntu 16.04. Ставим необходимые зависимости.

    Sudo apt-get install build-essential
    Создаем пользователя для запуска репитера.

    Sudo useradd -c "UltraVNC Repeater User" -M -s /sbin/nologin uvncrep
    Скачиваем исходники репитера.

    Wget http://www.wisdomsoftware.gr/download/uvncrep017-ws.tar.gz
    Распаковываем репитер и заходим внутрь папки.

    Tar -xzvf uvncrep017-ws.tar.gz && cd uvncrep017-ws
    Собираем репитер.

    Make
    Устанавливаем репитер в систему.

    Sudo ./install.sh
    У нас все готово к успешному запуску, но надо немного изменить файл настроек. Поэтому открываем в любимом редакторе /etc/uvnc/uvncrepeater.ini и приводим настройки к следующему виду:

    Viewerport = 5900
    По странной прихоти автора номер порта отличается от стандартного. У себя нестандартный порт мы выставим на файрволе.

    Logginglevel = 2
    Немного повышаем уровень логирования, чтобы видеть информацию о бинде портов и подключениях в логе.

    Allowedmodes = 2
    Запрещаем оба режима, оставляем только 2, потому что первый работает по другому принципу и может создавать для нас уязвимость.

    Useeventinterface = false
    Отключаем отправку сообщений. Пока мы никому ничего отправлять не будем. Может быть потом…

    Сохраняем файл и тестируем корректность его настроек.

    Sudo uvncrepeatersvc /etc/uvnc/uvncrepeater.ini
    UltraVnc Linux Repeater version 0.17 UltraVnc Sat Feb 11 16:48:29 2017 > listInitializationValues(): viewerPort: 5900 UltraVnc Sat Feb 11 16:48:29 2017 > listInitializationValues(): serverPort: 5500 UltraVnc Sat Feb 11 16:48:29 2017 > listInitializationValues(): maxSessions: 100 UltraVnc Sat Feb 11 16:48:29 2017 > listInitializationValues(): loggingLevel: 2 UltraVnc Sat Feb 11 16:48:29 2017 > listInitializationValues(): ownIpAddress (0.0.0.0 = listen all interfaces) : 0.0.0.0 UltraVnc Sat Feb 11 16:48:29 2017 > listInitializationValues(): runAsUser (if started as root) : uvncrep UltraVnc Sat Feb 11 16:48:29 2017 > listInitializationValues(): Mode 1 connections allowed: No UltraVnc Sat Feb 11 16:48:29 2017 > listInitializationValues(): Mode 2 connections allowed: Yes UltraVnc Sat Feb 11 16:48:29 2017 > listInitializationValues(): Mode 1 allowed server port (0=All) : 0 UltraVnc Sat Feb 11 16:48:29 2017 > listInitializationValues(): Mode 1 requires listed addresses: No UltraVnc Sat Feb 11 16:48:29 2017 > listInitializationValues(): Mode 2 requires listed ID numbers: No UltraVnc Sat Feb 11 16:48:29 2017 > listInitializationValues(): useEventInterface: false UltraVnc Sat Feb 11 16:48:29 2017 > listInitializationValues(): eventListenerHost: localhost UltraVnc Sat Feb 11 16:48:29 2017 > listInitializationValues(): eventListenerPort: 2002 UltraVnc Sat Feb 11 16:48:29 2017 > listInitializationValues(): useHttpForEventListener: true UltraVnc Sat Feb 11 16:48:29 2017 > dropRootPrivileges(): privileges successfully dropped, now running as user uvncrep UltraVnc Sat Feb 11 16:48:29 2017 > routeConnections(): starting select() loop, terminate with ctrl+c
    Все в порядке, можно запускать как стандартную службу. Останавливаем репитер с помощью Ctrl+C и запускаем уже как сервис.

    Sudo systemctl start uvncrepeater
    Проверяем, что служба запустилась.

    $ ps ax | grep uvnc 11168 ? S 0:00 /usr/sbin/uvncrepeatersvc /etc/uvnc/uvncrepeater.ini 11170 pts/0 S+ 0:00 grep --color=auto uvnc
    Файл лога можно посмотреть по адресу /var/log/uvncrepeater.log.

    Установка и настройка UltraVNC сервера

    Итак, первое препятствие между нами и нирваной рухнуло с треском. Теперь мы можем подключаться к клиентам за NAT. На очереди два следующих – отсутствие сквозной нумерации и шифрования. Настраиваем тестовый UltraVNC-сервер. Так как у нас основной парк управляемых машин – это Windows, установка сервера и клиента будет расписана для них.
    • SecureVNC Plugin:

    Запускаем установщик UltraVNC сервер. Принимаем условия соглашения и нажимаем Next > .

    Вчитываемся с интересом и Next > .

    Выбираем установку только UltraVNC Server и нажимаем Next > .

    Жмем Next > и никаких гвоздей.

    Ставим указанные галочки, чтобы установить UltraVNC сервер как системную службу и запустить его сразу после установки. Жмем Next > .

    Смотрим на этот экран с умным видом, потом нажимаем Install .

    Здесь есть только одна кнопка для нажима. Жмем на нее.

    Снимаем галочку, чтобы не смотреть какие-то последние версии, и жмем Finish .

    Кнопконажимательная часть миссии закончена. Теперь надо доустановить необходимые компоненты и настроить сервер. Копируем плагин безопасности в папку UltraVNC.

    Распаковываем папку с драйвером.

    Заходим в папку с соответствующим драйвером и устанавливаем его путем запуска install.bat.

    Внимание! Установку драйвера надо производить с административными правами. Причем запустить от имени администратора только install.bat не получится, потому что он запускает еще одну программу и она будет работать уже не от администратора. Поэтому запускаете консоль от администратора, идете в папку установки драйвера и запускаете install.bat оттуда.

    Я выполнял тестовую сборку по XP с правами администратора, потому мне это не потребовалось.

    Запускаем настройки VNC сервера – uvnc_settings.exe.

    Переходим на вкладку Security .

    • В разделе Authentication выставляем два пароля. Пароли должны быть одинаковыми, состоять из цифр и больших и малых латинских букв, не более 8 символов длиной .
    • В разделе Encryption ставим галочку Use , выбираем из выпадающего списка наш плагин, и жмем на кнопку Configuration .

    Галочки должны стоять так, как показано на скриншоте. Если все правильно, закрываем окно нажатием кнопки Close .

    Переходим на вкладку Connection .

    • В разделе Multiple connections выбираем Keep existing connections .
    • В разделе Disconnect выбираем Do Nothing .

    Переходим на вкладку Screen Capture .

    • В разделе Advanced выбираем Use system hookdll, Use mirror driver, Remove Aero while connected и Remove wallpaper while connected .

    Переходим на вкладку Misc/logging .

    • В поле Service command line вбиваем самую главную строку. Эта строка содержит ID и адрес и данные репитера для подключения. Выглядит она так:
    -autoreconnect ID:XXXXXXXX -connect :
    ID получается с помощью скрипта по методике приведенной ниже.

    После всех проделанных действий нажимаем ОК для сохранения настроек. Потом запускаете настройки еще раз и переходите на вкладку Service . На ней нажатием соответствующих кнопок сначала останавливаете, потом запускаете сервис.

    Генерация уникального ID

    Скрипт получения 8-значного номера ID. Написан на php, потому что это было проще всего. В качестве источника вдохновения использовались комментарии вот к . Как работает, думаю, пояснять не надо. Почему именно скрипт генерации и почему именно по MAC? Потому что репитер не даст подключиться двум серверам с одинаковым ID, а вести журналы со списками ID было предельно лень. А так как MAC-адреса и так уникальны, то почти гарантированно получаем уникальный номер с достаточно низкой вероятностью коллизии.


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

    Установка и настройка UltraVNC Viewer

    Скачиваем необходимые компоненты по ссылкам. Компоненты должны иметь архитектуру (x86 и x64), соответствующую архитектуре компьютера, на который происходит установка Viewer.
    • Finish .

      Устанавливаем все настройки так же, как и на скрине. ID сервера для подключения вводится именно в таком формате, то есть ID:XXXXXXXX . IP и порт репитера вводятся такими, какими были назначены при установке репитера.

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

      Замечания по использованию

      • Не забывайте при подключении устанавливать security плагин . Если его не будет, соединение все равно произойдет, только без шифрования. Заставить UltraVNC Server требовать шифрования мне пока не удалось.
      • Донастройте сервис при установке UltraVNC сервера . В процессе использования было отмечено, что сервис сервера иногда падает. Для того, чтобы в нужный момент не потерять связь с машиной рекомендуется в настройках сервиса установить его автоматический перезапуск при падениях.
    • удалённый доступ
    • unix
    Добавить метки

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


    accept_reject_mesg =
    Пользовательское принять/отклонить сообщение с тектом.
    изменить сообщение логотипа добавлением logo.bmp в папку ultravnc

    service_commandline =
    Используется для запуска службы winvnc (в режиме службы) со специфическими параметрами и командами.
    Точно такойже синтаксис как и в командной строке только нет необходимости набирать -run
    пример: service_commandline=-autoreconnect -connect 192.168.1.30
    В примере служба создаёт подключение к 192.168.1.30 и переподключается при неудаче.

    FileTransferEnabled=1
    Включение отправки файлов

    FTUserImpersonation=1
    При передаче файлов, работает через рабочий стол. Когда параметр не равен "1" передача файлов осуществляется от операционной системы. Пользовтелям блокируется доступ к сетевым дискам и возникает угроза безопасности... обычный пользователь может передавать файлы в качестве администратора.

    BlankMonitorEnabled=1
    Показывает просматривающему пустой экран

    CaptureAlphaBlending=1
    Захват alphaBlending позволяет показ полупрозрачных окон windows (xp, vista...) но использует больше процессорных ресурсов.

    BlackAlphaBlending=0
    При использовании хранителя экрана в пустой монитор укладывается допольнительный слой с которого осуществляется захват экрана. В этой опции можно использовать свой пользовательский пустой экран, помещая файл "background.bmp" в папке UltraVNC

    DefaultScale=1
    Задать шкалу

    UseDSMPlugin=0
    Использовать плагин шифрования

    DSMPlugin=
    Имя плагина

    primary=1
    secondary=0

    При использовании несколько мониторов (требуется установленный драйвер) вы можете определить поведение по умолчанию. Показать только primary/secondary или оба

    SocketConnect=1
    Параметр 1 даёт возможность на установку подключений

    PortNumber=0
    Ручная установка порта (default 5900)

    HTTPConnect=1
    Включение порта java viewer

    HTTPPortNumber=0
    ручная установка порта http (default 5800)

    XDMCPConnect=0
    Не используется

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

    InputsEnabled=1

    Разрешить просмотрщику контроль над сервером

    LocalInputsDisabled=0
    Блокировка входа с сервера, возможен только удалённый доступ

    IdleTimeout=0
    Отключение после простоя (0 = default, нет времени простоя, в секундах)

    EnableJapInput=0
    Этот парметр используется для японской клавиатуры и других не стандартных раскладок. Сложные клавиши и решает вопрос со спецзнаками.
    Для Русской раскладки рекомендую использовать "1", при этом в VNC Viwer нужно выставить опцию поддержки японской клавиатуры.
    В вьювере ставим точку Manual, заходим в Опции - ставим Japanise Keyboard и все, притом язык на клиенте и на сервере должен быть одинаковый, тогда меняется раскладка без проблем.

    AuthHosts=

    + = разрешить
    - = запретить
    ? = по запросу
    syntax:
    -:+10.0.60.141:?10.0.31.169:-10.0.20.240:
    вместо 10.0.60.141 можно использовать 10.0.60, тогда будет работать для всего диапазона IP адресов.

    QuerySetting=2
    Определяет как реагировать на (-,?,+) переменные Authhosts.
    0="+:Accept, ?:Accept, -:Query"
    1="+:Accept, ?:Accept, -:Reject"
    2="+:Accept, ?:Query, -:Reject "
    3="+:Query, ?:Query, -:Reject"
    4="+:Query, ?:Reject, -:Reject"
    It is used to specify a set of IP address templates which incoming connections must match in order to be accepted. By default, the template is empty and connections from all AuthHosts_Tip5="hosts are accepted. The template is of the form:
    +
    ?
    -
    In the above, represents the leftmost bytes of the desired stringified IP-address.
    For example, +158.97 would match both 158.97.12.10 and 158.97.14.2. Multiple match terms may be specified, delimited by the ":" character. Terms appearing later in the template take precedence over earlier ones. e.g. -:+158.97: would filter out all incoming connections except those beginning with 158.97. Terms beginning with the "?" character are treated by default as indicating hosts from whom connections must be accepted at the server side via a dialog box. The QuerySetting option determines the precise behaviour of the three AuthHosts options.

    QueryTimeout=10
    Время на запрос

    QueryAccept=0 (0=refuse 1=accept 2=refuse)
    Это окно рассчитано на разрешенных пользователей (server site) к allow/reject на входящее подключение.

    QueryIfNoLogon=0
    Отключить / включить параметры запроса, когда ни один пользователь не вошел в систему.

    If the user is logged on, but has his screensaver on you normal can"t get access as "QueryIfNoLogon" find a logged user.
    to overwrite this set QueryAccept=2 and QueryIfNoLogon=0 -> no messagebox when screen is locked.

    LockSetting=0
    0="ничего"
    1="заблокировать рабочую станцию при отключении(NA)"
    2="выход из системы при отключении"

    MaxCpu=xxx
    MaxCpu=100 (winvnc can use full 100% cpu)
    MaxCpu=40 (winvnc can use max 40% cpu)

    RemoveWallpaper=1
    Удаление фонового изображения рабочего стола

    RemoveAero=1
    Выключение Aero на просматриваемом подключении и сброс при выходе.
    Делает Vista и Win7 быстрей

    Avilog=0
    Не используется!

    path=d:\ultravnc_src\ultravnc\winvnc\debug
    Определите каталог, в который необходимо сохранить файл winvnc.log. Убедитесь, что этот каталог доступен для записи системы (не отображается в папке)

    DebugLevel=0
    DebugLevel показывает, сколько информация отладки представить. Любое целое положительное число является действительным. Ноль означает, что никакая информация отладка не следует производить и по умолчанию. Значение вокруг 10-12 вызовет полный отладочный вывод будет производиться

    DebugMode=0
    Во время выполнения и протоколирования всех внутренних отладочных сообщений теперь поддерживается. Войти данные могут быть выведены в файл или окно консоли или отладчика MSVC, если программа была составлена??с отладкой активной.)

    AllowLoopback=0
    0 = ОТключить подключения с localhost (Default)
    1 = Включить подключения от localhost
    По умолчанию серверы WinVNC запретить любые VNC Connections Viewer из той же машине. Для тестирования целей, или, потенциально, при использовании нескольких экземпляров WinVNC на Windows Terminal Server, такое поведение нежелательно.

    LoopbackOnly=0
    По умолчанию серверы WinVNC принимать входящие соединения на адрес сетевого адаптера, так как это самый простой способ справиться с многосетевых машин. В некоторых случаях, предпочтительно, чтобы только для соединений, поступающих из локальной машине и направленных на "локальный" адаптера - конкретный пример является использование VNC по SSH для обеспечения безопасной VNC. Установка это вызовет WinVNC принимать только локальные соединения - это перекрывает настройки AllowLoopback и AuthHosts.

    AllowShutdown=1
    Разрешает или запрещает пользователю доступ к меню отключения сервера, доступно(1) или не доступно (0). Рекомендую ставить "0", дабы юзеры не могли отключать VNC из трея

    AllowProperties=1

    0 = Выключить пункт "Properties" в uvnc сервере при клике из трэя
    1 = Включить пункт "Properties" в uvnc сервере при клике из трэя

    AllowEditClients=1
    0 = Отключить пункт "Edit Clients" в uvnc сервере при клике из трэя
    1 = Включить "Edit Clients" в uvnc сервере при клике из трэя

    FileTransferTimeout=30

    KeepAliveInterval=5
    Время для передачи файлов и удержания сообщения (в секундах)

    DisableTrayIcon=0
    Не отображать значок UVNC в трее. Рекомендую для особо одарённых включить, параметр "1", дабы исключить наезды на нашу админскую братию. По опыту скажу, что юридически подкованные юзеры очень нервно смотрят на бирюзовый глаз из трея.

    MSLogonRequired=0
    Использование паролей ОС вместо vncpasswd

    NewMSLogon=0
    Используется ACL вместо группового списка

    ConnectPriority=0
    ConnectPriority indicates what WinVNC should do when a" non-shared connection is received By default, all WinVNC servers will disconnect any existing
    connections when an incoming, non-shared connection is authenticated. This behaviour is undesirable when the server machine is being used as a shared workstation by several users or when remoting a single display to multiple clients for viewing, as in a classroom situation.

    UseRegistry=0
    0= use ultravnc.ini
    1= use registry the same way as in v102

    AuthRequired=1
    By default, all WinVNC servers will not accept incoming connections unless the server has had its password field set to a non-null value. This restriction was placed to ensure that misconfigured servers would not open security loopholes without the user realising. If a server is only to be used on a secure LAN, however, it may be desirable to forego such checking and allow machines to have a null password.

    sendbuffer=xxxx
    variable available starting uvnc 1.0.8.0
    sendbuffer=1500 (wifi or value less)
    sendbuffer=4096 (lan 100Mbit)
    sendbuffer=8192 (lan 1GBit, aka jumbo packet)


    passwd=AAA967DDDDD692AE9C

    Passwd2=D00590A01299C90079

    Длина пароля 8 байт alphadigit + 1 байт alphadigit контрольная сумма от uvnc но игнорируется
    можно использовать vnc pwd generator и вручную добавить 2 символа alphadigit
    passwd = полный контроль read/write
    passwd2= наблюдение (read only)
    Менять пароль через утилиту удобней, она в комплекте:
    setpasswd.exe


    TurboMode=1
    Быстрый экран сканирования, некоторые небольшие изменения на экране могут быть пропущены

    PollUnderCursor=0
    Poll the window below the cursor

    PollForeground=0
    Poll the foreground window

    PollFullScreen=1
    Poll the full screen (default)

    OnlyPollConsole=0
    Don"t use

    OnlyPollOnEvent=1
    Bad updates, only poll screen when mouse/keyboard is used.
    Minimize bandwidt

    EnableDriver=0
    Use mirror driver when installed

    EnableHook=1
    Use hookdll when installed

    EnableVirtual=0

    SingleWindow=0

    SingleWindowName=
    Current not used


    group1=
    group2=
    group3=
    locdom1=0
    locdom2=0
    locdom3=0
    Used by MSlogon (not new mslogon)



    UseRegistry=0
    MSLogonRequired=0
    NewMSLogon=0
    DebugMode=0
    Avilog=0
    path=C:\Program Files\UltraVNC
    kickrdp=0
    clearconsole=0
    service_commandline=
    DebugLevel=8
    DisableTrayIcon=1
    LoopbackOnly=0
    UseDSMPlugin=0
    AllowLoopback=0
    AuthRequired=1
    ConnectPriority=0
    DSMPlugin=No Plugin Detected
    AuthHosts=
    AllowShutdown=0
    AllowProperties=0
    AllowEditClients=0
    FileTransferEnabled=1
    FTUserImpersonation=0
    BlankMonitorEnabled=1
    DefaultScale=1
    CaptureAlphaBlending=1
    BlackAlphaBlending=0
    SocketConnect=1
    HTTPConnect=0
    XDMCPConnect=1
    AutoPortSelect=1
    PortNumber=0
    HTTPPortNumber=0
    IdleTimeout=0
    RemoveWallpaper=0
    RemoveAero=0
    QuerySetting=0
    QueryTimeout=0
    QueryAccept=0
    QueryIfNoLogon=0
    primary=1
    secundary=0
    InputsEnabled=1
    LockSetting=0
    LocalInputsDisabled=0
    EnableJapInput=1
    FileTransferTimeout=30
    BlankInputsOnly=0
    dummy=0
    SC_PROMPT=0
    SC_AUTORECON=0
    DSMPluginConfig=
    passwd=
    passwd2=
    TurboMode=0
    PollUnderCursor=1
    PollForeground=1
    PollFullScreen=1
    OnlyPollConsole=0
    OnlyPollOnEvent=0
    EnableDriver=1
    EnableHook=1
    EnableVirtual=0
    SingleWindow=0
    SingleWindowName=
    preset1=
    preset1D=
    preset1ID=
    preset2=
    preset2D=
    preset2ID=
    preset3=
    preset3D=
    preset3ID=


    Источники:
    Исходная страница на английском - http://www.uvnc.com/docs/uvnc-server/69-ultravncini.html
    Трэд на руборде - http://forum.ru-board.com/topic.cgi?forum=5&topic=23704&start=560
    Линк на автосборщик инсталяторов -