Websockify: Problema con novnc-websockify en Windows

Creado en 17 feb. 2013  ·  26Comentarios  ·  Fuente: novnc/websockify

1- Descargo el https://github.com/downloads/kanaka/websockify/Websockify%20Windows%20Service.zip

2- descomprimo la carpeta en C: \ Websockify Windows Service

3- descargo https://github.com/downloads/kanaka/websockify/websockify.zip

y descomprima y copie su contenido en C: \ Websockify Windows Service

4- descargo novnc de https://github.com/kanaka/noVNC

5- lo descomprimo en C: \ Users \ waldman \ Downloads \ noVNC-master \ noVNC-master

6- ejecuto el comando

C: \ Websockify Servicio de Windows> websockify.exe --web "C: \ Users \ waldman \ Downloads \ noVNC-master \ noVNC-master" 6080 localhost
: 5901

el registro es:

ADVERTENCIA: no hay módulo de 'recursos', soporte de demonización deshabilitado
Configuración del servidor WebSocket:

  • Escuche en: 6080
  • Servidor de políticas de seguridad flash
  • Servidor web. Raíz web: C: \ Users \ waldman \ Downloads \ noVNC-master \ noVNC-master
  • Sin compatibilidad con SSL / TLS (sin archivo de certificado)
  • proxy desde: 6080 a localhost: 5901

En mi navegador voy a

http: // localhost : 6080 / vnc_auto.html? host = localhost & port = 6080 & true_color = 1

también probé con

http: // localhost : 6080 / vnc_auto.html? host = localhost & port = 5901 & true_color = 1

Estoy desconectando el servidor -> ¿POR QUÉ? ? ?

El servidor está bien como cuando intento usar

http://kanaka.github.com/noVNC/noVNC/vnc_auto.html?host=localhost&port=5901&true_color=1

Puedo iniciar sesión en mi servidor sin problemas

Entonces mi pregunta es ¿Qué falta para poder usar mi servicio novnc y no usar el " http://kanaka.github.com/noVNC/noVNC/vnc_auto.html "

Quiero tener mi nonvc y no usar "kanaka.github.com" externo

Gracias por la ayuda

Por cierto, ocurrió el mismo problema tanto en Windows como en Linux (prefiero la solución de Windows)

el registro es

2: 127.0.0.1: ignorando el socket no está listo
3: 127.0.0.1: ignorando el apretón de manos vacío
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: ignorando socket no listo
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: ignorando el socket no está listo
10: 127.0.0.1: ignorando el apretón de manos vacío
12: 127.0.0.1: ignorando el socket no está listo
13: 127.0.0.1: ignorando el apretón de manos vacío
14: 127.0.0.1: ignorando el apretón de manos vacío
15: 127.0.0.1: ignorando el apretón de manos vacío
16: 127.0.0.1: ignorando el apretón de manos vacío
17: 127.0.0.1: ignorando el apretón de manos vacío
18: 127.0.0.1: ignorando el apretón de manos vacío
19: 127.0.0.1: ignorando el apretón de manos vacío
20: 127.0.0.1: ignorando el apretón de manos vacío
21: 127.0.0.1: ignorando el apretón de manos vacío
22: 127.0.0.1: ignorando el apretón de manos vacío
23: 127.0.0.1: ignorando el apretón de manos vacío
24: 127.0.0.1: ignorando el apretón de manos vacío
25: 127.0.0.1: ignorando el apretón de manos vacío
26: 127.0.0.1: ignorando el apretón de manos vacío
27: 127.0.0.1: ignorando el apretón de manos vacío
28: 127.0.0.1: ignorando el apretón de manos vacío
29: 127.0.0.1: ignorando el apretón de manos vacío
30: 127.0.0.1: ignorando el apretón de manos vacío
31: 127.0.0.1: ignorando el apretón de manos vacío
33: 127.0.0.1: ignorando el socket no está listo
34: 127.0.0.1: ignorando el apretón de manos vacío
35: 127.0.0.1: ignorando el apretón de manos vacío
36: 127.0.0.1: ignorando el apretón de manos vacío

Windows bug patchwelcome

Comentario más útil

@sonicnkt : Me las arreglé para crear un exe (de la versión de Node.js) por lo que no es necesario instalar Node.js y los componentes.
Estos son los pasos (nunca usé Node.js antes, así que estoy bastante seguro de que hay una solución más corta):

  1. Instale NodeJS (la ruta de instalación global predeterminada es:% AppData% \ npm,% AppData% \ npm-cache)

  2. Instale los componentes necesarios, ejecute:

    • npm install -g express
    • npm install -g optimist
    • npm install -g archivo de políticas
    • npm install -g ws
    • npm install -g servidor http
    • npm install -g tipos-mime
    • npm install -g pkg
  3. Cree una carpeta llamada "websockify" en "% AppData% \ npm \ node_modules \" y copie el contenido de la carpeta "websockify \ other \ js" en ella.

  4. Ejecutar (documentación de argumentos -> https://www.npmjs.com/package/pkg): pkg "% AppData% \ npm \ node_modules \ websockify \ websockify.js" --targets "latest-win-x86, latest- win-x64 "--out-path" su carpeta de salida "

Todos 26 comentarios

@doriwal Noté que

No, es un tema abierto
En 2013 2 18 00:34, "Joel Martin" [email protected] escribió:

@doriwal https://github.com/doriwal Noté que cerraste el problema. Hace
eso significa que lo descubrió?

-
Responda a este correo electrónico directamente o véalo en Gi

Reabrí el problema porque no estaba resuelto

parece que mi novnc local está funcionando,
Acabo de ejecutar las pruebas como http: // localhost : 6080 / tests / base64.html

y la respuesta es

onload
PASS: 'window.btoa ("hola mundo")' devolvió el esperado 'aGVsbG8gd29ybGQ ='
PASS: 'window.btoa ("a")' devolvió el esperado 'YQ =='
PASS: 'window.btoa ("ab")' devolvió el esperado 'YWI ='
PASS: 'window.btoa ("abc")' devolvió el esperado 'YWJj'
PASS: 'window.btoa ("abcd")' devolvió el esperado 'YWJjZA =='
PASS: 'window.btoa ("abcde")' devolvió el esperado 'YWJjZGU ='
PASS: 'window.btoa ("abcdef")' devolvió el esperado 'YWJjZGVm'
PASS: 'window.btoa ("abcdefg")' devolvió el esperado 'YWJjZGVmZw =='
PASS: 'window.btoa ("abcdefgh")' devolvió el esperado 'YWJjZGVmZ2g ='
PASS: 'window.atob ("aGVsbG8gd29ybGQ =")' devolvió el esperado 'hola mundo'
PASS: 'Base64_decode ("aGVsbG8gd29ybGQ =")' devolvió el esperado 'hola mundo'
PASS: 'window.atob ("YQ ==")' devolvió el esperado 'a'
PASS: 'Base64_decode ("YQ ==")' devolvió el esperado 'a'
PASS: 'window.atob ("YWI =")' devolvió el 'ab' esperado
PASS: 'Base64_decode ("YWI =")' devolvió el 'ab' esperado
PASS: 'window.atob ("YWJj")' devolvió el 'abc' esperado
PASS: 'Base64_decode ("YWJj")' devolvió el 'abc' esperado
PASS: 'window.atob ("YWJjZA ==")' devolvió el 'abcd' esperado
PASS: 'Base64_decode ("YWJjZA ==")' devolvió el 'abcd' esperado
PASS: 'window.atob ("YWJjZGU =")' devolvió el 'abcde' esperado
PASS: 'Base64_decode ("YWJjZGU =")' devolvió el 'abcde' esperado
PASS: 'window.atob ("YWJjZGVm")' devolvió el 'abcdef' esperado
PASS: 'Base64_decode ("YWJjZGVm")' devolvió el 'abcdef' esperado
PASS: 'typeof window.btoa' devolvió la 'función' esperada
PASS: 'window.btoa ("")' devuelto esperado ''
PASS: 'window.btoa (null)' devuelto esperado ''
PASS: 'window.atob (window.btoa (window))' devolvió el esperado '[object Window]'
PASS: 'window.btoa ("\ u0080 \ u0081")' devolvió el esperado 'gIE ='
Pruebas fallidas: 0
Pruebas aprobadas: 28

Así que supongo que instalé novnc localmente,

No se porque
http: // localhost : 6080 / vnc_auto.html? host = localhost & port = 5901 & true_color = 1
o
http: // localhost : 6080 / vnc_auto.html? host = localhost & port = 6080 & true_color = 1

devolvió "noVNC listo: WebSockets nativos, renderizado de lienzo" y después de 2 segundos obtengo "Tiempo de espera de conexión"

Tenía el mismo problema con websockify.exe que venía con noVNC.

No estoy seguro de si es el mismo problema, pero cuando intenté ejecutar el archivo websocketproxy.py directamente con Python 2.7, aparece este error:

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'

Aparentemente, eso se debe a que socket.fromfd no está implementado en Python 2.x para Windows: http://bugs.python.org/issue1378.

Cuando intento ejecutar websockify con Python 3.3, aparece un mensaje de error diferente:

  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 : ¿sigues experimentando este problema?

Pude hacer que websockify se ejecutara en Windows si usaba Python 3.2. Ni 2.7 ni 3.3 parecen tener el soporte necesario para procesos de pseudo-bifurcación en Windows. No lo he probado con ninguna otra versión.

@ smithkl42 : parece que Python encurtía y luego desencadena el Proceso para hacer una bifurcación, y algo en websockify no se puede encurtir. Sin embargo, es extraño que funcione en 3.2 y no en 3.3. ¿Puede obtener un seguimiento de pila más extendido para Python 3.3? Creo que al menos vale la pena intentar solucionar el problema de Python 3.3+ si podemos.

Estoy de acuerdo en que valdría la pena arreglarlo. No soy un codificador de Python, por lo que no estoy seguro de cómo obtener un seguimiento de pila más detallado; eso es lo que aparece en mi consola cuando trato de ejecutarlo en Python 3.3. ¿Alguna sugerencia?

Vaya, no quise cerrar esto. Debe haber hecho clic en el botón incorrecto.
¡Bah! Python 3.3 acaba de salir y se niega a serializar sockets:
desde /usr/lib64/python3.3/socket.py :

    def __getstate__(self):
        raise TypeError("Cannot serialize socket object")

Mientras que Python 3.2 no especifica un método __getstate__ en absoluto. ¿Pudiste confirmar que las cosas realmente funcionaron correctamente en Python 3.2? No puedo ver que los desarrolladores de Python deshabiliten arbitrariamente el decapado de sockets en Python 3.3 a menos que haya algo mal en la forma en que funcionaban las cosas en 3.2 ...

Sí, 3.2 está funcionando bien para mí. No lo he probado bajo carga, pero bajo la carga limitada que le he lanzado, ha estado funcionando bien. Independientemente de los problemas de serialización que pueda haber, sospecho que deben ser del tipo que (por el motivo que sea) no afectan a websockify.

@kanaka : Estoy intentando ejecutar websockify en Windows 2012 R2 Standard (64 bits).
He instalado la versión Python 2.7.11.
Se instalaron versiones compatibles de 64 bits de "py2exe" y "numpy".
Pasó por todos los problemas mencionados para ejecutar novnc en Windows (especialmente # 108 y # 233)

Problema: cuando intento conectarme a través de la URL web (http: //localhost/vnc.html? Host = localhost & port = 6080), obtengo la excepción del controlador: "no se pueden seleccionar objetos thread.lock"
"Error de importación: ningún módulo denominado ejecutar" del archivo forking.py

Sugiera una resolución. Tengo la sensación de que no ha habido una experiencia de ejecución sólida y exitosa de esta herramienta en Windows. Avíseme si no está diseñado para ejecutarse en Windows. ¿O me estoy perdiendo algo de mi lado? Aprecio tu respuesta

image

@ kabilraj1979 websockify no funciona en Windows usando python 2.X. Ha habido cierto éxito con Python 3.X. Sin embargo, la versión node.js de websockify aparentemente (no tengo un sistema Windows para probar) funciona bastante bien en Windows, así que le sugiero que use la versión node.js si es una opción para usted.

@kanaka : Gracias por la respuesta. El websockify.js me permitió conectarme. Gracias. Necesita explorar qué código hay en el contenido web. ¿El archivo js estaba más o menos enviando y recibiendo parte de la conexión del socket web (una especie de proxy inverso)?

¿Hay alguna manera de construir la versión de nodejs en una versión simple de script / exe que sea fácil de implementar?
Vi el script de Powershell aquí: https://github.com/aberbegall/novnc-launch-powershell/blob/master/README.md
Pero tiene muchas dependencias (instalar nodejs completos, luego descargar paquetes adicionales, etc.), por lo que no hay forma de implementar esto fácilmente en varios clientes.
Mi objetivo era crear una solución remota gratuita, abierta e independiente que no dependa de servidores adicionales.

@kanaka : Cada vez que tengo que usar un proxy para un servidor VNC, necesito tener diferentes instancias de websockify.js. ¿Hay alguna forma de ejecutarlo como oyente que pueda permitir múltiples conexiones sobre la marcha? WebSocketConnections se puede abrir desde una instancia de websockify.js sobre la marcha, ¿verdad?

@ kabilraj1979 varios clientes pueden conectarse a la misma instancia de websockify.js al mismo tiempo. Sin embargo, debe tener una instancia de websockify.js por destino al que desee conectarse. La versión python de websockify admite complementos de destino que permiten que el destino sea seleccionado por un token opaco proporcionado por el cliente. Sin embargo, esta funcionalidad aún no se ha trasladado a websockify.js.

Probé lo SIGCHLD, pero como habrás notado, quedan muchos problemas con multiprocessing . Por ahora, he puesto un bloque activo en el código para que se niegue a iniciarse en Windows. Debería hacer que nuestro manejo de los problemas sea un poco más suave al menos.

@sonicnkt : Me las arreglé para crear un exe (de la versión de Node.js) por lo que no es necesario instalar Node.js y los componentes.
Estos son los pasos (nunca usé Node.js antes, así que estoy bastante seguro de que hay una solución más corta):

  1. Instale NodeJS (la ruta de instalación global predeterminada es:% AppData% \ npm,% AppData% \ npm-cache)

  2. Instale los componentes necesarios, ejecute:

    • npm install -g express
    • npm install -g optimist
    • npm install -g archivo de políticas
    • npm install -g ws
    • npm install -g servidor http
    • npm install -g tipos-mime
    • npm install -g pkg
  3. Cree una carpeta llamada "websockify" en "% AppData% \ npm \ node_modules \" y copie el contenido de la carpeta "websockify \ other \ js" en ella.

  4. Ejecutar (documentación de argumentos -> https://www.npmjs.com/package/pkg): pkg "% AppData% \ npm \ node_modules \ websockify \ websockify.js" --targets "latest-win-x86, latest- win-x64 "--out-path" su carpeta de salida "

Eso también funciona bien para mí. Probado en Windows 10 y con el servidor Windows noVNC + TigerVNC.

@ gdan101 ¿Podría decirme qué versión de nodo tenía cuando hizo que esto se ejecutara? Tengo un problema con nodejs 10.1.0 y websockify: https://github.com/novnc/websockify/issues/307#issuecomment -391125660

@mliudev ¡Tenía node-v6.11.4 en una máquina con Windows 7 x64!

@kanaka @CendioOssman ¿NOVNC admite la conexión VNC inversa de la forma en que lo admite tightvnc?
Referencia: https://kempniu.wordpress.com/2009/03/21/reverse-connections-in-tightvnc/

¿Cómo podemos abrir el visor novnc en modo de escucha si la respuesta es sí a la pregunta anterior?

Estamos usando novnc para capturar dispositivos dentro de la red, sin embargo, queremos usar la misma aplicación web para capturar (vnc) dispositivos fuera de la red a través de Internet. Esto se debe a que el servidor web no puede acceder a dispositivos con IP privada detrás del enrutador. Nos gustaría utilizar la función vnc inversa que debería permitir que los dispositivos con IP privada compartan la pantalla con el cliente novnc en el servidor web

@SiddharthJyoti Por favor, deje de enviar spam a la misma pregunta en varios lugares

@samhed Se agradecerá su pronta respuesta a la pregunta.

noVNC no admite conexiones inversas como la descrita en ese blog.

¿Fue útil esta página
0 / 5 - 0 calificaciones