专利名称:一种在https上实现XenServer虚拟机远程控制的方法
技术领域:
本发明涉及通讯领域,特别是涉及一种在https上实现XenServer虚拟机远程控制的通讯方法。
背景技术:
云计算是如今个公司发展的需要,服务器虚拟化作为云计算的一重要组成部分是近期IT系统建设的热点,XenServer是思杰公司提供服务器虚拟化的一种方案,它是直接运行在硬件设备上面的虚拟机监控器,它能够让我们创建多个虚拟机,每个虚拟机可以运行不同操作系统的实例。XenServer已经提供了 VNC服务器组件,只需要通过配置启用即可提供服务,要连接到XenServer的VNC服务,需要通过XML-RPC接口完成与XenServer的登录过程,并在已登录的连接里去连接VNC服务,这使得常见的VNC客户端无法直接连接到XenServer的所提供的VNC服务;思杰的XenCenter可以通过VNC连接到虚拟机控制台,但它是基于C/S架构的仅供平台管理员来使用。如今服务器虚拟化技术在诸如IDC机房建设中被广泛应用,主机租用者均是通过互联网远程管理虚拟机,思杰的XenCenter还有目前的一些VNC客户端均无法解决此问题。
发明内容
本发明所要解决的技术问题是设计一种在https上实现XenSever虚拟机远程控制的方法,以解决现有技术下无法通过浏览器的方式通过互联网访问到XenServer虚拟机图形化控制台的问题,本设计的方法具有不依赖网络环境、适应多种操作系统,拥有较高的安全性和易用性。为实现上述发明目的,本发明提供一种在https上实现XenSever虚拟机远程控制的方法,包括客户端和代理服务器,所述客户端内置有一基于VNC的Applet可在各种浏览器上运行,所述代理服务器是VNC代理服务器,同时兼具有身份校验的功能;所述客户端,用于:基于Java Applet实现VNC客户端,在浏览器上显示虚拟机远程图形控制台,所述客户端首先使用ht tps连接到代理服务器,创建https隧道用于传输VNC中的RFB数据,把客户端鼠标及键盘的操作的信息通过RFB协议通过所创建的https隧道传输给代理服务器;所述代理服务器,用于:接收符合预设协议的客户端请求,从客户端https请求报文的headers中取出客户端的身份ID、密码以及请求打开的虚拟机标识,将身份ID和密码与应用系统数据库中存储的数据进行比对,身份合法则调用XenServer的XML-RPC接口连接到与客户端传送过来虚拟机标识一致的控制台上;否则,返回身份校验失败信息并拒绝客户端的连接。本发明还提供一种在https通过vnc代理服务器解决vnc客户端在浏览器上打开虚拟机控制台的方法,包括:
代理服务器接收来自客户端浏览器applet的https连接请求后,代理服务器首先判断请求符合预设协议,身份是否合法,然后直接调用XenServer API完成登录获得控制台的会话;代理服务器取得控制台的会话之后,根据https协议构造请求的报文,控制台会话id写入报文的Headers中一起向XenServer的VNC服务器请求连接,成功连接后代理服务器直接把从虚拟机控制台读取到的RFB协议数据转发给已建立连接的客户端,同时也把从客户端读取到的RFB协议数据转交给XenServer,从而在https实现VNC的代理功能,解决客户端浏览器上无法直接访问XenServer虚拟机控制台的问题。由上述方案可以看出,本发明中客户端基于Java Applet,可以跨平台、在多总浏览器上运行,解决VNC在浏览器上运行困难的问题;代理服务器与客户端之前通过所创建的https隧道进行数据传输,可解决公网环境下数据传输安全以及防火墙限制的问题;代理服务器作为客户端二次身份校验增加系统的安全性,代理服务器跟web服务器部署在同一主机规避了直连XenServer而引起Java Applet的安全限制;同时代理服务器对客户端可以一对多的服务,避免因客户端直接连接内网的XenServer而增加网络部署的难度。
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单的介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。图1为本发明实施例一中系统结构示意图;图2为本发明实施例一中系统处理信息流程示意图。
具体实施例方式为使本发明的上述目的、特征和优点能够更加明显易懂,下面结合附图和具体实施方式
对本发明作进一步详细的说明。显然,所描述的实施例仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。实施例一,参见图1。本发明提供一种在https上实现XenServer虚拟机远程控制的方法,所述系统包括基与VNC的客户端和VNC代理服务器,其中:所述客户端,用于:从虚拟机列表中请求打开虚拟机的远程控制台,并基于VNC在浏览器上显示虚拟机控制台或者桌面的图形信息;所述代理服务器,用于:接收来自客户端的请求,分析请求参数并对请求者身份进行校验,完成与XenServer的连接,把客户端数据RFB数据转交给XenServer的VNC服务器,同时把收到XenServer发送过来的RFB数据转发给客户端。上述系统的信息过程参见图2,具体包括以下步骤:I)客户端请求打开虚拟机的控制台,服务器返回显示控制台的页面,并在页面中力口载 vncview 的 applet ;
2) vncview请求通过VNCProxy请求连接到XenServer的VNC服务器;3) VNCProxy接收到vncview的连接请求,分析输入参数,通过应用系统数据库对客户端身份进行校验;4) VNCProxy调用XenServer的XML-RPC接口登录到XenServer并获得虚拟机的控制台会话ID ;5) VNCProxy把身份校验及登录XenServer的结果返回给客户端;6)客户端通过RFB协议请求返回远程虚拟机控制台图形信息;7) VNCProxy把客户端基与RFB协议的请求数据转发给XenServer ;8) VNCProxy把从XenServer接收到的基与RFB协议的控制台图形数据转发给客户端;9)客户端在Applet上实时解析RFB协议数据,并显示控制台图形信息。由上可见,本发明提供的一种https上实现XenServer虚拟机远程控制的方法,有以下优点。(I)图形界面的VNC客户端基与RFB协议的VNC客户端可以显示虚拟机远程控制台的图形界面,,支持鼠标及键盘操作方便使用者维护管理虚拟机。(2)跨操作系统跨浏览器由于采用了 Java技术,可以很好的实现跨操作系统及跨浏览器。(2)可穿透防火墙采用https建立通信隧道用于交互RFB实时数据,可在公网环境穿透企业防火墙的限制。(3)具有较高的安全性采用https建立加密隧道保证网络传输的信息安全,连接到VNCProxy后进行二次身份验证确保客户端身份的合法性。以上所述仅是本发明的具体实施方式
,应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也应视为本发明的保护范围。
权利要求
1.一种在https上实现XenServer虚拟机远程控制的方法,其特征在于,包括:一基于Java Applet使用https传输RFB数据的VNC客户端,一支持https的VNC代理服务器,所述系统均部署在同一 web服务器及应用服务器; 所述Java Applet VNC客户端,用于:基于RFB协议通过代理服务器请求打开Xen服务器的虚拟机控制台,接收经代理服务器转发、来自XenServer所管主机虚拟机的控制台图形信息,基于Java Applet在浏览器中实时显示控制台的图形; 所述的代理服务器,用于:接收来自客户端的连接请求,分析客户端的请求参数,调用XenServer XML-RPC接口与XenServer服务器建立连接,把来自客户端的RFB数据转发给Xen服务器,同时也把所收到Xen服务器的RFB数据转发给客户端,实现RFB协议代理的作用。
2.一种在https上实现XenServer虚拟机远程控制的方法,其特征在于,包括: 代理服务器接收到客户端的连接请求后,分析请求参数得到请求连接虚拟机ID以及客户端身份及密码,代理服务器通过查询应用系统数据库,对请求客户端身份的合法性进行校验,身份合法则调用XenServer的接口完成与XenServer服务器的连接,身份非法则拒绝与XenServer服务器连接。
3.根据权利要求1所述的方法,其特征在于,还包括:客户端向代理服务器请求连接时,采用ht tps协议建立连接通道穿透防火墙限制。
4.根据权利要求2所述的方法,其特征在于,还包括:客户端通过http头传入客户端用户身份以及所操作的虚拟机标识。
5.根据权利要求1,其特征在于所述具体的构建步骤如下: ①构建一小型管理系统,列出客户端登录用户可查看到的虚拟机; ②构建一Java Applet VNC客户端用于显示和控制远端虚拟机的图形用户界面; ③修改Xen提供的VNC客户源代码vncviewer使得它支持通过https隧道来传输RFB数据; ④构建一VNCProxy,用于实现客户端与XenServer的代理,同时解决客户端Applet因socket安全限制无法直连XenServer VNC服务以及客户端身份验证的问题。
全文摘要
本发明公开了一种在https上实现XenServer虚拟机远程控制的方法,包括了可在浏览器上运行的VNC客户端,用于身份校验及RFB数据转发的VNC代理服务器;VNC客户端,基于Java Applet技术并通过https来传输VNC远程控制数据,在web及Java应用服务器上部署,可在安装有JVM的浏览器上运行,因为利用了https传输数据,它可以很好的解决防火墙对外网访问的限制问题;VNC代理服务器,用于解决VNC客户端访问XenServer VNC服务端Applet安全限制的问题,同时通过XenServer的XML-RPC接口实现对客户端身份的安全校验;通过以上方法可以使得在客户端的任意浏览器上实现xenServer虚拟机的远程控制及访问。
文档编号H04L29/06GK103200215SQ20121001142
公开日2013年7月10日 申请日期2012年1月8日 优先权日2012年1月8日
发明者邓任远, 曾晓烨, 丁保剑 申请人:佳都新太科技股份有限公司