Ultravnc repeater настройка linux

Обновлено: 03.07.2024

На написание данной статьи меня подвигло недавнее обсуждение на форуме. Действительно, на первый взгляд альтернативы платным продуктам нет. Есть некое решение ChunkVNC, но оно у меня не заработало (ни на Windows, ни на Linux).

Сразу хочу предупредить: для коммерческой, промышленной эксплуатации лучше всего, вероятно, подходит платный продукт. Потому что, как бы там ни было, его поддержкой и настройкой занимаются несколько человек, которые могут тратить свое время на ответы на вопросы, выпуск патчей и т.п. Если Вы присылаете по почте ссылку на клиент поддержки пользователю, который не знает, чем таскбар отличается от трея, его бесполезно будет просить "пингани ххх.ххх.ххх.ххх" или "можешь телнетом посмотреть порт?", а тот же TeamViwer, скорее всего, заработает в 99% случаев на большинстве ОС без плясок с бубном.

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

Определимся с терминологией.

"Клиентом" будем называть программу для удаленного управления. То есть Вашу "смотрелку", установленную на домашнем/рабочем ПК.

"Сервером" будем называть программу, которую Вы посылаете клиенту.

Определимся, какое ПО нам понадобиться для настройки?

- Репитер. Это сервис, который принимает подключения от клиента и от серверов. Такой посредник между ними. Нужен он в том случае, если или клиент, или сервер находятся за сетевым экраном (фаерволом) либо за NATом.

- "Сервер". Та программа, которую Вы посылаете клиенту. На самом деле речь идет не об одном exe файле, а о целом каталоге. Я предлагаю использовать самораспаковывающийся (SFX) архив. Далее я расскажу, какие настройки можно сделать в популярной программе WinRAR.

- "Клиент". "Смотрелка", с помощью которой Вы будете управлять вашими клиентами. Подойдет стандартный uNVC клиент.

В приложенном архиве Вы найдете все перечисленные файлы; но при желании Вы можете скачать их самостоятельно на сайте UVNC.

Предлагаю начать с настройки репитера.



Как таковой, настройки ему не требуется; достаточно того, чтобы были свободны порты, используемые VNC. Это 5500 для входящих подключений серверов и 5901 для подключения клиента. Данные порты надо обязательно открыть в брандмауере Windows либо другом файерволе (в том случае, если он у вас установлен). Распакуйте архив с репитером, поместите его в любое удобное место на диске и запустите файл "distributer.exe". Убедитесь, что данные порты доступны из интернета. Если ПК с установленным репитером находится за NATом, Вам требуется опубликовать ("пробросить", "сделать DNAT" ) его на шлюзе.


Настройка клиента сводится к установке "по умолчанию". При выборе компонентов отметьте только "UltraVNC Viewer". При первом запуске UltraVNC Viewer поставьте галку "Proxe/Repeater", укажите там ip адрес репитера, через двоеточие - порт. Например, 192.168.0.22:5901. Поставьте галку "Save connection settings as default", и данная настройка запомнится и будет подставляться автоматически.

Настройка сервера - самая интересная часть. Поместите каталог "Сервер" из файлов публикации в удобное место. Найдите файл helpdesk.txt. Его требуется отредактировать в соответствии с вашими реалиями. Основная строка - это то, что следует под "[HOST]". Первая строка под [HOST] - это имя, как оно будет отображено в окне подключения. Вторая строка - параметры запуска сервера. Вам требуется поменять ip.address.of.repeater:5500 на ваш реальный ip адрес (который будет виден из интернера!). Параметр "-id %ID%" отвечает за то, как Вы будете соединяться с сервером (какое имя будет присвоено). Его я менять не советую, и далее обясню, зачем сделано именно так. И параметр "-noregistry" говорит о том, что сервер не будет делать никаких записей в реестре. Остальные блоки параметры отвечают за отображение текста. Можно с ними поэкспериментировать и выбрать оптимальные для себя.

Обратите внимание на файл chid.vbs. Он используется как раз для того, чтобы после распаковки SFX архива заменить строку "%ID%" в файле настроек на случайное число. Это нужно для того, чтобы несколько Ваших пользователей могли одновременно соединяться с Вашим репитером. Если Вы хотите настроить для определенного пользователя постоянный ID (например, 77777 для любимого главбуха), то в файле настроек поменяйте руками %ID% на нужное число и не влючайте в этот архив файл chid.vbs. Учтите, что случайный ID генерируется как случайное число от 1 до 7000. Ваш персональный ID не должен попадать в этот диапазон. И каждому персональному пользователю Вам придтся собрать персональный архив.

В файлах .bmp лежат картинки для оформления окна программы. Для экспериментов Вы можете менять эти файлы и тут же запускать winvnc.exe. Тут же будет виден результат. Icon1 и Icon2 определяют вид ожидающей и подключенной иконки сервера в трее.

Как только Вы настроили параметры в соответствии с Вашими вкусами, пришло время собрать SFX архив. В программе WinRAR для этого нужно в диалоге создания нового архива

- поставить галку "Create SFX archive"


- перейти на вкладку "Advanced"

- открыть "SFX Options"


- на вкладке "Setup" в поле "Run after extraction" написать


- на вкладке "Modes" поставить галку "Unpack to temporary folder"


- нажать "OK", закрыть диалог настройки параметров SFX. Перейти на вкладку "Files"


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

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

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

Исходная архитектура VNC протокола слабо предназначена для работы через глобальные сети. Для этого есть несколько причин.

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


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

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

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

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


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


Скачиваем исходники репитера.


Распаковываем репитер и заходим внутрь папки.


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


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


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


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


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

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

Все в порядке, можно запускать как стандартную службу. Останавливаем репитер с помощью Ctrl+C и запускаем уже как сервис.


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


Файл лога можно посмотреть по адресу /var/log/uvncrepeater.log.

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

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

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

Запускаем установщик 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.

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

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

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



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

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


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

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

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



Внимательно читаем странное и нажимаем Next >.


Выбираем папку установки и нажимаем Next >.


Выбираем только компонент UltraVNC Viewer и нажимаем Next >.


Оставляем здесь все как есть и просто нажимаем Next >.


Выставляем галочки так, как вам будет удобно и нажимаем Next >.


Отключаем просмотр последних версий снятием галочки и нажимаем кнопку Finish.

Теперь скачиваем файл плагина по ссылке выше и перемещаем его в папку программы. После этого запускаем Viewer.


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

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

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

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

Увидимся в следующих сериях

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

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

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

Как установить UltraVNC

Во время установки, если вам нужен только клиент или только сервер VNC, то вы можете выбрать желаемые компоненты:


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


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

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

После установки будет создано 4 ярлыка:


  • UltraVNC Launcher
  • UltraVNC Server
  • UltraVNC Viewer
  • UltraVNC Repeater

Как включить и отключить службу сервера UltraVNC

Следующие команды нужно выполнять в PowerShell.

Для проверки статуса службы:

Для отключения службы (включится после перезагрузки)

Для включения службы:

Ручное включение службы (при запуске компьютера служба не будет включаться, но вы можете запустить её вручную):

Отключение службы (при загрузке компьютера служба не включится):

Автоматическое включение службы (служба включится при загрузке компьютера):

Как настроить UltraVNC Server

Если вы запустили службу сервера UltraVNC, то рядом с часами появится иконка, по которой кликнув правой кнопкой мыши вы увидите меню с пунктами настройки и действий (далее перечислены самые значимые):


Важные настройки содержит окно Admin Properties:


Вам обязательно нужно настроить VNC Password — пароль для подключения к VNC серверу, всё остальное можно оставить без изменений.

Как настроить UltraVNC Viewer

При открытии программа запрашивает только имя компьютера для подключения:


Как подключиться по UltraVNC

Как запустить сервер UltraVNC

Установите UltraVNC, как это показано выше. Если вам нужен только просмотрщик VNC

Если вы хотите, чтобы подключились к вашему компьютеру, то при установке UltraVNC обязательно установите сервер. Запустите службу UltraVNC или откройте приложение с сервером.

Многие клиенты отказываются подключаться, если не установлен пароль, поэтому перейдите во вкладку Admin Properties и установите VNC Password. Больше можно ничего не менять.

Сообщите тому, кто будет к вам подключаться, ваш IP адрес.

Если к вам подключаются из локальной сети, то, чтобы узнать свой IP, откройте командную строку и введите команду:

Если к вам должны подключиться через Глобальную сеть Интернет, то узнать свой внешний IP вы можете, например, на этом сервисе.

Если вы используете роутер, то вам нужно в вашем роутере настроить проброску (форвардинг) портов. Инструкции зависят от модели роутера, пример настройки дан здесь. Единственное отличие — вместо порта 3389, нужно сделать перенаправление TCP портов с 5900 по 5906.

Как подключиться по VNC с помощью UltraVNC

Запустите UltraVNC Viewer. Введите IP сервера VNC (спросите у вашего администратора). Когда программа спросит, введите пароль:


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


Как пользоваться UltraVNC

