CN104125243B - 一种穿透内网远程连接大规模虚拟机的方法 - Google Patents

一种穿透内网远程连接大规模虚拟机的方法 Download PDF

Info

Publication number
CN104125243B
CN104125243B CN201310142306.6A CN201310142306A CN104125243B CN 104125243 B CN104125243 B CN 104125243B CN 201310142306 A CN201310142306 A CN 201310142306A CN 104125243 B CN104125243 B CN 104125243B
Authority
CN
China
Prior art keywords
virtual machine
intranet
http
outer net
port
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
CN201310142306.6A
Other languages
English (en)
Other versions
CN104125243A (zh
Inventor
姜晓红
黄鹏
严海明
吴朝晖
杨红星
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Zhejiang University ZJU
Original Assignee
Zhejiang University ZJU
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Zhejiang University ZJU filed Critical Zhejiang University ZJU
Priority to CN201310142306.6A priority Critical patent/CN104125243B/zh
Publication of CN104125243A publication Critical patent/CN104125243A/zh
Application granted granted Critical
Publication of CN104125243B publication Critical patent/CN104125243B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Landscapes

  • Data Exchanges In Wide-Area Networks (AREA)

Abstract

本发明公开了一种基于代理方法,使得远程控制工具(vnc4server)可以穿透内网,连接局域网大规模机器集群中的任意虚拟机。本发明方法通过构造一个符合规则的url,直接向代理服务器发送请求,代理服务器通过解析请求的url,得到需要连接的内网虚拟机IP和端口号,向该虚拟机转发请求,并把虚拟机的响应转发给客户端。本发明不需要修改vnc4server服务端的任何配置,只需要部署一台代理服务器,用指定规则的url访问,就可以通过浏览器远程连接内网中的虚拟机(Linux和Windows)。本发明方法使用简单友好,部署简单易行,访问过程安全稳定可靠。

Description

一种穿透内网远程连接大规模虚拟机的方法
技术领域
本发明涉及计算机网络领域,特别是涉及远程控制工具软件穿透内网的方法。
背景技术
本发明涉及远程控制协议,当前的主流有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转发该响应即可;
以上即为代理软件的处理流程;
步骤d:外网用户使用特定规则的url向代理服务器发送请求,即可连接远程的虚拟机,通过身份认证后,登入系统。
我们规定的url格式是:
http://代理服务IP:Port/目的虚拟机IP:Port/
实际部署时,我们使用vnc4server默认的端口号5801,于是我们使用http://10.22.42.89:5801/192.168.110.26:5801/就可以通过远程桌面的方式连接云平台中对应的虚拟机了。
本发明由于采用了以上技术方案,具有显著的技术效果:
本发明是一种基于代理的,能够使得vnc4server穿透内网,远程登入大规模集群平台中的任意虚拟机,本发明方法使用简单友好,部署简单易行,访问过程安全稳定可靠。
附图说明
图1是用来说明整个方法的流程;
图2是用来说明子进程处理http协议的工作流程;
图3是用来说明子进程处理vnc协议的工作流程。
具体实施方式
下面结合附图1至附图3与实施例对本发明作进一步详细描述:
实施例1
1、进程池模型
本发明的代理软件采用进程池模型,预先创建多个子进程,处理具体的代理工作,而主进程则维护进程池的大小。进程池的大小用配置文件的两个阈值MinSpareServers和MaxSpareServers维护。空闲进程个数的统计使用文件锁同步,当子进程进入任务处理流程时,空闲进程个数减一,当子进程退出任务处理流程时,空闲进程个数加一。当空闲进程个数小于MinSpareServers时,主进程创建新的工作进程,等待任务的到来,当空闲进程个数大于MaxSpareServers时,当前子进程退出。这样,就实现了进程池大小的维护。
2、主进程工作流程
主进程预先创建指定个数的子进程,接着维护进程池的大小。主进程每隔5s钟醒来,如果空闲进程个数小于MinSpareServers,则在子进程列表中寻找一个空槽位,创建一个新的子进程。至于空闲进程个数大于MaxSpareServers,这种情况不会出现,因为子进程退出任务处理流程时,会进行一次判断,如果空闲进程个数大于MaxSpareServers时,该子进程退出。
3、子进程工作流程
子进程承担代理的实际工作,转发请求和响应。子进程监听服务器的5801和5901端口(vnc4server默认配置使用这两个端口),如果是来自5801端口的连接请求,表明源主机发送的是http协议,进入http协议处理流程;如果来自5901端口的连接请求,表明源主机发送的是vnc协议,进入vnc协议处理流程。当流程结束时,空闲进程个数加一,如果空闲进程个数大于MaxSpareServers,该子进程退出,否则继续等待IO事件。
3.1、处理http协议
子进程使用select监听套接字的IO事件,对于IO事件,不同类型有不同的处理方法:
(a)如果是http请求到达,解析url得到对应的目的虚拟机IP和端口。如果这是第一个请求,保存虚拟机IP和端口,并使用TCP连接目的虚拟机,把套接字加入select的监听队列中。查找映射表,得到对应的目的虚拟机的地址,向其发送经重写的http请求。
(b)如果是http响应,查找映射表,得到源主机地址,向其转发该响应。
(c)select等待超时,子进程结束。
3.2、处理vnc协议
子进程使用select监听套接字的IO事件,对于IO事件,不同类型有不同的处理方法:
(a)如果是vnc请求到达,查找映射表,得到对应的目的虚拟机的地址,如果是第一个vnc请求,则与虚拟机建立TCP连接。接着向对应的套接字发送vnc请求。
(b)如果是vnc响应,查找映射表,得到源主机地址,向其转发该响应。
(c)select等待超时,子进程结束。
总之,以上所述仅为本发明的较佳实施例,凡依本发明申请专利范围所作的均等变化与修饰,皆应属本发明专利的涵盖范围。

Claims (1)

1.一种穿透内网远程连接大规模虚拟机的方法,步骤如下:
步骤a:在内网中的各个虚拟机上安装vnc4server开源软件,使用vnc4server软件,在网络互通的情况下,可以使用浏览器以桌面的方式远程登入Linux或Window机器;
步骤b:选择一台具有外网IP和内网IP的双网卡服务器,所述双网卡服务器和其他物理机共同组成了一个集群;
步骤c:将代理软件部署在选定的双网卡服务器上;由于代理软件部署在Linux机器上,采用c语言,进程池+select模型的架构开发代理,该代理软件主要是处理http协议和vnc协议;
步骤d:外网用户使用特定规则的url向双网卡服务器发送请求,即可连接远程的虚拟机,通过身份认证后,登入系统;
其中,特定规定的url格式是:http://代理服务IP:Port/目的虚拟机IP:Port/;
所述的步骤c中,代理软件的处理http协议的流程如下:
(1)监听外网IP端口,得到来自外网的http请求;
(2)解析http请求中的url,得到需要连接的虚拟机IP和端口,并把源主机IP与目的虚拟机IP、端口映射起来,保存在一张表中;然后与目的虚拟机建立tcp连接,转发得到并经过重写的http请求;
(3)监听内网IP端口,得到目的虚拟机的http响应,直接把该响应转发给对应的外网客户端;
所述的步骤c中,代理软件的处理vnc协议的流程如下:
(1)监听外网IP端口,得到来自外网的请求;
(2)得到外网请求的源主机IP,查询映射表,向对应的目的虚拟机转发该请求,并等待目的虚拟机的响应;
(3)得到目的虚拟机的响应,直接向对应的源主机IP转发该响应即可。
CN201310142306.6A 2013-04-23 2013-04-23 一种穿透内网远程连接大规模虚拟机的方法 Active CN104125243B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201310142306.6A CN104125243B (zh) 2013-04-23 2013-04-23 一种穿透内网远程连接大规模虚拟机的方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201310142306.6A CN104125243B (zh) 2013-04-23 2013-04-23 一种穿透内网远程连接大规模虚拟机的方法

Publications (2)

Publication Number Publication Date
CN104125243A CN104125243A (zh) 2014-10-29
CN104125243B true CN104125243B (zh) 2018-01-02

Family

ID=51770507

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201310142306.6A Active CN104125243B (zh) 2013-04-23 2013-04-23 一种穿透内网远程连接大规模虚拟机的方法

Country Status (1)

Country Link
CN (1) CN104125243B (zh)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN109981367A (zh) * 2019-03-28 2019-07-05 湖南大学 基于内网穿透的虚机paas服务管理的方法
CN110177136A (zh) * 2019-05-21 2019-08-27 山东云缦智能科技有限公司 一种利用Webshell反向代理服务远程管理调试方法

Families Citing this family (29)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103384274B (zh) * 2013-07-15 2016-08-10 浙江大学 基于http协议的公网连接内网计算机的通信方法
CN104410668A (zh) * 2014-10-31 2015-03-11 国云科技股份有限公司 一种适用于公有云的虚拟机远程桌面管理方法
CN104363235A (zh) * 2014-11-20 2015-02-18 成都博高科技有限责任公司 一种通信方法、装置、系统及通信通道建立方法和装置
CN104410685A (zh) * 2014-11-23 2015-03-11 国云科技股份有限公司 一种外网穿透内网访问web应用的方法
CN104580531A (zh) * 2015-02-05 2015-04-29 湖南合天智汇信息技术有限公司 一种基于WebSocket代理的Web远程桌面访问控制方法
CN105635332A (zh) * 2015-12-21 2016-06-01 国云科技股份有限公司 一种多虚拟机共用单外网ip的方法
CN105721630A (zh) * 2016-03-24 2016-06-29 国云科技股份有限公司 一种虚拟机共用宿主机ip提供外网服务的方法
CN106657277B (zh) * 2016-11-24 2020-06-12 上海携程商务有限公司 Http代理服务方法及服务器和系统
CN108632221B (zh) * 2017-03-22 2020-09-04 华为技术有限公司 定位内网中的受控主机的方法、设备及系统
CN108667779B (zh) * 2017-03-31 2020-09-08 华为技术有限公司 一种远程登录容器的方法及服务器
CN107193634A (zh) * 2017-05-23 2017-09-22 郑州云海信息技术有限公司 一种虚拟机的访问方法及装置
CN107911433A (zh) * 2017-12-21 2018-04-13 上海数烨数据科技有限公司 一种基于WebShell的局域网集群主机访问方法
CN108200222A (zh) * 2017-12-27 2018-06-22 郑州云海信息技术有限公司 一种集群内网访问外网的方法、装置及设备
CN108345248B (zh) * 2018-02-28 2019-11-01 财付通支付科技有限公司 一种远程控制方法、装置及存储介质
CN110830527A (zh) * 2018-08-07 2020-02-21 阿里巴巴集团控股有限公司 一种网络间数据通信的方法、装置及数据通信系统
CN109639697A (zh) * 2018-12-24 2019-04-16 广州微算互联信息技术有限公司 云手机安全投屏的方法、移动终端和服务器
CN110489192B (zh) * 2019-08-13 2021-10-15 腾讯科技(深圳)有限公司 远程通信方法及装置、电子设备
CN112866074B (zh) * 2019-11-28 2022-04-29 烽火通信科技股份有限公司 一种虚拟网络连接方法及虚拟网络系统
CN110995705B (zh) * 2019-12-03 2022-07-05 广州西麦科技股份有限公司 一种远程安全访问虚拟机的方法
CN111857685A (zh) * 2020-07-16 2020-10-30 武汉秒开网络科技有限公司 一种自助软件定制及远程自动化测试的方法及系统
CN111866124B (zh) * 2020-07-17 2022-06-24 北京金山云网络技术有限公司 访问网页页面的方法、装置、服务器和机器可读存储介质
CN112597039A (zh) * 2020-12-28 2021-04-02 南方电网深圳数字电网研究院有限公司 虚拟机访问方法、系统、设备及计算机可读存储介质
CN112866351B (zh) * 2020-12-31 2023-08-04 成都佳华物链云科技有限公司 数据交互方法、装置、服务器及存储介质
CN113051039A (zh) * 2021-04-21 2021-06-29 的卢技术有限公司 一种基于云计算的虚拟云办公系统登录方法及系统
CN113282376B (zh) * 2021-07-22 2021-11-12 北京关键科技股份有限公司 应用于云平台架构的UKey虚机穿透方法
CN113938296A (zh) * 2021-10-08 2022-01-14 北京锐安科技有限公司 一种网络数据访问系统及方法
CN114039949B (zh) * 2021-12-24 2024-03-26 上海观安信息技术股份有限公司 云服务浮动ip绑定方法及系统
CN115174562B (zh) * 2022-05-25 2024-02-09 福建升腾资讯有限公司 一种远程协助的通信方法及系统
CN116132274A (zh) * 2022-12-22 2023-05-16 中国联合网络通信集团有限公司 通信方法、装置、设备以及存储介质

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101383789A (zh) * 2008-10-24 2009-03-11 中兴通讯股份有限公司 一种实现访问并控制家庭网络的家庭网关装置、系统和方法
CN102065111A (zh) * 2009-11-13 2011-05-18 北京神州绿盟信息安全科技股份有限公司 一种反向代理方法和反向代理服务器
CN102196003A (zh) * 2010-03-12 2011-09-21 新奥特(北京)视频技术有限公司 一种监控系统的远程控制方法及装置
CN102624918A (zh) * 2012-03-30 2012-08-01 北京英富森信息技术有限公司 一种基于url重写技术的代理访问方法
CN102710559A (zh) * 2012-06-21 2012-10-03 甘肃省科学技术情报研究所 一种反向代理技术实现数字文献资源网关的方法
CN102739612A (zh) * 2011-04-12 2012-10-17 深圳市金蝶中间件有限公司 远程控制方法及中介服务器

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101383789A (zh) * 2008-10-24 2009-03-11 中兴通讯股份有限公司 一种实现访问并控制家庭网络的家庭网关装置、系统和方法
CN102065111A (zh) * 2009-11-13 2011-05-18 北京神州绿盟信息安全科技股份有限公司 一种反向代理方法和反向代理服务器
CN102196003A (zh) * 2010-03-12 2011-09-21 新奥特(北京)视频技术有限公司 一种监控系统的远程控制方法及装置
CN102739612A (zh) * 2011-04-12 2012-10-17 深圳市金蝶中间件有限公司 远程控制方法及中介服务器
CN102624918A (zh) * 2012-03-30 2012-08-01 北京英富森信息技术有限公司 一种基于url重写技术的代理访问方法
CN102710559A (zh) * 2012-06-21 2012-10-03 甘肃省科学技术情报研究所 一种反向代理技术实现数字文献资源网关的方法

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
云平台虚拟计算资源的远程访问技术研究与实现;黄鹏;《万方》;20141103;全文 *
校园网安全体系设计与实现;马文杰;《中国优秀硕士学位论文全文数据库信息科技辑》;20100815(第8(2010)期);第24-26页 *

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN109981367A (zh) * 2019-03-28 2019-07-05 湖南大学 基于内网穿透的虚机paas服务管理的方法
CN109981367B (zh) * 2019-03-28 2021-05-07 湖南大学 基于内网穿透的虚机paas服务管理的方法
CN110177136A (zh) * 2019-05-21 2019-08-27 山东云缦智能科技有限公司 一种利用Webshell反向代理服务远程管理调试方法

Also Published As

Publication number Publication date
CN104125243A (zh) 2014-10-29

Similar Documents

Publication Publication Date Title
CN104125243B (zh) 一种穿透内网远程连接大规模虚拟机的方法
CN104718723B (zh) 用于虚拟网络中的联网和安全服务的框架
US9083760B1 (en) Dynamic cloning and reservation of detached idle connections
WO2018113443A1 (zh) 一种多用户环境下利用浏览器访问Linux容器集群的方法和装置
WO2020135575A1 (zh) 一种获取网络拓扑的系统、方法和服务器
TWI458314B (zh) 傳送遠端封包至主機的伺服器系統及其管理方法
EP3989486B1 (en) Model driven intent policy conflict detection and resolution through graph analysis
WO2016023268A1 (zh) 集中运维的方法、装置及存储介质
JP5935622B2 (ja) 情報処理装置,監視装置,情報処理方法,及び監視プログラム
CN104639497B (zh) 远程访问配置方法、远程访问方法、装置和系统
CN104243230B (zh) 一种获取Linux服务器中监控数据的方法和装置
Nugur et al. Design and development of an iot gateway for smart building applications
US11153228B1 (en) Synchronizing device resources for element management systems
JP2019097133A (ja) 通信監視システム及び通信監視方法
JP2017524314A (ja) プログラマティックインターフェースに従ったルータ情報の提供
WO2024088217A1 (zh) 私有网络的访问方法和系统
CN108762893A (zh) 一种浏览器连接Docker容器的方法、装置和存储介质
US20150261875A1 (en) HTML Network Service Tags Used with Web Browsers for Controlling Network Elements
Savić Bridging the snmp gap: simple network monitoring the internet of things
CN105141435A (zh) 一种基于Restful架构的物联网异构网络管理技术
JP2015159346A (ja) フェデレーション方法及びネットワークシステム
WO2015117380A1 (zh) 一种远程桌面协议网关进行路由交换的方法、设备及系统
Hao Edge computing on low availability devices with K3S in a smart home IoT system
JP2013126219A (ja) 転送サーバおよび転送プログラム
CN106020985B (zh) 数据处理方法、装置及服务器

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant