我目前正在开发一个网络应用程序,其中有一部分我必须通过VNC打开一台特定的机器来监控它的桌面。
我需要有一个基于Web的VNC客户端,这意味着它不应该在客户端安装服务器或任何其他文件。客户端只需打开Web浏览器,即可在浏览器中打开目标计算机的IP,从而运行基于Web的VNC客户端。
有什么好的资源可以在这个领域开始?
更新2013-10-29
只是 FYI :当时我最终使用guacamole作为@Dolph推荐。
那是:
答案 0 :(得分:26)
Guacamole是无客户端远程桌面网关。它支持VNC和RDP等标准协议。我们将其称为无客户端,因为不需要插件或客户端软件。感谢HTML5,一旦Guacamole安装在服务器上,您访问桌面所需的只是一个Web浏览器。
缺点是,它需要Java服务器代理。但是,这应该是微不足道的,即使您尚未启动并运行Java服务器(Tomcat非常简单,并且Guacamole's instructions很简单):
Guacamole分为两部分:guacamole-server,提供guacd代理和相关库; guacamole-client,提供客户端由servlet容器提供,通常为Tomcat。
guacamole-client以二进制形式提供,但必须从源代码构建guacamole-server。不要气馁:从源代码构建Guacamole的组件并不像听起来那么困难,并且构建过程是自动化的。您只需要确保提前安装了必要的工具。有了必要的依赖关系,建立Guacamole只需要几分钟。
答案 1 :(得分:14)
有各种解决方案,但它们都不允许100%普通网络应用程序(即没有Flash,Java或ActiveX)直接连接到100%普通VNC服务器。最大的问题是Web浏览器无法建立纯TCP连接。最接近的是不完整的WebSockets标准,但即使这是一个框架协议,它具有类似HTTP的握手来启动它。
即使Adobe Flash程序可以建立纯TCP连接,它们仍然要求您连接的服务器使用端口843上的策略文件或您要连接的端口(http://code.google.com/p/doctype/wiki/ArticleFlashSecurity)来回答。
如前所述,Guacamole需要Java代理才能在其基于HTML5的界面和VNC服务器之间进行通信。
另一个选项是noVNC(github),它在Javascript / HTML5中具有完整的VNC客户端实现(与代号为VNC协议的Guacamole不同)。但是,noVNC仍受限于Javascript无法建立纯TCP连接的事实。 noVNC使用WebSockets连接到服务器。 noVNC包括一个可以在服务器(或客户端上)运行的通用WebSockets到TCP桥接器,它没有额外的依赖性来安装。
更新:QEMU,PocketVNC和从LibVNCServer派生的项目现在具有内置的WebSocket服务器支持,因此不需要使用websockify网桥连接noVNC。另外,我忘记了作为免责声明,我创建了noVNC。
答案 2 :(得分:4)
尝试tightVNC.com。我上次使用它时你可以将它指向机器的IP并在浏览器中使用它。
答案 3 :(得分:4)
尝试PeerVNC,这是基于Web的vnc客户端,支持任何现有VNC服务器的代理。
答案 4 :(得分:1)
也许你会接近这个解决方案 - http://www.onlinevnc.com?据我所知,当Flash无法建立与VNC TCP / IP端口的直接连接时,他们已经解决了Flash Security的问题。 我还在他们的网站上看到了将查看器集成到任何其他网站或应用程序中的信息。
答案 5 :(得分:0)
除了Dolph的答案之外,还有this,一个用于连接VNC服务器的Java小程序。