Как стать автором
Обновить

Комментарии 30

Сам VNC протокол стандартизован, поэтому теоретически можно использовать любой VNC сервер.


Не согласен.

NoVNC поддерживает только кодировки Tight, Hextile и совсем примитивные. Т.е. единственная, сносно работающая за пределами локальной сети — это Tight. А ее поддерживают не все VNC-сервера. Например, платный RealVNC ее не поддерживает, и будет работать медленно через noVNC (т.к. скатится на Hextile).
Да, я почитал тут про noVNC performance:

Пишут, что они не поддерживают tight, но поддерживают tightPNG и это самый быстрый режим для noVNC.

Теперь надо вот разобраться, какие VNC серверы поддерживают tightPNG.

В общем, noVNC работает заметно медленней RDP, но вполне терпимо.
Для таких случаев существует TeamViewer QS (quick support). Чем не годится?
Думаю, что для многих случаев годится…

Сам я TeamViewer QS не пробовал, но
— похоже его надо запускать на удалённом компьютере, тогда как noVNC может работать как сёрвис.
— да, Team Viewer (не QS) можно поставить, как сёрвис. Вот интересно в этом случае, — нужно ли инсталлировать что-то клиентской стороне? И будет ли это работать в организациях, где заблокировано всё, кроме HTTP?
Я недопонял задачу:
1) Разовая помощь извне какому-то сотруднику внутри периметра — это слегка против корпоративной политики, но иногда ради сил добра можно так побаловаться ради хорошего человека поперёк тупого внутреннего саппорта. Для этого портативный .exe как раз, а TV QS умеет разные способы связи. Да и то, TV обычно старается не запускаться на компе, который является частью домена.
2) Постоянный доступ извне внутрь корпоративки вопреки корпоративке — тут я никак не могу придумать для чего такие хитрости.

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


В этом случае такие средства как TeamViewer и аналоги выручают как никогда, при этом не нужно пробрасывать доступ извне ко всем компам домена, достаточно доступа к компу админа, а с него по цепочке уже через RDP к любому другому в домене.


На клиентской стороне можно хоть веб-интерфейс использовать, достаточно знать ID и пароль серверной стороны.


Для SlavikF: TV может работать и по 80-му порту, если остальное закрыто, заблокировать можно только заблокировав на шлюзе сервера TeamViewer.com

Согласен — TV вполне себе вариант.

Вот только бывает случаи, когда блокируются не порты, а протокол. Не знаю, как TV ведёт себя в этом случае. Знаю, что Chrome Remote Desktop «не пролазиет» через наш корпоративный прокси.
А что мешает цепляться напрямую к своему кампу, например через OpenVPN? В критических ситуациях с телефона по RDP так захожу.
V может работать и по 80-му порту, если остальное закрыто, заблокировать можно только заблокировав на шлюзе сервера TeamViewer.com

Явная дыра, всё не заблокируешь. А вот SRP просто не дает запускать TV.

Извиняюсь, ответ адресован выше.
Очень интересное решение. Думаю, что стоит про него написать отдельную статью.

Хотя я так понял, что у него другие цели. И работает он через тот же протокол RDP. Верно?
Хотя я так понял, что у него другие цели. И работает он через тот же протокол RDP. Верно?

RDPWrap восстанавливает функциональность RDP-сервера на редакциях, где он отсутствует.
Неоднократно заводил его на Windows 7 Home Basic
НЛО прилетело и опубликовало эту надпись здесь
— У Windows есть «родное» средство для удалённого доступа — Remote Desktop Connection. Но оно есть не во всех версиях Windows — например нет в Home edition.

Я все равно не понял почему не RDP =\

Home редакция для домашнего использования — или у меня фантазия скудная, но я не смог придумать сценарий чтобы мне на домашний ПК был нужен протокол удаленного доступа, в редких случаях я юзаю TeamViewer…
Ещё есть SPICE, но для него я не нашёл сервера под Windows.

И правильно что не нашли, SPICE — это протокол доставки рабочего стола, используется в виртуальной среде и только, т.к. требует наличия виртуальной видеокарты (QXL) на клиенте, и поддержки со стороны Хозяина


Если ищете адекватную замену VNC, есть еще X2Go — но этот скорее для Linux. Из свободных решений для Windows ничего лучше VNC пока не придумали.


