Websockify: Проблема с novnc-websockify в Windows

Созданный на 17 февр. 2013  ·  26Комментарии  ·  Источник: novnc/websockify

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:

  • Слушайте: 6080
  • Сервер политики безопасности Flash
  • Веб сервер. Корневой каталог: C: \ Users \ waldman \ Downloads \ noVNC-master \ noVNC-master
  • Нет поддержки SSL / TLS (нет файла сертификата)
  • проксирование с: 6080 на localhost: 5901

В моем браузере я собираюсь

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: игнорирование пустого рукопожатия

Windows bug patchwelcome

Самый полезный комментарий

@sonicnkt : мне удалось создать exe (из версии Node.js), поэтому вам не нужно устанавливать Node.js и компоненты.
Вот шаги (я никогда раньше не использовал Node.js, поэтому уверен, что есть более короткое решение):

  1. Установите NodeJS (глобальный путь установки по умолчанию:% AppData% \ npm,% AppData% \ npm-cache)

  2. Устанавливаем необходимые компоненты, запускаем:

    • npm install -g express
    • npm install -g optimist
    • npm install -g файл политики
    • npm install -g ws
    • npm install -g http-сервер
    • npm install -g mime-types
    • npm install -g pkg
  3. Создайте папку с именем «websockify» в «% AppData% \ npm \ node_modules \» и скопируйте в нее содержимое папки «websockify \ other \ js».

  4. Запустите (документация аргументов -> https://www.npmjs.com/package/pkg): pkg "% AppData% \ npm \ node_modules \ websockify \ websockify.js" --targets "latest-win-x86, latest- win-x64 "--out-path" ваша выходная папка "

Все 26 Комментарий

@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. Или мне что-то не хватает с моей стороны? Оцените ваш ответ

image

@ 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, поэтому уверен, что есть более короткое решение):

  1. Установите NodeJS (глобальный путь установки по умолчанию:% AppData% \ npm,% AppData% \ npm-cache)

  2. Устанавливаем необходимые компоненты, запускаем:

    • npm install -g express
    • npm install -g optimist
    • npm install -g файл политики
    • npm install -g ws
    • npm install -g http-сервер
    • npm install -g mime-types
    • npm install -g pkg
  3. Создайте папку с именем «websockify» в «% AppData% \ npm \ node_modules \» и скопируйте в нее содержимое папки «websockify \ other \ js».

  4. Запустите (документация аргументов -> 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 не поддерживает обратные соединения, подобные описанному в этом блоге.

Была ли эта страница полезной?
0 / 5 - 0 рейтинги