Websockify: Problème avec novnc-websockify sous Windows

Créé le 17 févr. 2013  ·  26Commentaires  ·  Source: novnc/websockify

1- Je télécharge le https://github.com/downloads/kanaka/websockify/Websockify%20Windows%20Service.zip

2- Je décompresse le dossier sous C: \ Websockify Windows Service

3- Je télécharge https://github.com/downloads/kanaka/websockify/websockify.zip

et décompressez et copiez son contenu dans C: \ Websockify Windows Service

4- Je télécharge novnc depuis https://github.com/kanaka/noVNC

5- Je le décompresse dans C: \ Users \ waldman \ Downloads \ noVNC-master \ noVNC-master

6- J'exécute la commande

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

le journal est:

ATTENTION: pas de module 'resource', prise en charge de la démonisation désactivée
Paramètres du serveur WebSocket:

  • Écoutez sur: 6080
  • Serveur de stratégie de sécurité Flash
  • Serveur Web. Racine Web: C: \ Users \ waldman \ Downloads \ noVNC-master \ noVNC-master
  • Pas de support SSL / TLS (pas de fichier cert)
  • proxy de: 6080 à localhost: 5901

Dans mon navigateur, je vais

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

aussi essayé avec

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

Le serveur est déconnecté -> POURQUOI? ? ?

Le serveur va bien comme quand j'essaye d'utiliser

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

Je peux me connecter à mon serveur sans problème

Ma question est donc ce qui manque pour que je puisse utiliser mon service novnc et ne pas utiliser le " http://kanaka.github.com/noVNC/noVNC/vnc_auto.html "

Je veux avoir mon nonvc et ne pas utiliser "kanaka.github.com" externe

Merci pour l'aide

BTW même problème survenu à la fois sous Windows et Linux (je préfère la solution Windows)

le journal est

2: 127.0.0.1: ignorer le socket n'est pas prêt
3: 127.0.0.1: ignorant la poignée de main vide
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: ignorer le socket pas prêt
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: ignorer le socket n'est pas prêt
10: 127.0.0.1: ignorant la poignée de main vide
12: 127.0.0.1: ignorer le socket n'est pas prêt
13: 127.0.0.1: ignorant la poignée de main vide
14: 127.0.0.1: ignorant la poignée de main vide
15: 127.0.0.1: ignorant la poignée de main vide
16: 127.0.0.1: ignorant la poignée de main vide
17: 127.0.0.1: ignorant la poignée de main vide
18: 127.0.0.1: ignorant la poignée de main vide
19: 127.0.0.1: ignorant la poignée de main vide
20: 127.0.0.1: ignorant la poignée de main vide
21: 127.0.0.1: ignorant la poignée de main vide
22: 127.0.0.1: ignorant la poignée de main vide
23: 127.0.0.1: ignorant la poignée de main vide
24: 127.0.0.1: ignorant la poignée de main vide
25: 127.0.0.1: ignorant la poignée de main vide
26: 127.0.0.1: ignorant la poignée de main vide
27: 127.0.0.1: ignorant la poignée de main vide
28: 127.0.0.1: ignorant la poignée de main vide
29: 127.0.0.1: ignorant la poignée de main vide
30: 127.0.0.1: ignorant la poignée de main vide
31: 127.0.0.1: ignorant la poignée de main vide
33: 127.0.0.1: ignorer le socket n'est pas prêt
34: 127.0.0.1: ignorant la poignée de main vide
35: 127.0.0.1: ignorant la poignée de main vide
36: 127.0.0.1: ignorant la poignée de main vide

Windows bug patchwelcome

Commentaire le plus utile

@sonicnkt : J'ai réussi à créer un exe (à partir de la version Node.js) donc vous n'avez pas besoin d'installer Node.js et les composants.
Voici les étapes (je n'ai jamais utilisé Node.js auparavant, donc je suis presque sûr qu'il existe une solution plus courte):

  1. Installez NodeJS (le chemin d'installation global par défaut est:% AppData% \ npm,% AppData% \ npm-cache)

  2. Installez les composants requis, exécutez:

    • npm install -g express
    • npm install -g optimist
    • npm install -g policyfile
    • npm installer -g ws
    • npm install -g serveur http
    • npm install -g types-mime
    • npm installer -g pkg
  3. Créez un dossier nommé "websockify" sous "% AppData% \ npm \ node_modules \" et copiez-y le contenu du dossier "websockify \ other \ js".

  4. Exécuter (documentation des arguments -> https://www.npmjs.com/package/pkg): pkg "% AppData% \ npm \ node_modules \ websockify \ websockify.js" --targets "latest-win-x86, latest- win-x64 "--out-path" votre dossier de sortie "

Tous les 26 commentaires

@doriwal Je remarque que vous avez

Non, c'est un problème ouvert
Le 2013 2 18 00:34, "Joel Martin" [email protected] a écrit:

@doriwal https://github.com/doriwal Je remarque que vous avez résolu le problème. Est-ce que
cela signifie que vous l'avez compris?

-
Répondez directement à cet e-mail ou consultez-le sur Gi tHubhttps: //github.com/kanaka/websockify/issues/67#issuecomment -13698686.

J'ai rouvert le problème car il n'était pas résolu

on dirait que mon novnc local fonctionne,
Je viens d'exécuter les tests comme http: // localhost : 6080 / tests / base64.html

et la réponse est

en charge
PASS: 'window.btoa ("hello world")' a renvoyé attendu 'aGVsbG8gd29ybGQ ='
PASS: 'window.btoa ("a")' a renvoyé attendu 'YQ =='
PASS: 'window.btoa ("ab")' a renvoyé attendu 'YWI ='
PASS: 'window.btoa ("abc")' a renvoyé "YWJj" attendu
PASS: 'window.btoa ("abcd")' a renvoyé attendu 'YWJjZA =='
PASS: 'window.btoa ("abcde")' a renvoyé attendu 'YWJjZGU ='
PASS: 'window.btoa ("abcdef")' a renvoyé "YWJjZGVm" attendu
PASS: 'window.btoa ("abcdefg")' a renvoyé attendu 'YWJjZGVmZw =='
PASS: 'window.btoa ("abcdefgh")' a renvoyé attendu 'YWJjZGVmZ2g ='
PASS: 'window.atob ("aGVsbG8gd29ybGQ =")' a renvoyé le 'bonjour le monde' attendu
PASS: 'Base64_decode ("aGVsbG8gd29ybGQ =")' a renvoyé le 'bonjour le monde' attendu
PASS: 'window.atob ("YQ ==")' a renvoyé attendu 'a'
PASS: 'Base64_decode ("YQ ==")' a renvoyé le 'a' attendu
PASS: 'window.atob ("YWI =")' a renvoyé le 'ab' attendu
PASS: 'Base64_decode ("YWI =")' a renvoyé le 'ab' attendu
PASS: 'window.atob ("YWJj")' a renvoyé "abc" attendu
PASS: 'Base64_decode ("YWJj")' a renvoyé le 'abc' attendu
PASS: 'window.atob ("YWJjZA ==")' a renvoyé 'abcd' attendu
PASS: 'Base64_decode ("YWJjZA ==")' a renvoyé le 'abcd' attendu
PASS: 'window.atob ("YWJjZGU =")' a renvoyé 'abcde' attendu
PASS: 'Base64_decode ("YWJjZGU =")' a renvoyé 'abcde' attendu
PASS: 'window.atob ("YWJjZGVm")' a renvoyé 'abcdef' attendu
PASS: 'Base64_decode ("YWJjZGVm")' a renvoyé le 'abcdef' attendu
PASS: 'typeof window.btoa' a renvoyé la 'fonction' attendue
PASS: 'window.btoa ("")' a renvoyé attendu ''
PASS: 'window.btoa (null)' a renvoyé attendu ''
PASS: 'window.atob (window.btoa (window))' a renvoyé attendu '[object Window]'
PASS: 'window.btoa ("\ u0080 \ u0081")' a renvoyé le 'gIE =' attendu
Échec des tests: 0
Tests réussis: 28

Donc je suppose que j'ai installé novnc localement,

Je ne sais pas pourquoi
http: // localhost : 6080 / vnc_auto.html? host = localhost & port = 5901 & true_color = 1
ou
http: // localhost : 6080 / vnc_auto.html? host = localhost & port = 6080 & true_color = 1

renvoyé "noVNC prêt: WebSockets natifs, rendu de la toile" et après 2 secondes, j'obtiens "Délai de connexion"

J'avais le même problème avec le websockify.exe fourni avec noVNC.

Je ne sais pas si c'est le même problème, mais lorsque j'ai essayé d'exécuter le fichier websocketproxy.py directement avec Python 2.7, j'obtiens cette erreur:

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'

Apparemment, c'est parce que socket.fromfd n'est pas implémenté sur Python 2.x pour Windows: http://bugs.python.org/issue1378.

Lorsque j'essaye d'exécuter websockify avec Python 3.3, j'obtiens un message d'erreur différent:

  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 : rencontrez-vous toujours ce problème?

J'ai pu faire fonctionner websockify sur Windows si j'utilisais Python 3.2. Ni 2.7 ni 3.3 ne semblent avoir le support nécessaire pour les processus de pseudo-forking sous Windows. Je ne l'ai essayé avec aucune autre version.

@ smithkl42 : il semblerait que Python pickle puis décoche le Processus afin de faire un fork, et quelque chose dans websockify ne peut pas être picklable. C'est étrange, cependant, que cela fonctionne sur 3.2 et non 3.3. Pouvez-vous obtenir une trace de pile plus étendue pour Python 3.3? Je pense que cela vaut au moins la peine d'essayer de résoudre le problème de Python 3.3+ si nous le pouvons.

Je suis d'accord que cela vaudrait la peine d'être réparé. Je ne suis pas un codeur Python, donc je ne sais pas comment obtenir une trace de pile plus détaillée - c'est exactement ce qui apparaît sur ma console lorsque j'essaye de l'exécuter sous Python 3.3. Aucune suggestion?

Oups, je ne voulais pas fermer ça. Doit avoir cliqué sur le mauvais bouton.
Bah! Python 3.3 refuse tout simplement de sérialiser les sockets:
à partir de /usr/lib64/python3.3/socket.py :

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

Alors que Python 3.2 ne spécifie pas du tout une méthode __getstate__ . Avez-vous pu confirmer que les choses fonctionnaient correctement sous Python 3.2? Je ne peux pas voir les développeurs Python désactivant arbitrairement le décapage des sockets dans Python 3.3 à moins qu'il y ait en fait quelque chose qui ne va pas dans la façon dont les choses fonctionnaient dans 3.2 ...

Ouais, 3.2 fonctionne bien pour moi. Je ne l'ai pas testé sous charge, mais sous la charge limitée que je lui ai lancée, cela fonctionne très bien. Quels que soient les problèmes de sérialisation, je soupçonne qu'ils doivent être du type qui (pour une raison quelconque) n'affecte pas websockify.

@kanaka :
J'ai installé la version Python 2.7.11.
Installer des versions 64 bits compatibles de «py2exe» et «numpy».
J'ai parcouru tous les problèmes mentionnés pour exécuter novnc sous Windows (en particulier # 108 et # 233)

Problème: lorsque j'essaie de me connecter via l'URL Web (http: //localhost/vnc.html? Host = localhost & port = 6080), j'obtiens une exception de gestionnaire: "impossible de sélectionner les objets thread.lock"
"Erreur d'importation: aucun module nommé run" dans le fichier forking.py

Veuillez suggérer une résolution. J'ai le sentiment qu'il n'y a pas eu d'expérience de fonctionnement solide et réussie de cet outil sous Windows. Veuillez me faire savoir s'il n'est pas destiné à fonctionner sous Windows. Ou est-ce que je rate quelque chose de mon côté? Appréciez votre réponse

image

@ kabilraj1979 websockify ne fonctionne pas sous Windows en utilisant python 2.X. Il y a eu un certain succès en utilisant python 3.X. Cependant, la version node.js de websockify apparemment (je n'ai pas de système Windows avec lequel tester) fonctionne plutôt bien sur Windows donc je vous suggère d'utiliser la version node.js si c'est une option pour vous.

@kanaka : Merci pour la réponse. Le websockify.js m'a permis de me connecter. Merci. Besoin d'explorer quel code est présent dans le contenu Web. Le fichier js faisait plus ou moins la partie d'envoi et de réception de la connexion de socket Web (sorte de proxy inverse)?

Existe-t-il un moyen de créer la version nodejs dans une version simple de script / exe facile à déployer?
J'ai vu le script Powershell ici: https://github.com/aberbegall/novnc-launch-powershell/blob/master/README.md
Mais il a beaucoup de dépendances (installation de nodejs complet, puis téléchargement de packages supplémentaires, etc.), il n'y a donc aucun moyen de le déployer facilement pour moi sur plusieurs clients.
Mon objectif était de mettre en place une solution à distance gratuite, ouverte et indépendante qui ne reposera sur aucun serveur supplémentaire.

@kanaka : Chaque fois que je dois utiliser un proxy vers un serveur VNC, j'ai besoin de différentes instances de websockify.js. Existe-t-il un moyen de l'exécuter en tant qu'auditeur qui peut autoriser plusieurs connexions à la volée? WebSocketConnections peut être ouvert à partir d'une instance de websockify.js à la volée, n'est-ce pas?

@ kabilraj1979 plusieurs clients peuvent se connecter à la même instance de websockify.js en même temps. Cependant, vous devez disposer d'une instance de websockify.js par cible à laquelle vous souhaitez vous connecter. La version python de websockify prend en charge les plugins cibles qui permettent à la cible d'être sélectionnée par un jeton opaque fourni par le client. Cependant, cette fonctionnalité n'a pas encore été portée sur le websockify.js.

J'ai testé le truc SIGCHLD, mais comme vous l'avez remarqué, il reste beaucoup de problèmes avec multiprocessing . Pour l'instant, j'ai mis un bloc actif dans le code afin qu'il refuse de démarrer sous Windows. Cela devrait au moins rendre notre gestion des problèmes un peu plus fluide.

@sonicnkt : J'ai réussi à créer un exe (à partir de la version Node.js) donc vous n'avez pas besoin d'installer Node.js et les composants.
Voici les étapes (je n'ai jamais utilisé Node.js auparavant, donc je suis presque sûr qu'il existe une solution plus courte):

  1. Installez NodeJS (le chemin d'installation global par défaut est:% AppData% \ npm,% AppData% \ npm-cache)

  2. Installez les composants requis, exécutez:

    • npm install -g express
    • npm install -g optimist
    • npm install -g policyfile
    • npm installer -g ws
    • npm install -g serveur http
    • npm install -g types-mime
    • npm installer -g pkg
  3. Créez un dossier nommé "websockify" sous "% AppData% \ npm \ node_modules \" et copiez-y le contenu du dossier "websockify \ other \ js".

  4. Exécuter (documentation des arguments -> https://www.npmjs.com/package/pkg): pkg "% AppData% \ npm \ node_modules \ websockify \ websockify.js" --targets "latest-win-x86, latest- win-x64 "--out-path" votre dossier de sortie "

Cela fonctionne bien pour moi aussi. Testé sur Windows 10 et avec le serveur Windows noVNC + TigerVNC.

@ gdan101 Pouvez-vous me dire quelle version de nœud vous aviez lorsque vous l'avez fait fonctionner? Je rencontre un problème avec nodejs 10.1.0 et websockify: https://github.com/novnc/websockify/issues/307#issuecomment -391125660

@mliudev J'avais node-v6.11.4 sur une machine Windows 7 x64!

@kanaka @CendioOssman Est-
Référence: https://kempniu.wordpress.com/2009/03/21/reverse-connections-in-tightvnc/

Comment pouvons-nous ouvrir la visionneuse novnc en mode d'écoute si la réponse est oui à la question ci-dessus.

Nous utilisons novnc pour capturer des périphériques à l'intérieur du réseau, mais nous voulons utiliser la même application Web pour capturer des périphériques (vnc) en dehors du réseau sur Internet. Cela est dû au fait que le serveur Web ne peut pas atteindre les appareils avec une adresse IP privée derrière le routeur. Nous aimerions utiliser la fonction inverse vnc qui devrait permettre aux appareils avec une adresse IP privée de partager l'écran avec le client novnc sur le serveur Web

@SiddharthJyoti Veuillez arrêter de spammer la même question à plusieurs endroits

@samhed Votre réponse rapide à la question sera appréciée.

noVNC ne prend pas en charge les connexions inverses comme celle décrite dans ce blog.

Cette page vous a été utile?
0 / 5 - 0 notes

Questions connexes

RaymiiOrg picture RaymiiOrg  ·  3Commentaires

mitsuhiko picture mitsuhiko  ·  3Commentaires

blite picture blite  ·  3Commentaires

dwt picture dwt  ·  3Commentaires

hansent picture hansent  ·  3Commentaires