一. 介绍
最近在看一些虚拟化解决方案方面的工作,每次都被开网页的虚拟机界面提示安装JRE搞的精神
都不好了,因此希望能在浏览器上远程操作虚拟机,不想安装任何插件。
通过搜索发现了Guacamole,一个提供远程桌面的解决方案的开源项目,通过浏览器就能操作
虚拟机,适用于Chrome、Firefox、IE9+等浏览器(浏览器需要支持HTML5), 由于使
用 HTML5,Guancamole 只要在一个服务器安装成功,你访问你的桌面就是访问一个 web 浏览
器。它目前是一个开源的项目,我们可以对Guacamole做修改,适配成我们需要的项目,比如做成
自动登录的,加上项目权限验证等。
Guacamole一基于HTML5的远程桌面控制框架,性能较高,官方说接近于原生的
VNC,Guacamole不是一个独立的Web应用程序,而是由许多部件组成的。Web应用程序实际上是
整个项目里最小最轻量的,大部分的功能依靠Guacamole的底层组件来完成,整个项目的构建如下
图:
从上图可以看出,guacamole结构上分为4层,建议先阅读下http://guac-
dev.org/doc/gug/guacamole-architecture.html和http://guac-dev.org/doc/gug/guacamole-
protocol.html,就可以对Guacamole的架构和协议有个基本的认识。
guacamole程序的流程如下:用户通过浏览器连接到Guacamole的服务端,Guacamole的客
户端是用javascript编写的,Guacamole Server通过Web容器(比如Tomcat)把服务提供给用户。
一旦加载,客户端通过http承载着Guacamole自己的定义的协议与服务端通信。部署在Guacamole
Server这边的Web应用程序,解析到的Guacamole protocal,就传给Guacamole的代理guacd,这
个代理(guacd)实际上就是解析Guacamole protocal,替用户连接到远程机
器,Guacamole protocal协议本身以及guacd的存在,实现了协议的透明:Guacamole客户端(浏
览器运行的JS)和Web应用程序,都不需要知道远程桌面具体用哪个协议(VNC,RDP etc),分为4
个大的部分:
Guacamole桌面虚拟化介绍和安装使用 2015/6/8
opzoon