VNC — медленный, но позволяет подключаться к пользовательской сессии, в RDP это так же поддерживается, но только в серверных версиях Windows — называется shadow sessions. Упомянутый выше патч rdpwrap вроде может вернуть эту функцию и на клиентских Windows, но я не проверял, и кроме того это нарушает клиентскую лицензию.


В вашем случае думаю что вам будет крайне интересно попробовать проект Guacamole — это свободный RDP(и VNC)-gatevay, который позволит вам настроить список всех клиентов, и подключатся к ним по RDP или VNC прямо из браузера.


В случае успеха, обязательно пишите еще! — статей про Guacamole на хабрахабре раз-два и обчелся, народ должен знать :)

Многих отпугивает что Guacamole требует контейнер servlet'ов (обычно это простой Tomcat). Кроме того, RDP-реализация работает с замечаниями. Я когда-то использовал Guacamole для доступа на работе (где всё закрыто) на виртуалку с биржевым терминалом. С RDP проблем было 2:
1. Я тогда использовал вируализацию на CentOS7, там идёт старая версия программы, в которой RDP поломан в принципе.
2. Со свежим Guacamole проблема была интереснее — он частично отваливался и переставал транслировать изменения на рабочем столе, при это Input обрабатывал (т.е. переподключаюсь и вижу результат клика мыши, к примеру). Но происходило это нечасто (скажем, раз в час в среднем) и решалось простым нажатием F5 в браузере.

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

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


https://github.com/glyptodon/guacamole-docker


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

Честно говоря, x2go тоже медленный. Хотя возможно я просто давно его не видел.

В 2020 все так же медленный. У меня даже медленнее VNC

>> когда протокол Хрома был заблокирован организацией (там почто всё было заблокировано), а noVNC использует обычный HTTP и поэтому работал.
Обычно недоадмины используют блокировку по портам.
А вы говорите что noVNC работает по нестандартному порту 5901. т.о. вероятность что трафик пройдет очень низка…
LiteManagerFree — не встроен в Windows, но есть portable. И с настраиваемым портом. И не скинет, как TeemViewer после какого-то времени или количества подключений. Но, да, тоже требует нормального IP.
Да, для него требуется клиент, через браузер не получится. Клиент, правда, и для Андроида есть.
>> А бывают случаи, когда ставить ничего нельзя (ограничение прав)...
входит в противоречие с
>> Теперь запускаем command prompt с администраторскими правами:

т.е. без прав администратора этим решением воспользоваться проблематично или я ошибаюсь?
Противоречия нет:
— админские права нужны на удалённо компьютере, где мы ставим VNC и noVNC
— на стороне клиента нужен только браузер. Админские права не нужны
Как защититься? Мне, как админу эта фигня не нужна.
Ну, во-первых, насколько я помню, VNC viewer applet еще никто не отменял (несмотря на все последние сложности с джавой в браузере).
Во-вторых, если есть возможность развернуть apache/tomcat в локалке, то guacamole — отличная вещь!
Мне кажется, что на сегодняшний день, Java в современных браузерах уже отмирает…
С TightVNC не получилось, скорее всего, из-за отсутствия галки на Allow loopback connections. С этой галкой у меня всё заработало.

По-поводу TigthtVNC - как сказал @Stkn по-умолчанию действительно loopback connections запрещены, поэтому либо поставить соответствующую галку в настройках сервера, либо просто запускать websockify.exe, используя адрес в LAN (т.е. lan_ip:5900). Плюс, у меня даже после этого постоянно возникала ошибка: "Client must support 'binary' or 'base64' protocol”". Решил следующим образом:

  1. Воспользовался рекомендациями отсюда - https://stackoverflow.com/questions/15962359/websockify-error-client-must-support-binary-or-base64-protocol и заменил в двух местах noVNC-master\core\rfb.js и noVNC-master\core\websock.js параметр this._wsProtocols и protocols на массив ['binary', 'base64'] .

  2. Выбрал порт отличный от 5091 для websockify.

После этих двух изменений, все сразу запустилось. Использовавшая версия TightVNC - tightvnc-2.8.59-gpl-setup-64bit.

Зарегистрируйтесь на Хабре, чтобы оставить комментарий

Публикации