В самом верху окна вы увидите панельку.


Первые четыре иконки:

  • зафиксировать панель
  • развернуть окно на весь экран. При повторном нажатии, возвращает его в исходный размер
  • сделать скриншот
  • поменять дисплей

Если вы нажмёте на крестик, то подключение к удалённому столу будет закрыто.

В левой верхней части окна доступна ещё одна панель:


При нажатии кнопки Open File Transfer, вы сможете передавать файлы между компьютерами, подключёнными по VNC:


Чат между пользователями по VNC:


Чтобы открыть чат с сервера, кликните правой кнопкой мыши по иконке сервера рядом с часами и выберите List All Clients,

Первым делом давайте удалим Vino, всё равно корректной работы от него добиться не удаётся, да и в функциональности X11vnc он несколько проигрывает.

Для этого открываем терминал и вводим:

По запросу вводим пароль администратора, подтверждаем удаление.

Теперь установим X11vnc (необходимо подключение к сети Интернет), всё очень просто — вводим в терминале команду:

Подтверждаем установку пакета. Загрузка и установка займёт около одной минуты, ждём завершения.

Настройка VNC на Ubuntu

Процесс установки x11VNC

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

Настройка VNC на Ubuntu

Соглашаемся с записью пароля в файл

Вводим пароль два раза, после соглашаемся на запись в файл. Пароль будет сохранён в файл /home/USER/.vnc/passwd (где «USER» — имя пользователя, под которым мы совершаем настройку, у меня, например, пользователь именуется «sadmin»).

В общем-то уже можно пользоваться, но это будет не слишком удобно по нескольким причинам:

  • X11vnc не будет запускаться при загрузке системы, это не удобно, так как каждый раз для удалённого подключения придется вручную запускать VNC сервер, а это иногда просто не возможно.
  • Если за удалённым компьютером не зарезервирован IP-адрес, то будет непонятно, куда подключаться (или пробрасывать порт), и каждый раз перед подключением нам каким-то образом придётся узнавать IP-адрес удалённого компьютера.

Давайте решим данные проблемы.

Автозагрузка X11vnc на Ubuntu

Тут всё тоже очень просто. Первым делом с помощью встроенного текстового редактора Gedit создадим файл /etc/init/x11vnc.conf, для этого в терминале вводим:

Настройка VNC на Ubuntu

Проверяем правильность, жмём «Сохранить»

По запросу вводим пароль администратора. Откроется текстовый редактор, в тело открытого файла пишем:

В предпоследней строчке вместо «USER» необходимо указать имя пользователя, под которым выполнялась настройка, у меня это «sadmin».

Проверяем правильность ввода и жмём сохранить.

Теперь при включении удалённого компьютера X11vnc будет включаться автоматически. Что важно — запуск сервера будет происходить до авторизации пользователя.

Сетевые настройки для VNC

Теперь давайте разберёмся с IP-адресом.

Настройка VNC на Ubuntu

Жмём на иконку передачи данных в правом верхнем углу экрана и в открывшемся списке выбираем «Изменить соединение».

Настройка VNC на Ubuntu

Изменим способ настройки

В открывшемся окне выбираем используемое соединение (у меня это «eth0_Overgateway″) и правее жмём «Изменить».

В открывшемся окне переходим на вкладку «Параметры IPv4″, выбираем из выпадающего списка способ настройки «Вручную».

Ниже жмём «Добавить» и прописываем сетевые настройки, которые соответствуют настройкам DHCP-сервера Вашего маршрутизатора (в столбце «Адреса» будет постоянный IP-адрес удалённого компьютера).

Настройка VNC на Ubuntu

Когда все сетевые параметры вписаны, сохраняем

После прописания настроек жмём «Сохранить», после перезагружаем компьютер.

На этом настройка удалённого доступа на Ubuntu закончена — теперь при включении компьютера у нас автоматически запустится настроенный VNC-сервер, и мы сможем удалённо подключиться.

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

Всё настроено, осталось только подключиться. Для этого нам понадобится VNC-клиент. Я использую UltraVNC Viewer (скачать можно прямо с официального сайта бесплатно — ссылка, зеркало — ссылка (v. 1.2.0.3)).

После загрузки запускаем *.exe файл и, следуя инструкциям установщика, инсталлируем программу. После завершения запускаем.

Настройка VNC на Ubuntu

Указываем IP сервера

Настройки очень простые: в поле «VNC Server:» вписываем IP-адрес (который получает удалённый компьютер) и жмём «Connect». После будет запрошен пароль — вводим пароль и жмём «Log On».

Читайте также: