一种基于vnc代理的云计算环境中虚拟机在线录屏方法与系统的制作方法

文档序号:10572769阅读:850来源:国知局
一种基于vnc代理的云计算环境中虚拟机在线录屏方法与系统的制作方法
【专利摘要】本发明公开了一种基于VNC代理的云计算环境中虚拟机在线录屏系统及方法,在线录屏系统包括VNC客户端、VNC代理服务器和安装在虚拟机上的VNC服务器。用户通过浏览器客户端访问虚拟机,VNC代理服务器接收来自浏览器的虚拟机访问请求,VNC代理服务器初始化虚拟机访问信息并将客户端带过来的认证信息转发到VNC服务器,VNC服务器对访问进行安全认证,同时,VNC代理服务器启动录屏的线程对虚拟机的界面进行录屏,并生成录屏文件保存到VNC代理服务器上。采用本发明,能更进一步规范审计和取证用户对虚拟机的操作,能实现基于云计算的虚拟化应用或系统在线录屏的功能。
【专利说明】
一种基于VNC代理的云计算环境中虚拟机在线录屏方法与系统
技术领域
[0001]本发明涉及到虚拟机远程访问的在线监控及录屏技术,特别涉及一种基于云计算环境中在线的对虚拟机进行访问及录屏的方法与系统。
【背景技术】
[0002]随着互联网技术及云计算的迅速发展,虚拟机的使用越来越普遍,但技术的发展也带来了越来越多的安全问题,为了更进一步规范审计和取证用户对虚拟机的操作,基于云计算的虚拟化应用或系统需要提供一种在线录屏的功能。比如在网络攻防演练平台中,为了能够监控用户演练过程中的所有操作,需要将演练全程实时录制下来并进行回放。但又不需要将环境中所有虚拟机及任何时候的屏幕都录制下来,只有用户在进行具体的演练,虚拟机屏幕有更新的时候才需要录制。
[0003]现有技术中,申请号为201410514245.6的中国发明专利申请公开了一种基于WEB代理进行录屏审计的方法及系统,该方法中客户端通过浏览器获取RDP连接信息,并与RDP代理模块建立连接;RDP代理模块通过转发和保存前置机和客户端之间的图形界面数据,实现将浏览器的运行端部署到前置机上,显示及操作端部署在客户端;前置机浏览器在访问目标WEB服务器过程中,通过WEB代理服务器与目标WEB服务器通信,由WEB代理服务器转发和保存前置机与目标WEB服务器之间的http数据;审计模块将RDP代理模块保存的图形界面数据,与WEB代理服务器模块保存的http数据关联起来进行录屏审计。申请号为201410855090.2的中国发明专利申请公开了一种云终端录屏方法,包括以下步骤:步骤十一:Qmeu检测到连接桌面请求;步骤十二: Qemu进程不停检测是否有断开桌面连接的请求,有断开桌面连接的请求则进入步骤十六,结束本次录屏,保存本次录屏文件;没有断开桌面连接的请求则进入步骤十三,继续录屏;步骤十三:视频帧监控模块检测有无桌面操作事件并且有无视频帧变化;步骤十四:此时的视频帧为冗余信息,暂停写入视频帧数据到录屏文件;步骤十五:通过Qemu接口获取桌面视频帧数据写入到本次录屏文件,即继续写入视频帧数据到录屏文件;步骤十六:录屏结束,保存本次录屏文件。以上现有技术,均不是基于VNC代理的云计算环境中虚拟机在线录屏方法与系统。

【发明内容】

