Pull to refresh

Comments 87

UFO just landed and posted this here
Ага, все верно, спасибо за первые помидорки. В пользу VNC есть 2 аргумента: 1) это бесплатное решение, 2) это решение с подконтрольным вам сервером, что является плюсом с точки зрения безопасности.

Речь, наверное, всё же о том, что не всегда есть возможность реализовать ваш вариант. Например, клиент — это человек с ноутбуком и USB-модемом где-нибудь в регионе.

Используем TightVNC для таких целей, т.к. он самый производительный при работе через узкий канал (зато не безопасный, но в данном случае нам подходит). «Человек с ноутбуком» просто запускает скрипт, который стартует VNC сервер в режиме обратного соединения к нашему клиенту, работающему в режиме прослушивания с проброшенным наружу портом.

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

У Tight нет возможности делать вот такие штуки с ID и посредником. Это действительно удобно, когда клиентов много, потому что сделать проброс на такое количество машин, и правильно настроить "слушателей" может быть очень сложно.

Да, TightVNC очень ограничен в функционале (хотя передача файлов в наличии) и безопасности, но его сетевая оптимизация значительно выше аналогов. На нем можно более-менее комфортно работать даже через USB модем, субъективно аналогично TeamViewer. Другие его бесплатные аналоги существенно хуже в этом плане.
У Tight нет возможности делать вот такие штуки с ID и посредником.

Всё есть (TurboVNC — форк TightVNC с оптимизациями и новыми плюшками).
Да, на слабых каналах UVNC сложно использовать.

Видимо у ultraVNC с tightVNC разные требования к каналу.
tightVNC комфортно работает на пропадающем в дороге 3G. Иногда приходится даже какое-то простенькое видео подредактировать в premier, и залить в инет находясь при этом в поезде. По ощущениям teamviewer раньше перестаёт работать, чем tightVNC.

Стоимость лицензии на TeamViewer не забыли посмотреть?
Если достаточно активно цепляться к компам, в определенный момент некоммерческое использование начнёт вставлять палки в колёса.

Причём не хилые такие палки в колеса. Teamviewer меньше 2 минут работает раз в 10 минут. Но и за это спасибо им. Хотел купить, да оказалось, что не так и просто это сделать юрлицу, по безналу в Германию оплатить не удалось. Может сейчас что-то изменилось, да уже не хочется, столько глюков с ним.


Teamviewer хватает чтобы быстренько поставить VNC, но я ставлю не ultraVNС, а tightVNC, прекрасно работает, есть клиенты на android и ios.


И у них есть Listening viewer, что позволяет мне относительно легко подключаться к клиентам за nat.

Можно купить через российских крупных софт-ритейлеров, но наценка и НДС, конечно же.
/поморщившись/
1. Я как-то пробовал сделать удаленный доступ с адроида на линух через тимвьювер и могу сказать ровно то же самое: ТВ — это вам не работать. Ну и, как уже верно заметили выше — ТВ это коммерческое решение с серверами вне вашего контроля. То, что оно дает возможность свободного использования — это их милость а не ваше право, со всем вытекающим. Напомню что был, знаете ли, неплохой сервис хамачи…

2. Что же до статьи то в ней несколько неопределенно для кого именно делался этот доступ. Судя по «нестандартным портам» все же похоже что для некоего круга, определенного заранее. Тогда несколько непонятны претензии к vnc на тему шифрования, длины паролей итд, поскольку это в общем-то не совсем его задача, логичнее было бы поднимать vpn и уже внутри него поднимать удаленный доступ…
С VPN тоже не все так просто. До каждой машины, которой надо управлять его не добросишь, потому что машин достаточно много. Значит надо добрасывать до подсетей, но у нас есть пересекающиеся подсети и это тоже может создавать проблемы. В этой ситуации такое решение оказалось самым беспроблемным. Но голый VNC для такого не подходил, по причинам, озвученным выше, а вот если снабдить его разными примочками, то становится более приятно и безопасно работать. Да и лучше, когда все необходимое (т.е. и шифрование и удаленный доступ) получается объединить в одном продукте, согласитесь.
Значит надо добрасывать до подсетей, но у нас есть пересекающиеся подсети и это тоже может создавать проблемы.

