[发明专利]一种穿透内网远程连接大规模虚拟机的方法有效
| 申请号: | 201310142306.6 | 申请日: | 2013-04-23 |
| 公开(公告)号: | CN104125243B | 公开(公告)日: | 2018-01-02 |
| 发明(设计)人: | 姜晓红;黄鹏;严海明;吴朝晖;杨红星 | 申请(专利权)人: | 浙江大学 |
| 主分类号: | H04L29/08 | 分类号: | H04L29/08;H04L29/12;G06F9/455 |
| 代理公司: | 杭州知通专利代理事务所(普通合伙)33221 | 代理人: | 应圣义 |
| 地址: | 310000 浙*** | 国省代码: | 浙江;33 |
| 权利要求书: | 查看更多 | 说明书: | 查看更多 |
| 摘要: | |||
| 搜索关键词: | 一种 穿透 远程 连接 大规模 虚拟机 方法 | ||
技术领域
本发明涉及计算机网络领域,特别是涉及远程控制工具软件穿透内网的方法。
背景技术
本发明涉及远程控制协议,当前的主流有ssh协议、vnc协议等。
SSH为Secure Shell的缩写,是一种为建立在应用层和传输层基础上的安全协议,是专为远程登录会话和其他网络服务提供安全性的协议。利用 SSH 协议可以有效防止远程管理过程中的信息泄露问题。SSH客户端适用于多种平台,几乎所有Unix平台—包括HP-UX、Linux、AIX、Solaris、Digital UNIX、Irix,以及其他平台—都可运行SSH。
VNC(Virtual Network Computing),为一种使用RFB协定的屏幕画面分享及远程操作软件。此软件借由网络,可传送键盘与鼠标的动作及实时的屏幕画面。VNC与操作系统无关,因此可跨平台使用,例如可用Windows连接到某Linux的电脑,反之亦同。甚至在没有安装客户端程序的电脑中,只要有支持JAVA的浏览器,也可使用。
由于我们的平台中申请的虚拟机既有Linux操作系统,也有Windows操作系统,我们选择vnc4server开源软件作为远程控制工具。
对于外网访问内网中的机器,现有的技术就是使用NAT协议。
网络地址转换(Network Address Translation或简称NAT)是一种在IP封包通过路由器或防火墙时重写源IP地址或/和目的IP地址的技术。NAT包括静态网络地址转换、动态网络地址转换、网络地址及端口转换、动态网络地址及端口转换、端口映射等。NAT的端口映射功能是将一台主机的假IP地址映射成一个真IP地址,当用户访问提供映射端口主机的某个端口时,服务器将请求转到内部一主机的提供这种特定服务的主机;利用端口映射功能还可以将一台真IP地址机器的多个端口映射成内部不同机器上的不同端口。端口映射功能还可以完成一些特定代理功能,比如代理POP,SMTP,TELNET等协议。
利用端口映射,可以将集群内部的虚拟机映射到具有外网IP和内网IP的双网卡服务器上的端口,外网通过访问这台服务器上的某个端口就可以连接端口对应的虚拟机了。
这种方法有很大的局限性,首先有用端口是受限的,而平台中的虚拟机资源是可以不断扩充的,很有可能没有足够的端口来映射虚拟机;其次,用一个数字(端口)来标明一台虚拟机,这种方法并不友好,难以记忆。
发明内容
针对当前的技术背景,本发明提出了一种基于代理的,能够使得vnc4server穿透内网,远程登入大规模集群平台中的任意虚拟机。这种方法使用简单友好,部署简单易行,扩展性高,访问过程安全稳定可靠。
为了解决上述技术问题,本发明通过下述技术方案得以解决:
一种穿透内网远程连接大规模虚拟机的方法,方法如下:
步骤a:在内网中的各个虚拟机上安装vnc4server开源软件,使用vnc4server软件,在网络互通的情况下,可以使用浏览器以桌面的方式远程登入Linux或Window机器;
步骤b:选择一台具有外网IP和内网IP的双网卡服务器,这台服务器和其他物理机共同组成了一个集群;这样,外网可以连通这台服务器,它又可以连接集群内网中的虚拟机。
步骤c:将代理软件部署在选定的双网卡服务器上;由于代理部署在Linux服务器上,采用c语言,进程池+select模型的架构开发代理,该代理主要是处理http协议和vnc协议;
首先是处理http协议请求,流程如下:
(1)监听外网IP端口,得到来自外网的http请求;
(2)解析http请求中的url,得到需要连接的虚拟机IP和端口,并把源主机IP与目的虚拟机IP、端口映射起来,保存在一张表中;然后与目的虚拟机建立tcp连接,转发得到并经过重写的http请求;
(3)监听内网IP端口,得到目的虚拟机的http响应,直接把该响应转发给对应的外网客户端;
接下来,代理需要处理vnc协议。我们的代理软件不关心vnc协议的具体格式,只是简单的接收转发,具体流程如下:
(1)监听外网IP端口,得到来自外网的请求;
(2)得到外网请求的源主机IP,查询映射表,向对应的目的虚拟机转发该
请求,并等待目的虚拟机的响应;
(3)得到目的虚拟机的响应,直接向对应的源主机IP转发该响应即可;
以上即为代理软件的处理流程;
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于浙江大学,未经浙江大学许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201310142306.6/2.html,转载请声明来源钻瓜专利网。





