1- Я загружаю https://github.com/downloads/kanaka/websockify/Websockify%20Windows%20Service.zip
2- я распаковываю папку в C: \ Websockify Windows Service
3- я загружаю https://github.com/downloads/kanaka/websockify/websockify.zip
разархивируйте и скопируйте его содержимое в C: \ Websockify Windows Service
4- я загружаю novnc с https://github.com/kanaka/noVNC
5- я распаковываю его в C: \ Users \ waldman \ Downloads \ noVNC-master \ noVNC-master
6- я запускаю команду
C: \ Websockify Windows Service> websockify.exe --web "C: \ Users \ waldman \ Downloads \ noVNC-master \ noVNC-master" 6080 localhost
: 5901
журнал:
ВНИМАНИЕ: нет модуля ресурсов, поддержка демонизации отключена
Настройки сервера WebSocket:
В моем браузере я собираюсь
http: // локальный: 6080 / vnc_auto.html? host = localhost & port = 6080 & true_color = 1
также пробовал с
http: // локальный: 6080 / vnc_auto.html? host = localhost & port = 5901 & true_color = 1
У меня отключается сервер -> ПОЧЕМУ? ? ?
Сервер в порядке, когда я пытаюсь использовать
http://kanaka.github.com/noVNC/noVNC/vnc_auto.html?host=localhost&port=5901&true_color=1
Я могу войти на свой сервер без проблем
Итак, мой вопрос: чего не хватает для того, чтобы я мог использовать свою службу novnc, а не использовать " http://kanaka.github.com/noVNC/noVNC/vnc_auto.html "
Я хочу иметь свой nonvc и не использовать внешний "kanaka.github.com"
Спасибо за помощь
Кстати, такая же проблема возникла как в Windows, так и в Linux (я предпочитаю решение для Windows)
журнал
2: 127.0.0.1: игнорирование сокета не готово
3: 127.0.0.1: игнорирование пустого рукопожатия
4: 127.0.0.1: "GET /auto.vnc.html?host=localhost&port=6080&true_color=1 HTTP / 1.1" 404 -
5: 127.0.0.1: игнорирование сокета не готово
6: 127.0.0.1: "GET /auto-vnc.html?host=localhost&port=6080&true_color=1 HTTP / 1.1" 404 -
9: 127.0.0.1: игнорирование сокета не готово
10: 127.0.0.1: игнорирование пустого рукопожатия
12: 127.0.0.1: игнорирование сокета не готово
13: 127.0.0.1: игнорирование пустого рукопожатия
14: 127.0.0.1: игнорирование пустого рукопожатия
15: 127.0.0.1: игнорирование пустого рукопожатия
16: 127.0.0.1: игнорирование пустого рукопожатия
17: 127.0.0.1: игнорирование пустого рукопожатия
18: 127.0.0.1: игнорирование пустого рукопожатия
19: 127.0.0.1: игнорирование пустого рукопожатия
20: 127.0.0.1: игнорирование пустого рукопожатия
21: 127.0.0.1: игнорирование пустого рукопожатия
22: 127.0.0.1: игнорирование пустого рукопожатия
23: 127.0.0.1: игнорирование пустого рукопожатия
24: 127.0.0.1: игнорирование пустого рукопожатия
25: 127.0.0.1: игнорирование пустого рукопожатия
26: 127.0.0.1: игнорирование пустого рукопожатия
27: 127.0.0.1: игнорирование пустого рукопожатия
28: 127.0.0.1: игнорирование пустого рукопожатия
29: 127.0.0.1: игнорирование пустого рукопожатия
30: 127.0.0.1: игнорирование пустого рукопожатия
31: 127.0.0.1: игнорирование пустого рукопожатия
33: 127.0.0.1: игнорирование сокета не готово
34: 127.0.0.1: игнорирование пустого рукопожатия
35: 127.0.0.1: игнорирование пустого рукопожатия
36: 127.0.0.1: игнорирование пустого рукопожатия
@doriwal Я заметил, что вы закрыли вопрос. Значит ли это, что вы все поняли?
Нет, это открытый вопрос
2 18 00:34 2013 г. «Джоэл Мартин» [email protected] написал:
@doriwal https://github.com/doriwal Я заметил, что вы закрыли вопрос. Делает
это значит, что ты понял это?-
Ответьте на это письмо напрямую или просмотрите его на Gi tHubhttps: //github.com/kanaka/websockify/issues/67#issuecomment -13698686.
Я повторно открыл проблему, так как она не была решена
похоже, что мой местный novnc работает,
Я просто запускаю тесты вроде http: // localhost : 6080 / tests / base64.html
и ответ
в процессе
PASS: 'window.btoa ("hello world")' вернул ожидаемый 'aGVsbG8gd29ybGQ ='
PASS: 'window.btoa ("a")' вернул ожидаемый 'YQ =='
PASS: 'window.btoa ("ab")' вернул ожидаемый 'YWI ='
PASS: 'window.btoa ("abc")' вернул ожидаемый 'YWJj'
ПРОЙДЕН: 'window.btoa ("abcd")' вернул ожидаемый 'YWJjZA =='
PASS: 'window.btoa ("abcde")' вернул ожидаемый 'YWJjZGU ='
PASS: 'window.btoa ("abcdef")' вернул ожидаемый 'YWJjZGVm'
PASS: 'window.btoa ("abcdefg")' вернул ожидаемый 'YWJjZGVmZw =='
PASS: 'window.btoa ("abcdefgh")' вернул ожидаемый 'YWJjZGVmZ2g ='
PASS: 'window.atob ("aGVsbG8gd29ybGQ =")' вернул ожидаемый 'hello world'
PASS: 'Base64_decode ("aGVsbG8gd29ybGQ =")' вернул ожидаемый 'hello world'
PASS: 'window.atob ("YQ ==")' вернул ожидаемый 'a'
PASS: 'Base64_decode ("YQ ==")' вернул ожидаемый 'a'
PASS: 'window.atob ("YWI =")' вернул ожидаемый 'ab'
PASS: 'Base64_decode ("YWI =")' вернул ожидаемый 'ab'
PASS: 'window.atob ("YWJj")' вернул ожидаемый 'abc'
PASS: 'Base64_decode ("YWJj")' вернул ожидаемый 'abc'
PASS: 'window.atob ("YWJjZA ==")' вернул ожидаемый 'abcd'
PASS: 'Base64_decode ("YWJjZA ==")' вернул ожидаемый 'abcd'
PASS: 'window.atob ("YWJjZGU =")' вернул ожидаемый 'abcde'
PASS: 'Base64_decode ("YWJjZGU =")' вернул ожидаемый 'abcde'
PASS: 'window.atob ("YWJjZGVm")' вернул ожидаемый 'abcdef'
PASS: 'Base64_decode ("YWJjZGVm")' вернул ожидаемый 'abcdef'
ПРОЙДЕН: 'typeof window.btoa' вернул ожидаемую 'функцию'
PASS: 'window.btoa ("")' вернулся ожидаемый ''
ПРОЙДЕН: 'window.btoa (null)' вернулся ожидаемый ''
PASS: 'window.atob (window.btoa (window))' вернул ожидаемый '[объект Window]'
ПРОЙДЕН: 'window.btoa ("\ u0080 \ u0081")' вернул ожидаемый 'gIE ='
Неудачные тесты: 0
Пройдено тестов: 28
Думаю, я установил novnc локально,
Я не знаю почему
http: // локальный: 6080 / vnc_auto.html? host = localhost & port = 5901 & true_color = 1
или
http: // локальный: 6080 / vnc_auto.html? host = localhost & port = 6080 & true_color = 1
вернул «noVNC ready: native WebSockets, рендеринг холста», и через 2 секунды я получил «время ожидания подключения»
У меня была такая же проблема с websockify.exe, которая поставляется с noVNC.
Я не уверен, что это та же проблема, но когда я попытался запустить файл websocketproxy.py напрямую с Python 2.7, я получил эту ошибку:
WARNING: no 'resource' module, daemonizing is slower or disabled
Traceback (most recent call last):
File "<string>", line 1, in <module>
File "C:\Python27\lib\multiprocessing\forking.py", line 374, in main
self = load(from_parent)
File "C:\Python27\lib\pickle.py", line 1378, in load
return Unpickler(file).load()
File "C:\Python27\lib\pickle.py", line 858, in load
dispatch[key](self)
File "C:\Python27\lib\pickle.py", line 1133, in load_reduce
value = func(*args)
File "C:\Python27\lib\multiprocessing\reduction.py", line 193, in rebuild_socket
_sock = fromfd(fd, family, type_, proto)
File "C:\Python27\lib\multiprocessing\reduction.py", line 182, in fromfd
s = socket.fromfd(fd, family, type_, proto)
AttributeError: 'module' object has no attribute 'fromfd'
По-видимому, это потому, что socket.fromfd
не реализовано в Python 2.x для Windows: http://bugs.python.org/issue1378.
Когда я пытаюсь запустить websockify с Python 3.3, я получаю другое сообщение об ошибке:
1: handler exception: Cannot serialize socket object
WARNING: no 'resource' module, daemonizing is slower or disabled
Traceback (most recent call last):
File "<string>", line 1, in <module>
File "C:\Python33\lib\multiprocessing\forking.py", line 344, in main
self = load(from_parent)
EOFError
@doriwal , @ smithkl42 : у вас все еще
Я смог запустить websockify в Windows, если бы использовал Python 3.2. Ни 2.7, ни 3.3, похоже, не имеют необходимой поддержки процессов псевдоразветвления в Windows. С другими версиями не пробовал.
@ smithkl42 : похоже, что Python обрабатывает, а затем распаковывает процесс, чтобы выполнить форк, а что-то в websockify нельзя мариновать. Однако странно, что он работает на 3.2, а не на 3.3. Можете ли вы получить более расширенную трассировку стека для Python 3.3? Я думаю, что по крайней мере стоит попытаться исправить проблему для Python 3.3+, если мы сможем.
Я согласен, что это стоит исправить. Я не программист на Python, поэтому не знаю, как получить более подробную трассировку стека - это как раз то, что появляется на моей консоли, когда я пытаюсь запустить ее под Python 3.3. Какие-либо предложения?
Упс, не хотел закрывать это. Должно быть, нажал не ту кнопку.
Ба! Python 3.3 просто отказывается сериализовать сокеты:
от /usr/lib64/python3.3/socket.py
:
def __getstate__(self):
raise TypeError("Cannot serialize socket object")
В то время как Python 3.2 вообще не определяет метод __getstate__
. Удалось ли вам подтвердить, что на Python 3.2 все работает правильно? Я не вижу, чтобы разработчики Python произвольно отключали травление сокетов в Python 3.3, если на самом деле что-то не так с тем, как все работает в 3.2 ...
Ага, у меня 3.2 работает нормально. Я не тестировал его под нагрузкой, но при ограниченной нагрузке, которую я на него возложил, он работал нормально. Какие бы проблемы с сериализацией ни возникали, я подозреваю, что они должны быть такого рода (по какой-либо причине) не затрагивающие websockify.
@kanaka : Я пытаюсь запустить websockify в Windows 2012 R2 Standard (64 бит).
Я установил версию Python 2.7.11.
Установлены совместимые 64-битные версии "py2exe" и "numpy".
Решены все проблемы, упомянутые для запуска novnc в Windows (особенно # 108 и # 233)
Проблема: когда я пытаюсь подключиться через веб-адрес (http: //localhost/vnc.html? Host = localhost & port = 6080), я получаю исключение обработчика: «не удается обработать объекты thread.lock»
«Ошибка импорта: нет модуля с именем run» из файла forking.py
Пожалуйста, предложите решение. У меня такое ощущение, что не было надежного успешного опыта использования этого инструмента в Windows. Сообщите мне, если он не предназначен для работы в Windows. Или мне что-то не хватает с моей стороны? Оцените ваш ответ
@ kabilraj1979 websockify не работает в Windows с использованием python 2.X. Был достигнут некоторый успех с использованием python 3.X. Однако версия websockify для node.js, по-видимому (у меня нет системы Windows для тестирования) работает довольно хорошо в Windows, поэтому я предлагаю вам использовать версию node.js, если это вариант для вас.
@kanaka : Спасибо за ответ. Websockify.js позволил мне подключиться. Благодарю. Необходимо изучить, какой код содержится в веб-контенте. Файл js более или менее выполнял отправку и получение части соединения веб-сокета (своего рода обратный прокси)?
Есть ли способ собрать версию nodejs в простой версии script / exe, которую легко развернуть?
Я видел скрипт Powershell здесь: https://github.com/aberbegall/novnc-launch-powershell/blob/master/README.md
Но у него много зависимостей (установка полных nodejs, затем загрузка дополнительных пакетов и т. Д.), Поэтому нет способа легко развернуть его для меня на нескольких клиентах.
Моей целью было собрать бесплатное, открытое и независимое удаленное решение, которое не будет полагаться на какие-либо дополнительные серверы.
@kanaka : Каждый раз, когда мне нужно проксировать сервер VNC, мне нужны разные экземпляры websockify.js. Есть ли способ запустить его в качестве слушателя, который может разрешить несколько подключений на лету? WebSocketConnections можно открыть из одного экземпляра websockify.js на лету, верно?
@ kabilraj1979 несколько клиентов могут одновременно подключаться к одному экземпляру websockify.js. Однако у вас должен быть один экземпляр websockify.js для каждой цели, к которой вы хотите подключиться. Версия websockify для python поддерживает целевые плагины, которые позволяют выбирать цель с помощью непрозрачного токена, предоставленного клиентом. Однако эта функция еще не перенесена на websockify.js.
Я тестировал SIGCHLD, но, как вы заметили, остается много проблем с multiprocessing
. На данный момент я добавил активный блок в код, чтобы он не запускался в Windows. По крайней мере, должно сделать нашу работу с проблемами более гладкой.
@sonicnkt : мне удалось создать exe (из версии Node.js), поэтому вам не нужно устанавливать Node.js и компоненты.
Вот шаги (я никогда раньше не использовал Node.js, поэтому уверен, что есть более короткое решение):
Установите NodeJS (глобальный путь установки по умолчанию:% AppData% \ npm,% AppData% \ npm-cache)
Устанавливаем необходимые компоненты, запускаем:
Создайте папку с именем «websockify» в «% AppData% \ npm \ node_modules \» и скопируйте в нее содержимое папки «websockify \ other \ js».
Запустите (документация аргументов -> https://www.npmjs.com/package/pkg): pkg "% AppData% \ npm \ node_modules \ websockify \ websockify.js" --targets "latest-win-x86, latest- win-x64 "--out-path" ваша выходная папка "
Мне это тоже подходит. Протестировано в Windows 10 и на сервере Windows noVNC + TigerVNC.
@ gdan101 Не могли бы вы сказать мне, какая версия узла у вас была на момент запуска? У меня проблема с nodejs 10.1.0 и websockify: https://github.com/novnc/websockify/issues/307#issuecomment -391125660
@mliudev У меня был node-v6.11.4 на машине с Windows 7 x64!
@kanaka @CendioOssman Поддерживает ли NOVNC обратное соединение VNC так же, как это поддерживается tightvnc.
Ссылка: https://kempniu.wordpress.com/2009/03/21/reverse-connections-in-tightvnc/
Как мы можем открыть программу просмотра novnc в режиме прослушивания, если на вышеуказанный вопрос ответ положительный.
Мы используем novnc для захвата устройств внутри сети, однако мы хотим использовать то же веб-приложение для захвата (vnc) устройств вне сети через Интернет. Это связано с тем, что веб-сервер не может подключиться к устройствам с частным IP-адресом за маршрутизатором. Мы хотели бы использовать функцию обратного vnc, которая должна позволять устройствам с частным IP-адресом делиться экраном с клиентом novnc на веб-сервере.
@SiddharthJyoti Пожалуйста, перестаньте
@samhed Мы будем благодарны за быстрый ответ на вопрос.
noVNC не поддерживает обратные соединения, подобные описанному в этом блоге.
Самый полезный комментарий
@sonicnkt : мне удалось создать exe (из версии Node.js), поэтому вам не нужно устанавливать Node.js и компоненты.
Вот шаги (я никогда раньше не использовал Node.js, поэтому уверен, что есть более короткое решение):
Установите NodeJS (глобальный путь установки по умолчанию:% AppData% \ npm,% AppData% \ npm-cache)
Устанавливаем необходимые компоненты, запускаем:
Создайте папку с именем «websockify» в «% AppData% \ npm \ node_modules \» и скопируйте в нее содержимое папки «websockify \ other \ js».
Запустите (документация аргументов -> https://www.npmjs.com/package/pkg): pkg "% AppData% \ npm \ node_modules \ websockify \ websockify.js" --targets "latest-win-x86, latest- win-x64 "--out-path" ваша выходная папка "