У меня была похожая проблема, нужно было объединить две сети с пересекающимися адресами. Сначала попробовал шаманить с SNAT, но выглядело это топорно и работало на костылях. В итоге решил поднять IPv6 в локальной сети. Работает на удивление хорошо, почти все программы без труда заработали с IPv6-адресами.


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

Спасибо, обязательно попробую.
Насколько я помню vnc как таковой отправляет не изменения, как RDP, а просто потоком шлет графику. В этом направлении ничего не поменялось? Я бы с радостью переехал на любой VNC. У нас просто много удаленных точек, в ректальных складках России, и там качество связи оставляет желать лучшего. TeamViewer справляется хорошо. Было бы здорово иметь бесплатный, аналогичный продукт.
Да, правда давно, и в упор не помню, что ж мне там не понравилось. Надо будет глянуть еще раз. Спасибо, что напомнили =)
Поправьте меня, если я ошибаюсь, но X2Go и freeNX подходят только для Linux-десктопов, а NoMachine's NX требует Enterprise лицензий для работы в режиме, в котором сейчас работает UltraVNC.
я пробовал и, честно говоря, он меня сильно разочаровал.
скорость как у VNC в худших его проявлениях, а удобство ммм… не очень.

В общем, мне не понравилось.
Я вот эту программку уже пару лет использую: http://rvisit.net. Вполне заменяет TeamViewer/AMMY для повседневных задач. И да, она полностью бесплатна.
Не проверяли, корректно ли она работает при запросе на повышение прав в Windows?
Не доводилось пока. Её можно установить на клиентских машинах в виде службы, в принципе, не должно быть проблем.
Спасибо за ссылку, ради интереса посмотрю/погоняю в тестовой среде.
А на чем зарабатывают разработчики этой проприетарной утилиты, если она полностью бесплатная и без платной поддержки?

А видимо ни на чём не зарабатывают, как пишет автор, сваял на досуге.
Сайт и логотип ему делали дешёвые фрилансеры, судя по гуглу.


Попробовал, работает. Но мне не подходит, так как требуется мультиплатформенность.

Спасибо, я вижу у вас теперь исходники есть (правда почему-то только для серверной части). Просто бесплатным утилитам с отсутствующим (непрозрачным) механизмом монетизации и закрытым исходным кодом не позволяет доверять паранойя
Правильно делает Ваша паранойя, я код постараюсь дочистить от откровенного фейла и выложу клиент тоже, а то в соседней теме уже кинули камнем.
Трафик гоняется через сервера этого разработчика? То есть в любой момент, он может прикрыть лавочку?
То есть, я могу прямо вот сейчас всё stand alone поднять и настроить? Если так — то я даже не знаю… Пожалуй, это самая приятная новость в мире ПО удалённого доступа (особенного отечественного! — Да в этом мире она наверное самая приятная за всё время). Низкий поклон, если это всё так!
вот в этой статье я выложил ссылочки и немного описания
Немного не так, VNC использует RFB протокол, который тоже отсылает только обновления экрана, но только прямоугольными областями и в самом простом случае без сжатия вообще. То есть поток все равно получается неслабый, особенно если обновляются значительные области экрана. Это хорошо заметно при работе. Некоторые VNC пррограммы поддерживают динамическое сжатие потока, но насколько помню, UltraVNC — нет.
Спасибо за информацию!
Это самая главная проблема VNC, и о ней Вы не упомянули вначале статьи. TV, как раз хорошо работает на слабых каналах. :(
Спасибо за подсказку, исправил.
anydesk — самый быстрый и бесплатный для дома

Это замечательное чудо:


  1. Требует в обязательном порядке админских прав в момент запуска
  2. Прописывает себя в службы
  3. Иногда (потеря пакета?) в сеансе удаленного управления мышь/клавиатура отваливаются
    да, запасной вариант, но уж проще AMMYY скачать (да, хром уже отказывается с оф сайта качать)
Веб контроль Касперского (или как он там зовётся) тоже ammyy блокирует.
у меня ammyy куплен, но регулярно приходится использовать TV, т.к. если ammyy запущен из под пользователя (или даже с админскими правами, но не как сервис), он:
а) рвёт соединение при любом запросе UAC (это понятно и терпимо)
б) сходит с ума, если у пользователя два монитора, а тем более, если у них разное разрешение