[0004]本发明所要解决的技术问题是,提供一种基于VNC代理的云计算环境中虚拟机在线录屏系统及方法,其能更好地实现云计算环境中虚拟机在线录屏。
[0005]本发明的技术方案是:一种基于VNC代理的云计算环境中虚拟机在线录屏系统,包括VNC客户端、VNC代理服务器和安装在虚拟机上的VNC服务器;
[0006]所述VNC客户端,用于显示虚拟机的桌面,实现基于VNC的RFB远程访问协议,捕获用户对虚拟机的鼠标及键盘消息的输入,并将虚拟机桌面的更新数据显示在客户端上;
[0007]所述VNC代理服务器,用于接收来自VNC客户端的虚拟机远程访问请求,并将请求转发到VNC服务器,建立VNC客户端到VNC服务器之间的连接通道,并实时捕获VNC服务端虚拟机基于RFB协议的屏幕更新数据,将桌面帧数据转成图像文件,通过视频转换模块将图像文件转成视频文件,完成虚拟机的屏幕录制;所述VNC服务器,用于建立与VNC客户端的连接,处理来自客户端的桌面更新请求,并将VNC服务器的桌面数据推送给VNC客户端。
[0008]所述VNC客户端是javaapplet实现的能够镶嵌在浏览器中运行的客户端。
[0009]用户通过浏览器客户端访问虚拟机,VNC代理服务器接收来自浏览器的虚拟机访问请求,VNC代理服务器初始化虚拟机访问信息并将客户端带过来的认证信息转发到VNC服务器,VNC服务器对访问进行安全认证,同时,VNC代理服务器启动录屏的线程对虚拟机的界面进行录屏,并生成录屏文件保存到VNC代理服务器上。
[0010]VNC代理服务器的录屏线程定时的抓取基于RFB协议的虚拟机桌面数据,并将数据进行编码生成JPEG的图片,再将JPEG格式的图片生成MP4视频文件保存到VNC代理服务器上。
[0011]采用上述基于VNC代理的云计算环境中虚拟机在线录屏系统进行在线录屏。
[0012]所述的基于VNC代理的云计算环境中虚拟机在线录屏方法,具体包括如下流程:
[0013]I)、发起虚拟机远程访问的请求;
[0014]2)、VNC代理服务器接受来自客户端的虚拟机请求,解析请求中携带的参数;
[0015]3)、VNC代理服务器初始化录屏线程的数据,建立VNC代理服务器与VNC服务器的通道;
[0016]4)、VNC代理服务器开启录屏的线程,并标记线程正处理录屏状态,进行安全认证;
[0017]5)、在安全认证之后,判断是否需要录屏,如果不需要则退出录屏线程,终止录屏;如果需要则进行正常的录屏,继续以下流程;
[0018]6)、VNC客户端发送帧更新请求;
[0019]7)、VNC代理服务器将VNC客户端发送的帧更新请求数据转发到VNC服务器;
[0020]8)、VNC代理服务器接收来自VNC服务器的基于RFB协议的桌面图像数据,并将该图像数据编码,存放到Buffer Image缓存中;
[0021 ] 9)、录屏线程定时的从Buffer Image缓存中读取数据,并将该数据转成JPEG格式文件,并调用ImageConvertVideo模块,将JPEG格式文件转成MP4格式的视频文件;
[0022]10)、VNC代理服务器将基于RFB协议的桌面图像数据发送到客户端,客户端将桌面图像数据进行解码,绘制到applet窗口中;
[0023]11)、当VNC客户端关闭浏览器时,发送取消录屏的请求到VNC代理服务器,VNC代理服务器执行录屏线程取消功能,并关闭VNC代理服务器与VNC服务器的连接通道,停止录屏;并将Buf f er Image的所有数据写到视频文件中。
[0024]VNC代理服务器初始化数据包括VNC的认证口令、IP、端口和用于VNC客户端显示虚拟机桌面的app I et窗口数据;app I et窗口数据包括接受键盘消息的按钮、窗口尺寸。
[0025]在正式录屏前,VNC代理服务器需要进行认证信息包括协议版本、加密方式、安全认证以及协商后的安全认证类型、客户端与服务端的初始化信息。
[0026]本发明主要是在云计算环境中,提供对虚拟机访问时的一种在线录屏的方法与系统,能更好地实现云计算环境中虚拟机在线录屏。采用本发明,能更进一步规范审计和取证用户对虚拟机的操作,能实现基于云计算的虚拟化应用或系统在线录屏的功能。用户通过浏览器客户端访问虚拟机,web代理服务器接收来自浏览器的虚拟机访问请求,代理服务器初始化虚拟机访问信息并将客户端带过来的认证信息转发到VNC服务端,VNC服务端对访问进行安全认证。同时,web代理服务器启动录屏的线程对虚拟机的界面进行录屏,并生成录屏文件保存到web代理服务器上。录屏功能主要通过以下过程实现:web代理服务器的录屏线程定时的抓取基于RFB协议的虚拟机桌面数据;将数据进行编码生成JPEG的图片;最后将JPEG格式的图片生成MP4视频文件。采用本发明,在网络攻防演练平台中,能将演练全程实时录制下来并进行回放,不需要将环境中所有虚拟机及任何时候的屏幕都录制下来,能实现在用户在进行具体的演练、虚拟机屏幕有更新时进行录制。
【附图说明】
[0027]图1为基于VNC代理的云计算环境中虚拟机在线录屏系统的构架示意图。
[0028]图2为web访问虚拟机时在线录屏的流程图。
【具体实施方式】
[0029]为了使本发明说的更加明白清楚,下面结合附图对本发明作进一步说明。
[0030]请参考图1,基于VNC代理的云计算环境中虚拟机在线录屏系统包括三部分,分别是java applet实现的能够镶嵌在浏览器中运行的VNC客户端(vnc applet客户端)、VNC远程访问及录屏代理服务器(VNC代理服务器)和安装在虚拟机上的VNC服务器。
[0031]Java applet的VNC客户端主要用来显示虚拟机的桌面,它实现了基于VNC的RFB远程访问协议,能够捕获用户对虚拟机的鼠标及键盘消息的输入,并将虚拟机桌面的更新数据显示在applet客户端(vnc applet客户端)上。
[0032]VNC代理服务器主要用于接收来自客户端的虚拟机远程访问请求,并将请求转发到VNC服务器,建立VNC客户端到服务器之间的连接通道,并实时捕获VNC服务端虚拟机基于RFB协议的屏幕更新数据,将桌面帧数据转成图像文件,通过视频转换模块将图像文件转成视频文件,完成虚拟机的屏幕录制。
[0033]VNC服务器主要建立与客户端的连接,处理来自客户端的桌面更新请求,并将服务器的桌面数据推送给客户端。
[0034]基于VNC的RFB远程帧缓存协议为虚拟机在线录屏提供了很好的技术基础,RFB是一种真正意义上的“瘦客户端”协议,它能减少客户端对硬件的要求,另外基于RFB协议的数据编码格式能提高网络传输率,减少录屏文件存储的空间,提升用户的操作体验。
[0035]本发明主要是在云计算环境中,提供对虚拟机访问时的一种在线录屏的方法与系统。基于VNC代理的云计算环境中虚拟机在线录屏系统包括三部分:web访问客户端(VNC客户端),web访问代理及录屏服务器(VNC代理服务器)),VNC服务器。用户通过浏览器客户端访问虚拟机,web代理服务器(VNC代理服务器)接收来自浏览器的虚拟机访问请求,代理服务器初始化虚拟机访问信息并将客户端带过来的认证信息转发到VNC服务端,VNC服务端对访问进行安全认证。同时,web代理服务器启动录屏的线程对虚拟机的界面进行录屏,并生成录屏文件保存到web代理服务器上。录屏功能主要通过以下过程实现:web代理服务器的录屏线程定时的抓取基于RFB协议的虚拟机桌面数据;将数据进行编码生成JPEG的图片;最后将JPEG格式的图片生成MP4视频文件。
[0036]下面结合图2,描述录屏的主要流程:
[0037]1、用户用浏览器发起虚拟机远程访问的请求。浏览器采用http协议将请求发送到web代理服务器上。如图2中S1.
[0038]2、Web代理服务器接受来自客户端的虚拟机请求,解析请求中携带的相关参数:相关参数主要包括VNC的认证口令,IP、端口等信息。
[0039]3、Web代理服务器根据客户端传来的参数初始化录屏线程的相关数据,并根据IP和端口建立Web代理服务器与VNC服务端(VNC服务器)的Socket通道。VNC服务器是安装在云主机中的虚拟机上。Web代理服务器并不能直接建立与虚拟机进行VNC通信的链路,系统需要在web代理服务器与虚拟机之间的虚拟路由器上建立虚拟机相关服务的端口转发规则才能与虚拟机进行通信。如虚拟机VNC服务器的端口是5901,则需要将虚拟机的IP和5901端口转发到虚拟路由器的IP与端口上。这里客户端请求中带的IP和端口就是转发后的IP和端口,这样web代理和VNC服务间就可以正常通信了。Web代理服务器初始化数据还包括用于VNC客户端显示虚拟机桌面的applet窗口数据,applet窗口数据包括接受键盘消息的按钮、窗口尺寸等。如图2中S2。
[0040]4、Web代理服务器开启录屏的线程,并标记线程正处理录屏状态。在正式录屏前,web代理服务器还需要进行一系列的RFB协议的认证信息。主要包括有协议版本、加密方式、安全认证以及协商后的安全认证类型、客户端与服务端的初始化信息等。如图2中S3。
[0041]5、在VNC的安全认证之后,录屏线程轮询的判断是否仍需要录屏,如果需要则进行正常的录屏,如果否,则退出录屏线程,终止录屏。如图2中S4。
[0042 ] 6、Vnc客户端发送帧更新请求。如图2中S5。
[0043]7、Web代理服务器将来自客户端的基于RFB协议的帧更新请求数据转发到VNC服务端。
[0044]8、Web代理服务器接收来自VNC服务器基于RFB协议的桌面图像数据,并将该图像数据编码,存放到代理服务器构造的Buf ferImage缓存中。如图2中S6。
[0045]9、录屏线程定时的从BufferImage缓存中读取数据,并将该数据转成JPEG格式文件,并调用ImageConvertVideo模块,将图片转成MP4格式的视频文件。如图2中S7。ImageConvertVideo是web代理服务端基于java编写的一个工具组件,它主要提供将多个图片文件转成视频文件的功能。
[0046]10、Web代理服务器将基于RFB协议的桌面图像数据发送到客户端,客户端将桌面图像数据进行解码,高速绘制到applet窗口中。
[0047]11、当客户端关闭浏览器时,将发送取消录屏的请求到web代理服务器,web代理服务器执行录屏线程取消功能,并关闭web代理服务器与VNC服务器的连接通道,停止录屏。并将Buf f er Image的所有数据写到视频文件中。
[0048]以上所述仅为本发明的优选实施例,本发明的保护范围不限于此,凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均包含在本发明的保护范围之内。
【主权项】
1.一种基于VNC代理的云计算环境中虚拟机在线录屏系统,其特征是,包括VNC客户端、VNC代理服务器和安装在虚拟机上的VNC服务器; 所述VNC客户端,用于显示虚拟机的桌面,实现基于VNC的RFB远程访问协议,捕获用户对虚拟机的鼠标及键盘消息的输入,并将虚拟机桌面的更新数据显示在客户端上; 所述VNC代理服务器,用于接收来自VNC客户端的虚拟机远程访问请求,并将请求转发到VNC服务器,建立VNC客户端到VNC服务器之间的连接通道,并实时捕获VNC服务端虚拟机基于RFB协议的屏幕更新数据,将桌面帧数据转成图像文件,通过视频转换模块将图像文件转成视频文件,完成虚拟机的屏幕录制;所述VNC服务器,用于建立与VNC客户端的连接,处理来自客户端的桌面更新请求,并将VNC服务器的桌面数据推送给VNC客户端。2.根据权利要求1所述的基于VNC代理的云计算环境中虚拟机在线录屏系统,其特征是,所述VNC客户端是java applet实现的能够镶嵌在浏览器中运行的客户端。3.—种基于VNC代理的云计算环境中虚拟机在线录屏方法,其特征是,用户通过浏览器客户端访问虚拟机,VNC代理服务器接收来自浏览器的虚拟机访问请求,VNC代理服务器初始化虚拟机访问信息并将客户端带过来的认证信息转发到VNC服务器,VNC服务器对访问进行安全认证,同时,VNC代理服务器启动录屏的线程对虚拟机的界面进行录屏,并生成录屏文件保存到VNC代理服务器上。4.根据权利要求3所述的基于VNC代理的云计算环境中虚拟机在线录屏方法,其特征是,VNC代理服务器的录屏线程定时的抓取基于RFB协议的虚拟机桌面数据,并将数据进行编码生成JPEG的图片,再将JPEG格式的图片生成MP4视频文件保存到VNC代理服务器上。5.根据权利要求3所述的基于VNC代理的云计算环境中虚拟机在线录屏方法,其特征是,采用权利要求1或2所述的基于VNC代理的云计算环境中虚拟机在线录屏系统进行在线录屏。6.根据权利要求3所述的基于VNC代理的云计算环境中虚拟机在线录屏方法,其特征是,具体包括如下流程: 1)、发起虚拟机远程访问的请求; 2)、VNC代理服务器接受来自客户端的虚拟机请求,解析请求中携带的参数; 3)、VNC代理服务器初始化录屏线程的数据,建立VNC代理服务器与VNC服务器的通道; 4)、VNC代理服务器开启录屏的线程,并标记线程正处理录屏状态,进行安全认证; 5)、在安全认证之后,判断是否需要录屏,如果不需要则退出录屏线程,终止录屏;如果需要则进行正常的录屏,继续以下流程; 6)、VNC客户端发送帧更新请求; 7)、VNC代理服务器将VNC客户端发送的帧更新请求数据转发到VNC服务器; 8)、VNC代理服务器接收来自VNC服务器的基于RFB协议的桌面图像数据,并将该图像数据编码,存放到Buffer Image缓存中; 9)、录屏线程定时的从BufferImage缓存中读取数据,并将该数据转成JPEG格式文件,并调用ImageConvertVideo模块,将JPEG格式文件转成MP4格式的视频文件; 10)、VNC代理服务器将基于RFB协议的桌面图像数据发送到客户端,客户端将桌面图像数据进行解码,绘制到applet窗口中; 11)、当VNC客户端关闭浏览器时,发送取消录屏的请求到VNC代理服务器,VNC代理服务器执行录屏线程取消功能,并关闭VNC代理服务器与VNC服务器的连接通道,停止录屏;并将Buf f er Image的所有数据写到视频文件中。7.根据权利要求6所述的基于VNC代理的云计算环境中虚拟机在线录屏方法,其特征是,VNC代理服务器初始化数据包括VNC的认证口令、IP、端口和用于VNC客户端显示虚拟机桌面的app I et窗口数据;app I et窗口数据包括接受键盘消息的按钮、窗口尺寸。8.根据权利要求6所述的基于VNC代理的云计算环境中虚拟机在线录屏方法,其特征是,在正式录屏前,VNC代理服务器需要进行认证信息包括协议版本、加密方式、安全认证以及协商后的安全认证类型、客户端与服务端的初始化信息。
【文档编号】G06F9/455GK105933415SQ201610251418
【公开日】2016年9月7日
【申请日】2016年4月21日
【发明人】侯美佳, 黄澄清, 舒敏, 姚维, 李平南, 金暐, 董琳, 彭义刚
【申请人】国家计算机网络与信息安全管理中心
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1