CN103888511A - 一种基于动态代理的远程访问控制方法 - Google Patents
一种基于动态代理的远程访问控制方法 Download PDFInfo
- Publication number
- CN103888511A CN103888511A CN201410058216.3A CN201410058216A CN103888511A CN 103888511 A CN103888511 A CN 103888511A CN 201410058216 A CN201410058216 A CN 201410058216A CN 103888511 A CN103888511 A CN 103888511A
- Authority
- CN
- China
- Prior art keywords
- port
- dynamic proxy
- network
- client
- mapping relations
- 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.)
- Pending
Links
Images
Landscapes
- Computer And Data Communications (AREA)
Abstract
本发明公开一种基于动态代理的远程访问方法,其包括步骤S01:动态代理初始化映射关系表和端口资源表;步骤S02:利用动态代理动态地建立公网IP:PORT到私网IP:PORT的映射关系,并基于Netty建立公网IP:PORT的网络监听;步骤S03:动态代理基于Netty的Select轮询机制监听Accept事件,并建立客户端与目的主机之间的连接管道;步骤S04:动态代理基于Netty的Select轮询机制监听READ和WRITE事件,完成客户端和目的主机之间的数据传输;步骤S05:客户端关闭连接,动态代理释放LocalSocket和RemoteSocket,关闭了客户端与目的主机之间的连接管道;步骤S06:当不再需要访问私网中某个IP的主机时,动态代理动态地删除公网到私网的映射关系,以及公网IP:PORT的网络监听;该远程访问方法可以保证旧的映射关系不受任何影响而做到业务无损。
Description
技术领域
本发明涉及移动云计算技术领域,具体涉及一种基于动态代理的远程访问控制方法。
背景技术
远程访问是一种用户通过远程访问客户端连接并访问远程主机的机制,在同一个私有网络中,不需要任何配置就能做到远程访问,而大多数时候,我们需要的是在不同私有网络中实现远程访问。如User1和User分别处于不同的局域网,User1需要远程访问User2所在的主机,这种场景则需要配置才能做到远程访问。一般的实现方案是基于一个固定的公网IP和PORT,事先建立从公网IP:PORT到私网IP:PORT的映射关系,即在公网IP:PORT和私网IP:PORT之间建立虚链路,这样外部网络就可以基于这个公网IP使用远程访问工具实现对私有网络中某个主机的远程访问。
但是,上述场景的远程访问机制有两个致命的缺点,一是不够灵活,当我们需要访问某台主机的时候,我们必须事先建立公网IP:PORT到私网IP:PORT的映射关系,然后我们才能基于这个公网IP:PORT远程访问私有网络中的主机。我们更希望拥有的是一种在需要远程访问私有网络中某个主机的时候,可以动态的建立映射关系的远程访问控制机制;其次是业务中断,当新添加的映射关系需要起作用时,我们必须停止掉已有的服务机制,然后再重新启动服务机制,这时新的映射关系才会起作用,这样则无法保证业务无损。
发明内容
为了解决现有技术的不足,本发明的目的在于提供一种基于动态代理的远程访问方法,使用者在使用之前开启动态代理,当需要访问私有网络中的目的主机时,使用者基于动态代理动态的建立公网IP:PORT和私网IP:PORT的映射关系,而且可以保证旧的映射关系不受任何影响,做到业务无损。
本发明提供一种基于动态代理的远程访问方法,其包括以下步骤:
步骤S01:动态代理初始化映射关系表和端口资源表;
步骤S02:当需要访问私网中某个IP的主机时,利用动态代理动态地建立公网IP:PORT到私网IP:PORT的映射关系,并将该映射关系保存至动态代理的映射关系表中,同时,动态代理基于Netty建立公网IP:PORT的网络监听;
步骤S03:动态代理基于Netty的Select轮询机制监听Accept事件,并建立客户端与目的主机之间的连接管道;
步骤S04:动态代理基于Netty的Select轮询机制监听READ和WRITE事件,完成客户端和目的主机之间的数据传输;
步骤S05:客户端关闭连接,动态代理释放LocalSocket和RemoteSocket,关闭了客户端与目的主机之间的连接管道;
步骤S06:当不再需要访问私网中某个IP的主机时,动态代理动态地删除公网IP:PORT到私网IP:PORT的映射关系,以及公网IP:PORT的网络监听。
基于上述技术方案的公开,本发明提供一种基于动态代理的远程访问方法具有以下有益效果:
本发明公开的一种基于动态代理的远程访问方法,使用者在使用之前,开启动态代理,当需要访问私有网络中的某个主机时,使用者基于动态代理,动态的建立公网IP:PORT和私网IP:PORT的映射关系,而且可以保证旧的映射关系不受任何影响,做到业务无损。
附图说明
图1为本发明提出的一种基于动态代理的远程访问方法的流程原理图。
具体实施方式
如图1所示,基于云平台CloudStack的应用程序——此应用程序可以动态的创建私有网络,并且在私有网络中创建或者部署目的主机。我们希望在另外一个私有网络中也能访问动态部署的目的主机,而且不影响已经能访问的目的主机之间的数据传输,下面结合这个具体的应用场景来描述一下基于动态代理实现的具体实施方式。
步骤S01:动态代理初始化映射关系表和端口资源表,映射关系表用于维护公网IP:PORT和私网IP:PORT的映射关系,映射关系表采用Map树形结构,方便对映射关系表的动态操作包括查找,增加,删除,端口资源表用于维护可用的端口资源,端口资源表采用动态数组结构,方便对端口资源的动态扩展。
步骤S02:基于CloudStack的应用程序部署目的主机之后,调用动态代理提供的接口动态地添加映射关系,动态代理收到来自应用程序的消息之后,则从动态代理的端口资源表中分配一个可用的PORT,将该PORT和目的主机IP之间建立公网IP:PORT到私网IP:PORT的映射关系,并将该映射关系保存至映射关系表中,同时,动态代理基于Netty建立公网IP:PORT的网络监听,成功之后,则返回映射关系IP:PORT给应用程序;
步骤S03:动态代理基于Netty的Select轮询机制监听Accept事件,并建立客户端与目的主机之间的连接管道,客户端基于应用程序获取的公网IP:PORT远程访问目的主机,动态代理检测到来自客户端的Accept事件,动态代理与客户端之间建立LocalSocket连接,同时动态代理查找映射关系表中的映射关系,建立和私网IP:PORT之间的RemoteSocket连接,同时将LocalSocket的READ和WRITE事件加入Select轮询机制中;
步骤S04:动态代理基于Netty的Select轮询机制监听READ和WRITE事件,完成客户端和目的主机之间的数据传输:客户端发送请求数据给动态代理,动态代理检测到LocalSocket的READ事件,读取数据写入RemoteSocket发送到目的主机,目的主机发送响应数据给动态代理,动态代理检测到RemoteSocket的READ事件,读取数据写入LocalSocket发送到客户端;
步骤S05:客户端关闭连接,动态代理释放LocalSocket和RemoteSocket,关闭了客户端与目的主机之间的连接管道;
步骤S06:基于CloudStack的应用程序销毁目的主机,调用动态代理提供的接口动态删除映射关系及公网IP:PORT的网络监听:动态代理收到消息之后,释放端口资源表的PORT,删除该PORT和目的主机之间建立的公网IP:PORT到私网IP:PORT的映射关系,同时删除Netty建立的公网IP:PORT的网络监听,成功之后,返回删除成功的提示给应用程序。
上述步骤S02到步骤S06就是一个从映射关系动态建立,代理转发客户端与目的主机之间的数据,最后删除映射关系的完整过程。这个过程是动态进行的,当基于CloudStack的应用程序动态部署目的主机,动态代理就动态的生成和目的主机之间的映射关系,而且不会影响已有映射关系的数据转发。
基于动态代理的远程访问方法是基于Socket的网络编程实现的,基本原理就是在公网IP:PORT和私网IP:PORT之间建立Socket连接,外部网络访问公网IP:PORT时,将产生的数据通过Socket再发送到私网IP:PORT所在的目的主机,这样就完成了公网IP:PORT到私网IP:PORT的映射关系,即访问公网IP:PORT的数据流最终会被转发到私网IP:PORT,本发明采用了Netty作为网络编程框架,Netty是一个高性能的异步事件网络框架。
应该注意到并理解,在不脱离后附的权利要求所要求的本发明的精神和范围的情况下,能够对上述详细描述的本发明做出各种修改和改进,因此,要求保护的技术方案的范围不受所给出的任何特定示范教导的限制。
Claims (1)
1.一种基于动态代理的远程访问方法,其特征在于,其包括以下步骤:
步骤S01:动态代理初始化映射关系表和端口资源表;
步骤S02:当需要访问私网中某个IP的主机时,利用动态代理动态地建立公网IP:PORT到私网IP:PORT的映射关系,并将该映射关系保存至动态代理的映射关系表中,同时,动态代理基于Netty建立公网IP:PORT的网络监听;
步骤S03:动态代理基于Netty的Select轮询机制监听Accept事件,并建立客户端与目的主机之间的连接管道;
步骤S04:动态代理基于Netty的Select轮询机制监听READ和WRITE事件,完成客户端和目的主机之间的数据传输;
步骤S05:客户端关闭连接,动态代理释放LocalSocket和RemoteSocket,关闭了客户端与目的主机之间的连接管道;
步骤S06:当不再需要访问私网中某个IP的主机时,动态代理动态地删除公网IP:PORT到私网IP:PORT的映射关系,以及公网IP:PORT的网络监听。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201410058216.3A CN103888511A (zh) | 2014-02-20 | 2014-02-20 | 一种基于动态代理的远程访问控制方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201410058216.3A CN103888511A (zh) | 2014-02-20 | 2014-02-20 | 一种基于动态代理的远程访问控制方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN103888511A true CN103888511A (zh) | 2014-06-25 |
Family
ID=50957227
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201410058216.3A Pending CN103888511A (zh) | 2014-02-20 | 2014-02-20 | 一种基于动态代理的远程访问控制方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN103888511A (zh) |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105208072A (zh) * | 2015-08-06 | 2015-12-30 | 杭州数梦工场科技有限公司 | 虚拟交换机的远程控制方法及装置 |
CN106254577A (zh) * | 2016-09-18 | 2016-12-21 | 东软集团股份有限公司 | 端口分配的方法及装置 |
CN107257345A (zh) * | 2017-07-06 | 2017-10-17 | 浙江华创视讯科技有限公司 | 一种基于内外网的数据通讯方法、装置及系统 |
CN113379956A (zh) * | 2021-08-11 | 2021-09-10 | 四川智优羊科技有限公司 | 一种应用于校园门禁的netty4管道跨网协议的通信方法 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102045346A (zh) * | 2010-11-25 | 2011-05-04 | 深圳市科陆电子科技股份有限公司 | 一种采用Netty框架实现的TCP服务通道 |
CN102984697A (zh) * | 2012-12-04 | 2013-03-20 | 中国联合网络通信集团有限公司 | 基于移动终端的ip通信方法、设备和系统 |
CN103023789A (zh) * | 2012-12-05 | 2013-04-03 | 北方工业大学 | 因特网中访问私网服务器的方法 |
US8416711B1 (en) * | 2009-08-31 | 2013-04-09 | Skype | Systems and methods for sharing availability status information between network nodes |
-
2014
- 2014-02-20 CN CN201410058216.3A patent/CN103888511A/zh active Pending
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8416711B1 (en) * | 2009-08-31 | 2013-04-09 | Skype | Systems and methods for sharing availability status information between network nodes |
CN102045346A (zh) * | 2010-11-25 | 2011-05-04 | 深圳市科陆电子科技股份有限公司 | 一种采用Netty框架实现的TCP服务通道 |
CN102984697A (zh) * | 2012-12-04 | 2013-03-20 | 中国联合网络通信集团有限公司 | 基于移动终端的ip通信方法、设备和系统 |
CN103023789A (zh) * | 2012-12-05 | 2013-04-03 | 北方工业大学 | 因特网中访问私网服务器的方法 |
Cited By (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105208072A (zh) * | 2015-08-06 | 2015-12-30 | 杭州数梦工场科技有限公司 | 虚拟交换机的远程控制方法及装置 |
CN105208072B (zh) * | 2015-08-06 | 2019-09-06 | 杭州数梦工场科技有限公司 | 虚拟交换机的远程控制方法及装置 |
CN106254577A (zh) * | 2016-09-18 | 2016-12-21 | 东软集团股份有限公司 | 端口分配的方法及装置 |
CN106254577B (zh) * | 2016-09-18 | 2019-04-19 | 东软集团股份有限公司 | 端口分配的方法及装置 |
CN107257345A (zh) * | 2017-07-06 | 2017-10-17 | 浙江华创视讯科技有限公司 | 一种基于内外网的数据通讯方法、装置及系统 |
CN113379956A (zh) * | 2021-08-11 | 2021-09-10 | 四川智优羊科技有限公司 | 一种应用于校园门禁的netty4管道跨网协议的通信方法 |
CN113379956B (zh) * | 2021-08-11 | 2021-11-02 | 四川智优羊科技有限公司 | 一种应用于校园门禁的netty4管道跨网协议的通信方法 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
WO2018054195A1 (zh) | 一种资源分配的方法及基站 | |
CN108881308B (zh) | 一种用户终端及其认证方法、系统、介质 | |
CN105592052B (zh) | 一种防火墙规则配置方法及装置 | |
WO2007045170A1 (fr) | Procede et systeme de partage de zone memoire de terminal mobile | |
CN104579887A (zh) | 云网关、云网关创建配置系统及方法 | |
JP2013511207A5 (zh) | ||
US9894144B2 (en) | Application level mirroring in distributed overlay virtual networks | |
CN103888511A (zh) | 一种基于动态代理的远程访问控制方法 | |
CN112654100B (zh) | 一种信息处理方法和相关网络设备 | |
US20040170133A1 (en) | Packet processing system | |
WO2016050109A1 (zh) | 一种通信方法、云管理服务器及虚拟交换机 | |
WO2020134827A1 (zh) | 一种用于片上网络的路径创建方法、装置及电子设备 | |
WO2019011142A1 (zh) | 一种进行网络链路切换的方法和系统 | |
CN104092747B (zh) | 虚拟化环境下usb动态连接方法及装置 | |
CN106878320A (zh) | 一种防止ip地址欺骗的方法和装置 | |
WO2015100628A1 (zh) | 网元数据访问方法、装置以及网络管理系统 | |
CN101841425B (zh) | 一种无代理的网络备份方法、装置和系统 | |
CN100490393C (zh) | 一种访问客户网络管理平台的方法 | |
JP5680802B2 (ja) | 隣接関係を確立する方法、装置、及びシステム | |
CN103916489A (zh) | 一种单域名多ip的域名解析方法及系统 | |
CN106462421B (zh) | 电信设备以及用于更新电信设备中的软件的方法 | |
KR20050112912A (ko) | 소켓 어플리케이션 프로그램을 이용한 데이터 중계 시스템및 데이터 중계 방법 | |
CN103067365A (zh) | 一种用于虚拟桌面接入的机顶盒、客户端、系统及方法 | |
CN104883287A (zh) | IPSec VPN系统控制方法 | |
CN104519137B (zh) | Host文件的管理方法、装置和系统 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
WD01 | Invention patent application deemed withdrawn after publication | ||
WD01 | Invention patent application deemed withdrawn after publication |
Application publication date: 20140625 |