Тем не менее, тех небольших денег, которые уплачены за ammyy не жалко, в своих рамках это отличное решение (которое работает из под wine без проблем. Иногда это важно).
В своё время писал решение похожей проблемы, только там был tcp over tcp. Поднимался обратный конект до сервера который был на белом айпишнике и вещал порт во внутреннюю сеть. (ну и запускался vnc сервер портативный)Программа говорила пользователю: «Вы пользователь: 7004», где 7004 порт на сервере. А дальше сапорт подключался и делал то что надо.
Правда можно было бы STUN подключение поднимать, но я на тот момент не знал об этом протоколе.
> Устанавливаем репитер в систему.
> sudo ./install.sh

Установка в обход менеджера пакетов — ОЧЕНЬ плохая практика.
Было использовано то, что предоставляется разработчиком программы. Подготовка пакета, как вы знаете, довольно нетривиальная задача. В будущем, возможно, соберу. А вопрос ручной сборки программ для меня скорее философский, потому что мейнтейнеры часто не собирают редкие или достаточно старые пакеты.
Скажите, а проблема с раскладками клавиатуры уже решена? А при коннекте с Win на Linux?
Я про нее читал, но пока за все время эксплуатации не сталкивался. Пока не было ситуации с коннектом с Win на Linux.
UFO just landed and posted this here
Есть такая проблема, бывает, мы сталкиваемся с ней. Но для техподдержки в целом хватает.
UFO just landed and posted this here

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

У себя для этих целей хотел применить Single Click, но пока все застопорилось, это не первоочередная задача.
Насколько вся «сборная солянка» стабильно работает?
У нас используется RealVNC — он запиливается в vpn, и таким образом всё стабильно работает больше 5 лет.
Вполне стабильно, если учитывать обозначенные ограничения. Пока заметил только периодические падения сервера VNC, но это решается простой настройкой на автоперезапуск.
спасибо за подробную статью.

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

Спасибо за статью!


Если захотите реализовать Single Click, попробуйте noVNC. Это веб-клиент VNC, работает со всеми основными браузерами и не требует доп. плагинов (не считая WebSocket-прокси на сервере).


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

Спасибо за подсказку, допишу сегодня чуть позже UPD.
noVNC — это именно клиент, я подумывал его использовать для подключения к серверам, но не уверен, что он поддерживает нотацию для подключения по ID, это же не часть протокола.
но не уверен, что он поддерживает нотацию для подключения по ID

Ну, по крайней мере соответствующее поле в интерфейсе есть.
Скриншот


Но есть и такой repeater, может быть речь про него.
В конце концов это WebSocket, а значит, его можно аутентифицировать как любой HTTP-запрос. Хотя возможно придется покопаться в коде.
Пока искал информацию про репитеры, нашел две интересные статьи. Настройка TightVNC для работы с repeater и статья про обход NAT.
Спасибо за статьи. Репитер, как я понял, — оригинальный код, переписанный на перле.
tightVNC + hamachi = кроссплатформенно, NAT проходит (vpn), привязывается к статике адресов hamachi, шифруется, сжимается, только белье не стирает… бесплатно… как то так…
У хамачи в бесплатном режиме серьезные ограничения на создание виртуальных сетей, не больше 5 хостов на сеть, насколько я помню. А разводить скопище сетей, как-то тоже не очень.
Hamachi

https://tinc-vpn.org/ :D


// рекомендую 1.1 ветку. Она хоть и пре-релизная, но там есть вкусняшки:
1) эллиптическое шифрование,
2) лучший mesh-алгоритм (особенно актуально с Mode=switch)
3) возможность "инвайтов" (когда можно всю конфигурацию забить на сервере в скрипт генерации инвайтов, а потом просто сгенерить простой инвайт (строку), который достаточно будет просто принять на клиенте и на том будет сразу настроена сеть :)

