Websockify: Windows上的novnc-websockify问题

创建于 2013-02-17  ·  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-我从https://github.com/kanaka/noVNC下载novnc

5-我将其解压缩到C:\ Users \ waldman \ Downloads \ noVNC-master \ noVNC-master

6-我运行命令

C:\ Websockify Windows服务> websockify.exe --web“ C:\ Users \ waldman \ Downloads \ noVNC-master \ noVNC-master” 6080本地主机
:5901

日志是:

警告:没有“资源”模块,禁用了守护程序支持
WebSocket服务器设置:

  • 听:6080
  • Flash安全策略服务器
  • 网络服务器。 Web根目录:C:\ Users \ waldman \ Downloads \ noVNC-master \ noVNC-master
  • 不支持SSL / TLS(没有证书文件)
  • 从:6080代理到localhost:5901

在我的浏览器中,我要

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

也尝试过

http:// localhost :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快递
    • npm install -g乐观主义者
    • npm install -g policyfile
    • npm install -g ws
    • npm install -g http-server
    • npm install -g mime-types
    • npm install -g pkg
  3. 在“%AppData%\ npm \ node_modules \”下创建一个名为“ websockify”的文件夹,然后在其中复制文件夹“ websockify \ other \ js”的内容。

  4. 运行(参数说明-> https://www.npmjs.com/package/pkg):pkg“%AppData%\ npm \ node_modules \ websockify \ websockify.js”-目标“ latest-win-x86,latest- win-x64“ --out-path”您的输出文件夹“

所有26条评论

@doriwal我注意到您已解决问题。 这是否意味着您知道了吗?

没有公开的问题
2013年2月18日00:34,“乔尔·马丁(Joel Martin)” [email protected]写道:

@doriwal https://github.com/doriwal我注意到您已经关闭了该问题。 是否
那意味着你知道了吗?

-
直接回复此电子邮件或在Gi tHub上查看它

由于问题没有解决,我重新打开了问题

看起来我当地的novnc正在工作,
我只是运行类似http:// localhost :6080 / tests / base64.html的测试

响应是

负载
通过:“ window.btoa(“ hello world”)'返回了预期的'aGVsbG8gd29ybGQ ='
通过:“ window.btoa(“ a”)“返回了预期的“ YQ ==”
通过:“ window.btoa(“ ab”)”返回了预期的“ YWI =”
通过:“ window.btoa(“ abc”)”返回了预期的“ YWJj”
通过:“ window.btoa(“ abcd”)”返回了预期的“ YWJjZA ==”
通过:“ window.btoa(“ abcde”)”返回了预期的“ YWJjZGU =”
通过:“ window.btoa(“ abcdef”)”返回了预期的“ YWJjZGVm”
通过:“ window.btoa(“ abcdefg”)”返回了预期的“ YWJjZGVmZw ==”
通过:“ window.btoa(“ abcdefgh”)”返回了预期的“ YWJjZGVmZ2g =”
通过:“ window.atob(“ aGVsbG8gd29ybGQ =”)“返回了预期的“ hello world”
通过:“ Base64_decode(“ aGVsbG8gd29ybGQ =”)“返回了预期的“ hello world”
通过:“ window.atob(“ YQ ==”)“返回了预期的“ a”
通过:“ Base64_decode(“ YQ ==”)“返回了预期的“ a”
通过:“ window.atob(“ YWI =”)“返回了预期的“ ab”
通过:“ Base64_decode(“ YWI =”)“返回了预期的“ ab”
通过:“ window.atob(“ YWJj”)'返回了预期的'abc'
通过:“ Base64_decode(“ YWJj”)'返回了预期的'abc'
通过:“ window.atob(“ YWJjZA ==”)“返回了预期的'abcd'
通过:“ Base64_decode(“ YWJjZA ==”)“返回了预期的'abcd'
通过:“ window.atob(“ YWJjZGU =”)“返回了预期的'abcde'
通过:“ Base64_decode(“ YWJjZGU =”)“返回了预期的“ abcde”
通过:“ window.atob(“ YWJjZGVm”)'返回了预期的'abcdef'
通过:“ Base64_decode(“ YWJjZGVm”)'返回了预期的'abcdef'
通过:“ typeof window.btoa”返回了预期的“功能”
通过:“ window.btoa(“”)'返回预期的”
通过:'window.btoa(null)'返回预期值''
通过:“ window.atob(window.btoa(window))”返回了预期的“ [对象窗口]”
通过:“ window.btoa(“ \ u0080 \ u0081”)'返回了预期的'gIE ='
测试失败:0
通过测试:28

所以我想我确实在本地安装了novnc,

我不知道为什么
http:// localhost :6080 / vnc_auto.html?host = localhost&port = 5901&true_color = 1
要么
http:// localhost :6080 / vnc_auto.html?host = localhost&port = 6080&true_color = 1

返回“ noVNC就绪:本机WebSocket,画布渲染”,两秒钟后,我收到“连接超时”

我在noVNC附带的websockify.exe中遇到了同样的问题。

我不确定是否是相同的问题,但是当我尝试直接使用Python 2.7运行websocketproxy.py文件时,出现此错误:

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'

显然是因为在Windows的Python 2.x上未实现socket.fromfdhttp

当我尝试使用Python 3.3运行websockify时,出现了另一条错误消息:

  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 :您是否仍然遇到此问题?

如果使用Python 3.2,则可以在Windows上运行websockify。 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 :我正在尝试在Windows 2012 R2 Standard(64位)上运行websockify。
我已经安装了Python 2.7.11版本。
已安装兼容的64位版本的“ py2exe”和“ numpy”。
解决了在Windows上运行novnc提到的所有问题(尤其是#108和#233)

问题:当我尝试通过Web URL(http://localhost/vnc.html?host = localhost&port = 6080)连接时,出现处理程序异常:“无法腌制thread.lock对象”
来自forking.py的“导入错误:没有名为run的模块”

请提出解决方案。 我感觉到,在Windows中还没有强大的成功运行该工具的经验。 如果它不适合在Windows上运行,请告诉我。 还是我身边缺少什么? 感谢您的回应

image

@ kabilraj1979 websockify在使用python 2.X的Windows上不起作用。 使用python 3.X已经取得了一些成功。 但是,显然websockify的node.js版本(我没有要测试的Windows系统)在Windows上可以很好地运行,因此,我建议您使用node.js版本(如果可以的话)。

@kanaka :感谢您的回复。 websockify.js允许我连接。 谢谢。 需要探索Web内容中存在哪些代码。 js文件或多或少在做Web套接字连接的发送和接收部分(某种反向代理)?

有没有一种方法可以在易于部署的简单脚本/ exe版本中构建nodejs版本?
我在这里看到了Powershell脚本: https :
但是它有很多依赖项(安装完整的nodejs,然后下载其他软件包等),因此没有办法轻松地为我在多个客户端上部署它。
我的目标是建立一个不依赖任何其他服务器的免费,开放和独立的远程解决方案。

@kanaka :每次我必须代理VNC服务器时,都需要有不同的websockify.js实例。 有没有一种方法可以将其作为侦听器运行,从而可以即时允许多个连接? 可以从websockify.js的一个实例中打开WebSocketConnections,对吗?

@ kabilraj1979,多个客户端可以同时连接到websockify.js的同一实例。 但是,每个要连接的目标都需要有一个websockify.js实例。 python版本的websockify支持目标插件,该目标插件允许通过客户端提供的不透明令牌选择目标。 但是,此功能尚未移植到websockify.js。

我测试了SIGCHLD,但是您已经注意到multiprocessing还有很多问题。 现在,我在代码中放置了一个活动块,因此它拒绝在Windows上启动。 至少应该使我们对问题的处理更加顺畅。

@sonicnkt :我设法创建了一个exe(从Node.js版本开始),因此您不需要安装Node.js和组件。
这些是步骤(我以前从未使用过Node.js,因此我可以肯定有一个较短的解决方案):

  1. 安装NodeJS(默认的全局安装路径是:%AppData%\ npm,%AppData%\ npm-cache)

  2. 安装所需的组件,运行:

    • npm install -g快递
    • npm install -g乐观主义者
    • npm install -g policyfile
    • npm install -g ws
    • npm install -g http-server
    • npm install -g mime-types
    • npm install -g pkg
  3. 在“%AppData%\ npm \ node_modules \”下创建一个名为“ websockify”的文件夹,然后在其中复制文件夹“ websockify \ other \ js”的内容。

  4. 运行(参数说明-> https://www.npmjs.com/package/pkg):pkg“%AppData%\ npm \ node_modules \ websockify \ websockify.js”-目标“ latest-win-x86,latest- win-x64“ --out-path”您的输出文件夹“

这对我也很好。 已在Windows 10和noVNC + TigerVNC Windows服务器上进行测试。

@ gdan101您能否告诉我运行该节点时使用的节点版本? 我遇到了nodejs 10.1.0和websockify的问题: https :

@mliudev我在Windows 7 x64机器上安装了node-v6.11.4!

@kanaka @CendioOssman NOVNC是否支持
参考: https :

如果以上问题的答案为是,我们如何以收听方式打开novnc查看器。

我们正在使用novnc捕获网络内部的设备,但是我们希望使用同一Web应用程序通过Internet捕获网络外部的(vnc)设备。 这是因为Web服务器无法访问路由器后面具有专用IP的设备。 我们想使用反向vnc功能,该功能应允许具有专用ip的设备共享屏幕到Web服务器上的novnc客户端

@SiddharthJyoti请停止在多个地方发送相同的问题

@samhed您在问题上的迅速答复将不胜感激。

noVNC不支持该博客中描述的反向连接。

此页面是否有帮助?
0 / 5 - 0 等级

相关问题

RaymiiOrg picture RaymiiOrg  ·  3评论

kodeshpa picture kodeshpa  ·  3评论

DarwinSurvivor picture DarwinSurvivor  ·  3评论

dwt picture dwt  ·  3评论

blite picture blite  ·  3评论