Интересное решение. Обязательно взгляну и проверю.
Как-то однобоко подошли к вопросу… В сегодняшнем состоянии у UltraVNC есть намного более насущные проблемы, нежели связь за NAT'ом и шифрование. А именно:
— проблемы с переключением языка
— проблемы с отправкой комбинаций клавиш
— проблемы с передачей файлов
— и много других проблем.
Мы у себя часть решили правкой исходников и перекомпиляцией, часть — настройками. И сейчас работает практически всё как надо. Но доработана всего одна версия (1.2.0.5) и доработки обратно не возвращались.
Кроме того, у UltraVNC нет своей адресной книги, пришлось писать свою, в которой для каждого соединения можно задать любые параметры: скорость, цвета, кодирование, масштаб, и т.д. На медленных каналах тоже неплохо работает.
Скорее всего такая однобокость связана с особенностями использования. То есть я написал, с чем столкнулся сам. А адресную книгу использовал вот эту: https://sourceforge.net/projects/vncaddressbook/.
Рекомендую как альтернативу сборку chunkvnc (на базе uvnc+autoit3, https://web.archive.org/web/20150227004413/http://www.chunkvnc.com/ChunkVNC_3_3_1_setup.exe http://forum.ultravnc.info/viewforum.php?f=50 ) и perl скрипт коммутатор (http://www.vuware.com/chunkvnc/ultravnc_repeater.zip) гораздо удобней и прозрачнее (есть исходники, сложная настройка только один раз, потом удобная сборка простая для пользователей), можно допилить под себя сборку (логотипы, длину одноразового кода, сделать вариант с полным доступом и только на просмотр), обновить бинарник uvcn до актуального, для пользующихся будет как тимвьюер.
Есть еще Apache guacamole
Гейт для протоколов RDP, VNC, ssh. Клиент — браузер. Нужно поставить и выставить наружу сервер с этой программой по http.
Интересный проект. Оставил себе на заметку.
Я на удаленных машинах с линуксом за NAT настраиваю autossh, который автоматически подключается к прокси-серверу, к которому уже потом подключаюсь я и с него к конечной машине. Думаю похожим образом пробросить XRDP over x11vnc

Сервис SystemD (/lib/systemd/system/ИМЯ-СЕРВИСА.service) для запуска SSH-туннеля до удаленной точки (чтобы к машине за NAT можно было подключаться по SSH)

[Unit]
Description=autossh Dina 12.03.2017
After=network-online.target ssh.service

# Original: https://gist.github.com/thomasfr/9707568 http://rus-linux.net/MyLDP/sec/reverse-SSH-tunnel.html

[Service]
User=user
ExecStart=/usr/bin/autossh -M 7474 -N -R 8877:localhost:2323 username@remoteserver.ru -p 5656 -XCY

[Install]
WantedBy=multi-user.target

7474 — порт для мониторинга autossh, открывается на удаленной точке, 8877 — порт, на котором на уделенной точке будет висеть SSH доступ к нашей системе, 2323 — порт SSH на локальной системе, 5656 — порт SSH на удаленной точке.

Удаленная точка — нечто с линуксом не за NAT, тогда по SSH подключаемся сначала к ней, а с нее по SSH к нашей подопытной системе.
1. Вопрос
«В разделе Authentication выставляем два пароля. Пароли должны быть одинаковыми» — когда устанавливаешь одинаковые пароли, при подключении сервер работает в режиме просмотра, а режим управления недоступен.
Это действителньо то, что вам нужно? Мы используем VNC для управления компьютерами.

2. Уточнение.
«А так как MAC-адреса и так уникальны, то почти гарантированно получаем уникальный номер с достаточно низкой вероятностью коллизии.»
Сами себе противоречите. Либо уникальны, либо «почти гарантированно уникальный». В действительности адреса MAC должны быть уникальны по стандарту, но на практике стандарт не всегда соблюдается. А ещё существуют программы, заменяющие MAC, и MAC можно подменить средствами (драйвера) ОС.
Я бы сделал генератор уникального ID на вебстраничке с записью этого ID с базу данных. Самый простой вариант — форма в гуглодоках.

3. Зря не рассматриваете VPN. Мы устанавливаем сервер VPN у обслуживаемого клиента, в результате клиент получает практически круглосуточное дистанционное обслуживание, которое для нас обходится по очень низкой себестоимости — по срочному вопросу инженер может подключиться хоть с планшета, гуляя в парке :), дополнительно клиент получает возможность дистанционной работы своих сотрудников. Технология — OpenVPN на сертификатах плюс списки доступа в блокчейне — утечка закрытого ключа опасна до момента обнаружения утечки, ключ блокируется простым удалением (точнее, заменой) записи, сервер VPN получает изменение автоматически.

4. Сам подключаюсь с GNU/Linux к UltraVNC на компьютерах с Windows из программы Remmina, в ней вполне удобная адресная книга внутреннего формата. Конечно, передача файлов не работает, но, поскольку использую VPN, это не мешает.
1. У меня нет такой информации, машина прекрасно управляется удаленно.

2. Противоречия нет. MAC-адрес, если мы, конечно, не китайцы и не занимаемся всякими грязными трюками вроде подмены MAC является уникальным. Но в то же время функция, которая преобразует MAC в число схлопывает его до 9-значного номера, которых всего 1 миллиард. То есть есть вероятность, что найдутся 2 MAC, которые дадут одинаковое число на выходе. Но с учетом количества машин которые мы подключаем, этот вопрос непринципиален. Да, можно и свой генератор с хранением номеров, ктож спорит, просто его делать дольше, чем намахать такой мини-скрипт. С другой стороны я ничем никого не ограничиваю. =)

3. У меня есть VPN до клиентов, но он не решает вопроса доступа к каждой машине. Или надо каждый компьютер подключать к нашему VPN, что не очень рационально. Плюс есть пересекающиеся подсети, что создает проблемы при маршрутизации. Плюс клиенты иногда просят помощи на рабочих местах, которые стоят за пределами офиса. Мне показалось, что такое решение будет рациональнее.

4. На этот комментарий нет особого смысла отвечать. Я рад за товарища и сам использую Remmina, но техподдержка сидит на Windows. где Remmina нет, потому вопрос адресной книги там актуален.

На работе UVNC и RealVNC, + зоопарк из ammy, DameWare и банальной Виндовой удаленки. TV только для дома. Два момента сразу всплывает: у каждого сервиса своя ниша (хоть и смежный функционал) и кому как удобнее. Дома три компа всего на удаленке нужны, поэтому TV с автозапуском и постоянным паролем. На работе основной инструмент UVNC. Остальное по желанию коллег, кто к кому привык. + VNC на удаленной тачке под VPN норм срабатывает. Можно долго спорить на тему «что лучше», но истинна одна: каждому свой функционал и каждому по удобствам ))
как то админы поднимали такое решение для поддержки вип-клиентов и активно требовали, чтобы вместо тимвьюера пользовались только этим.
но почему то на предложение самим этим пользоваться морщили нос.
Я рад за них и их админов, но что тут отвечать не знаю, честно.
Товарищи, кто-нибудь победил проблему UAC-ом убивающим vnc сессию? И чем предложенное решение лучше vpn+«удаленный помощник»?
Я отключаю secure screen при вводе пароля и UAC выскакивает на стандартном экране без обрыва сессии. Да, возможно несколько понижает безопасность, но лучше решения пока не нашлось.

Смотря с какой позиции лучше. Про VPN много сказано ранее, удаленный помощник тоже непросто настроить да и подтверждений он требует прилично.
Использую X2Go, основанный на Nomachine NX. Заметно шустрее чем VNC.
Для установления канала между клиентом и сервером он использует ssh со всеми его плюшками типа ProxyCommand, что позволяет проходить через NAT.
Он подходит только для Linux-хостов, у нас же почти сугубо винда.
Здравствуйте.
А такой вопрос.

Что с «не обычными» окнами? Это такие окна как примеру у файрфокса с правой стороны меню (так же окно авиры, которое по правой клавише в трее). Оно как бы есть для пользователя по TightVNC его не отображает.

Или это только косяк TightVNC? Тогда может кто знает что с ним делать?
Если честно, не встречался с нестандартным поведением окон и пока ничего сказать не могу насчет их необычности. Но рискну предположить — проблема заключается в способе рисования на экране и, скорее всего, затрагивает все клиенты.
Sign up to leave a comment.