CN109474687B - 一种不同私网间通信的方法、装置和系统 - Google Patents
一种不同私网间通信的方法、装置和系统 Download PDFInfo
- Publication number
- CN109474687B CN109474687B CN201811407398.5A CN201811407398A CN109474687B CN 109474687 B CN109474687 B CN 109474687B CN 201811407398 A CN201811407398 A CN 201811407398A CN 109474687 B CN109474687 B CN 109474687B
- Authority
- CN
- China
- Prior art keywords
- data channel
- port
- client
- private network
- public network
- 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
Links
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/14—Session management
- H04L67/141—Setup of application sessions
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L61/00—Network arrangements, protocols or services for addressing or naming
- H04L61/50—Address allocation
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/50—Network services
- H04L67/56—Provisioning of proxy services
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
本发明实施例公开了一种不同私网间通信的方法、装置和系统,私网代理端向公网代理端的代理端口建立长连接,对于每个长连接分配一个客户端口;公网代理端监听各客户端口;客户端向公网代理端的目标客户端口建立第一数据通道;公网代理端通过与目标客户端口相对应的目标长连接向私网代理端发送携带有服务端口的通道建立指令,以便于私网代理端向公网代理端的服务端口建立第二数据通道,向对应的私网服务器建立第三数据通道;通过具有关联关系的第一数据通道、第二数据通道和第三数据通道,便可以实现客户端和私网服务器之间的报文通信。降低了不同私网间通信的难度,提升了不同私网间通信的便捷性。
Description
技术领域
本发明涉及网络通信技术领域,特别是涉及一种不同私网间通信的方法、装置和系统。
背景技术
一般将互联网称为公网,将无法直接接入互联网的内部网络称作私网或者是内网。私网的网络终端一般通过网关接入上一级网络,网关上开启源地址转换(SourceNetwork Address Translation,SNAT)服务。所有的终端无论其在哪个私网都可以通过SNAT接入到公网上。
公司私网和外部访问点都处于不同的私网环境,都是通过SNAT方式连接到公网。不同的私网可以连接到公网上,但是由于私网的服务器IP地址在公网和其他网络是不可见的,所以不同私网之间并不能直接通信。
现有技术中,为了实现不同私网之间的通信,可以在公司私网的网络公网出口配置虚拟专用网络(Virtual Private Network,VPN)服务器,如图1所示,公司外接入的客户端先通过公网与VPN服务器建立隧道,然后获得公司私网IP,通过隧道以Overlay的方式访问公司私网服务。但是该种方式需要专用的VPN设备实现,增加了硬件投入。并且VPN的配置较为复杂,需要专人管理、审批,不便于随意性的修改配置。VPN设备需要有公网IP,对于有些小公司,其私网建在公司内,公网IP可能在公有云上,甚至没有公网IP,利用VPN设备实现私网间的通信,并不适用于这类公司。VPN设备一般在公司的边界节点,不一定能有权限访问公司内的任意服务器。并且,外网客户端通过VPN接入公司私网后会影响其访问其他网络,比如外网客户端需要同时访问两个公司的公司私网时,此方案无法满足。
可见,如何降低不同私网间通信的难度,提升不同私网间通信的便捷性,是本领域技术人员亟待解决的问题。
发明内容
本发明实施例的目的是提供一种不同私网间通信的方法、装置和系统,可以降低不同私网间通信的难度,提升不同私网间通信的便捷性。
为解决上述技术问题,本发明实施例提供一种不同私网间通信的方法,包括:
公网代理端监听代理端口,并维护私网代理端向所述代理端口建立的长连接;其中,每个所述长连接分配有一个客户端口;
所述公网代理端监听各所述客户端口,维护客户端向目标客户端口建立的第一数据通道,并查找与所述目标客户端口相对应的目标长连接;
所述公网代理端通过所述目标长连接向私网代理端发送携带有服务端口的通道建立指令,并监听所述服务端口,以便于维护所述私网代理端向所述服务端口建立的第二数据通道;
所述公网代理端建立所述第一数据通道和所述第二数据通道的关联关系,以实现所述客户端与所述私网代理端之间的报文通信。
可选的,在所述公网代理端建立所述第一数据通道和所述第二数据通道的关联关系之后还包括:
所述公网代理端检测到所述第一数据通道连接异常时,则通过所述目标长连接向所述私网代理端发送数据通道断开指令。
可选的,在所述公网代理端建立所述第一数据通道和所述第二数据通道的关联关系之后还包括:
所述公网代理端检测到所述第二数据通道连接异常时,则通过所述第一数据通道向所述客户端发送数据通道断开指令。
可选的,每个所述长连接的客户端口的分配过程包括:
所述公网代理端接收所述私网代理端通过第一长连接发送的第一客户端口;其中,所述第一长连接为所有所述长连接中的任意一个长连接;
所述公网代理端判断所述第一客户端口是否被占用;
若否,则所述公网代理端开启所述第一客户端口作为与所述第一长连接的客户端口;
若是,则所述公网代理端随机分配一个第二客户端口作为所述第一长连接的客户端口,并通过所述第一长连接向所述私网代理端传输所述第二客户端口。
本发明实施例还提供了一种不同私网间通信的装置,包括监听单元、查找单元、发送单元和关联单元;
所述监听单元,用于监听代理端口,并维护私网代理端向所述代理端口建立的长连接;其中,每个所述长连接分配有一个客户端口;所述监听单元还用于监听各所述客户端口,维护客户端向目标客户端口建立的第一数据通道;
所述查找单元,用于查找与所述目标客户端口相对应的目标长连接;
所述发送单元通过所述目标长连接向私网代理端发送携带有服务端口的通道建立指令,并监听所述服务端口,以便于维护所述私网代理端向所述服务端口建立的第二数据通道;
所述关联单元,用于建立所述第一数据通道和所述第二数据通道的关联关系,以实现所述客户端与所述私网代理端之间的报文通信。
可选的,还包括检测单元;
所述检测单元,用于在所述公网代理端建立所述第一数据通道和所述第二数据通道的关联关系之后,检测到所述第一数据通道连接异常时,则通过所述目标长连接向所述私网代理端发送数据通道断开指令。
可选的,还包括检测单元;
所述检测单元,用于在所述公网代理端建立所述第一数据通道和所述第二数据通道的关联关系之后,检测到所述第二数据通道连接异常时,则通过所述第一数据通道向所述客户端发送数据通道断开指令。
可选的,针对于每个所述长连接的客户端口的分配过程,所述装置包括接收单元、判断单元、作为单元和分配单元;
所述接收单元,用于接收所述私网代理端通过第一长连接发送的第一客户端口;其中,所述第一长连接为所有所述长连接中的任意一个长连接;
所述判断单元,用于判断所述第一客户端口是否被占用;若否,则触发所述作为单元;若是,则触发所述分配单元;
所述作为单元,用于开启所述第一客户端口作为与所述第一长连接的客户端口;
所述分配单元,用于随机分配一个第二客户端口作为所述第一长连接的客户端口,并通过所述第一长连接向所述私网代理端传输所述第二客户端口。
本发明实施例还提供了一种不同私网间通信的方法,包括:
客户端获取公网代理端的IP地址和目标客户端口;
所述客户端依据所述IP地址,向公网代理端的目标客户端口发起通道连接,以建立第一数据通道。
本发明实施例还提供了一种不同私网间通信的装置,包括获取单元和建立单元;
所述获取单元,用于获取公网代理端的IP地址和目标客户端口;
所述建立单元,用于依据所述IP地址,向公网代理端的目标客户端口发起通道连接,以建立第一数据通道。
本发明实施例还提供了一种不同私网间通信的方法,包括:
私网代理端向公网代理端的代理端口发起信令连接,以建立与所述公网代理端的长连接;其中,每个所述长连接分配有一个客户端口;
所述私网代理端接收到所述公网代理端通过目标长连接发送的携带有服务端口的通道建立指令时,则向所述公网代理端的服务端口发起第二通道连接,以建立第二数据通道;向相应的私网服务器发起第三通道连接,以建立第三数据通道;
所述私网代理端建立所述第二数据通道和所述第三数据通道的关联关系,以实现所述私网服务器与所述公网代理端之间的报文通信。
本发明实施例还提供了一种不同私网间通信的装置,包括建立单元、接收单元和关联单元;
所述建立单元,用于向公网代理端的代理端口发起信令连接,以建立与所述公网代理端的长连接;其中,每个所述长连接分配有一个客户端口;
所述接收单元,用于接收到所述公网代理端通过目标长连接发送的携带有服务端口的通道建立指令时,则触发所述建立单元向所述公网代理端的服务端口发起第二通道连接,以建立第二数据通道;向相应的私网服务器发起第三通道连接,以建立第三数据通道;
所述关联单元,用于建立所述第二数据通道和所述第三数据通道的关联关系,以实现所述私网服务器与所述公网代理端之间的报文通信。
本发明实施例还提供了一种不同私网间通信的系统,包括客户端、公网代理端和私网代理端;
所述客户端,用于获取公网代理端的IP地址和目标客户端口;依据所述IP地址,向公网代理端的目标客户端口发起通道连接,以建立第一数据通道;
所述公网代理端,用于监听代理端口,并维护私网代理端向所述代理端口建立的长连接;其中,每个所述长连接分配有一个客户端口;监听各所述客户端口,维护客户端向目标客户端口建立的第一数据通道,并查找与所述目标客户端口相对应的目标长连接;通过所述目标长连接向私网代理端发送携带有服务端口的通道建立指令,并监听所述服务端口,以便于维护所述私网代理端向所述服务端口建立的第二数据通道;建立所述第一数据通道和所述第二数据通道的关联关系,以实现所述客户端与所述私网代理端之间的报文通信;
所述私网代理端,用于向公网代理端的代理端口发起信令连接,以建立与所述公网代理端的长连接;接收到所述公网代理端通过目标长连接发送的携带有服务端口的通道建立指令时,则向所述公网代理端的服务端口发起第二通道连接,以建立第二数据通道;向相应的私网服务器发起第三通道连接,以建立第三数据通道;建立所述第二数据通道和所述第三数据通道的关联关系,以实现所述私网服务器与所述公网代理端之间的报文通信。
由上述技术方案可以看出,私网代理端向公网代理端的代理端口建立长连接,对于每个长连接分配一个客户端口;公网代理端监听各客户端口;当客户端需要访问某一个私网服务器时,则可以根据获取的公网代理端的IP地址和目标客户端口,向公网代理端的目标客户端口发起通道连接,以建立第一数据通道;此时公网代理端查找与目标客户端口相对应的目标长连接,并通过目标长连接向私网代理端发送携带有服务端口的通道建立指令;相应的,私网代理端接收到服务端口后,向公网代理端的服务端口发起第二通道连接,以建立第二数据通道,向对应的私网服务器发起第三通道连接,以建立第三数据通道;公网代理端可以将第一数据通道和第二数据通道进行关联;私网代理端可以将第二数据通道和第三数据通道进行关联,依据具有关联关系的第一数据通道、第二数据通道和第三数据通道,便可以实现客户端和私网服务器之间的报文通信。该技术方案在不增加VPN设备的情况下,便可以实现不同私网之间的报文通信。通过在长连接的基础上建立多路数据通道的方式实现不同私网间的通信,其适用性较强,并且无需对客户端和私网服务器做额外的配置,降低了不同私网间通信的难度,提升了不同私网间通信的便捷性。
附图说明
为了更清楚地说明本发明实施例,下面将对实施例中所需要使用的附图做简单的介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为现有技术提供的一种不同私网间通信的结构示意图;
图2为本发明实施例提供的一种不同私网间通信的方法的信令流程图;
图3为本发明实施例提供的一种客户端、公网代理端、私网代理端和私网服务器之间的连接关系示意图;
图4为本发明实施例提供的一种客户端、公网代理端、私网代理端和私网服务器之间的数据通道示意图;
图5为本发明实施例提供的一种用户通过本地客户端访问公司内网服务器的实现过程示意图。
图6为本发明实施例提供的一种适用于公网代理端的不同私网间通信的装置的结构示意图的结构示意图;
图7为本发明实施例提供的一种适用于客户端的不同私网间通信的装置的结构示意图的结构示意图;
图8为本发明实施例提供的一种适用于私网代理端的不同私网间通信的装置的结构示意图的结构示意图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下,所获得的所有其他实施例,都属于本发明保护范围。
为了使本技术领域的人员更好地理解本发明方案,下面结合附图和具体实施方式对本发明作进一步的详细说明。
接下来,详细介绍本发明实施例所提供的一种不同私网间通信的方法。图2为本发明实施例提供的一种不同私网间通信的方法的信令流程图,该方法包括:
S201:公网代理端监听代理端口。
不同私网中的设备可以通过SNAT连接到公网上,公网代理端可以看作是用于管理这些连接设备的公网代理节点。
在实际应用中,管理人员可以在公网代理端输入公网代理端的IP地址和代理端口,其中,代理端口用于接收私网代理端的信令连接。公网代理端通过监听代理端口,来获知是否有连接建立。
S202:私网代理端向公网代理端的代理端口发起信令连接,以建立与公网代理端的长连接。
私网代理端可以看作是实现公网代理端和私网服务器通信的管理单元。
私网代理端可以是设置于私网服务器中的模块,也可以是独立于私网服务器的节点。为了不增加私网服务器的额外配置,在本发明实施例中,均以私网代理端为独立于私网服务器的节点为例展开介绍。
与公网连接的私网可以有多个,每个私网中可以包含有一个或多个私网服务器,在具体实现中,可以针对于每个私网服务器设置一个私网代理端,或者是针对于每个私网设置一个私网代理端,也可以是针对所有私网服务器设置一个私网代理端。为方便后续介绍,均以所有私网服务器设置一个私网代理端为例展开说明。
外网的客户端与某个私网的报文通信,主要就是访问该私网的私网服务器,由于私网的服务器IP地址在公网和其他网络是不可见的,客户端无法根据私网的服务器IP地址访问私网服务器,因此,在本发明实施例,可以通过建立长连接的方式,实现公网代理端和私网代理端的通信。
在具体实现中,需要为每个私网服务器建立一个长连接,每个私网服务器建立长连接的方式类似,在本发明实施例中以一个私网服务器为例展开介绍。
以所有私网服务器均由一个私网代理端管理为例,管理人员可以在私网代理端输入参数信息,例如,各私网服务器的服务器IP地址和服务器端口,以及公网代理端的IP地址和代理端口,以启动私网代理端工作。
以一个私网服务器为例,私网代理端根据公网代理端的IP地址,向公网代理端的代理端口发起信令连接,以建立和公网代理端的长连接。
在具体实现中,可以采用传输控制协议(Transmission Control Protocol,TCP)或者是用户数据报协议(User Datagram Protocol,UDP)建立长连接,建立长连接的过程可以参见现有技术中基于TCP或UDP建立连接的技术,在此不再赘述。
在本发明实施例中,可以针对于每个私网服务器建立一条长连接,在私网代理端可以存储每条长连接所对应的私网服务器的IP地址和服务器端口,以便于私网代理端可以清楚的区分每条长连接对应于哪一个私网服务器。
S203:公网代理端维护私网代理端向代理端口建立的长连接,并监听各客户端口。
客户端、公网代理端、私网代理端和私网服务器之间的连接关系示意图如图3所示,图3中为了清楚的展示每个私网服务器对应一条长连接,是以每个私网服务器对应一个私网代理端为例。在实际应用中,所有私网服务器可以均由一个私网代理端进行管理。
公网代理端维护与私网代理端之间的长连接,通过长连接可以向私网代理端传输信令,信令可以用于公网代理端命令私网代理端开启和关闭临时数据通道。
每条长连接都有其对应的一个客户端口,公网代理端通过监听各客户端口,可以及时获取是否有客户端访问。
S204:客户端获取公网代理端的IP地址和目标客户端口。
以一个公司的私网为例,该私网中可以包含有一个或多个私网服务器,每个私网服务器有其对应的一个长连接,以及与该长连接相应的客户端口,不同职权的员工具有相应的访问权限,例如,员工A具有访问私网服务器1的权限,相应的,员工A可以获知私网服务器1的客户端口。
客户端可以是用户的手机、笔记本电脑等终端设备。结合上述举例,当员工A在家需要访问公司私网服务器1时,则可以在客户端输入公网代理端的IP地址和目标客户端口,该目标客户端口即为私网服务器1对应的客户端口。
S205:客户端依据IP地址,向公网代理端的目标客户端口发起通道连接,以建立第一数据通道。
客户端根据用户输入的公网代理端的IP地址和目标客户端口,便可向公网代理端的目标客户端口建立数据通道。
S206:公网代理端维护客户端向目标客户端口建立的第一数据通道,并查找与目标客户端口相对应的目标长连接。
在公网代理端保存有各长连接和客户端口的对应关系,公网代理端通过查询该对应关系,便可以获知该目标客户端口对应的是哪一个长连接。在本发明实施例中,可以将与目标客户端口相对应的长连接称作目标长连接。
S207:公网代理端通过目标长连接向私网代理端发送携带有服务端口的通道建立指令,并监听服务端口。
公网代理端查找到目标长连接后,可以为私网代理端分配一个服务端口,并通过该目标长连接向私网代理端发送通道建立指令,在该通道建立指令中携带有服务端口,以便于私网代理端可以通过该服务端口建立数据通道,从而实现与客户端的报文通信。
S208:私网代理端接收到公网代理端通过目标长连接发送的携带有服务端口的通道建立指令时,则向公网代理端的服务端口发起第二通道连接,以建立第二数据通道;向相应的私网服务器发起第三通道连接,以建立第三数据通道。
私网代理端获取到服务端口后,便可以向公网代理端的服务端口建立第二数据通道。
私网代理端根据长连接和私网服务器的对应关系,可以获知目标长连接对应的是哪个私网服务器,即客户端想要访问的是哪一个私网服务器。私网代理端根据存储的各私网服务器的IP地址和服务器端口,可以向与该目标长连接相对应的私网服务器的服务器端口建立第三数据通道。
在本发明实施例中可以基于TCP或UDP建立数据通道,其具体建立过程可以参见现有技术,在此不再赘述。
由于第二数据通道是建立于私网代理端和公网代理端之间,第三数据通过是建立于私网代理端和私网服务器之间,因此,私网代理端在建立这两个数据通道时,可以依次建立,也可以同时建立,在此不做限定。
需要说明的是,在本发明实施例中,对于“第二数据通道”和“第三数据通道”并非是先后顺序上的区分,而是为了区分两个数据通道进行的限定。
S209:私网代理端建立第二数据通道和第三数据通道的关联关系,以实现私网服务器与公网代理端之间的报文通信。
在实际应用中,一个长连接可以同时派生多个临时数据通道,为了实现私网代理端对各数据通道的有序管理,私网代理端在建立好第二数据通道和第三数据通道后,可以将第二数据通道和第三数据通道进行关联,以实现公网代理端到私网服务器之间的报文通信。
S210:公网代理端维护私网代理端向服务端口建立的第二数据通道;并建立第一数据通道和第二数据通道的关联关系,以实现客户端与私网代理端之间的报文通信。
公网代理端维护的数据通道可以有多个,为了实现各数据通道的有序管理,公网代理端可以根据目标客户端口和服务端口的对应关系,将第一数据通道和第二数据通道进行关联。
第一数据通道、第二数据通道和第三数据通道组成了如图4所示的“3路2桥”结构,形成“客户端->公网代理端->私网代理端->私网服务器”的报文转发双向通道,其中,Part1表示第一数据通道,Part2表示第二数据通道,Part3表示第三数据通道,客户端和私网服务器在此通道内通信,犹如在一个内网通信一样,可以适配大多数协议。
当客户端需要访问私网服务器时,可以将报文经由第一数据通道、第二数据通道和第三数据通道传输至私网服务器,该私网服务器对报文进行处理后,可以将处理结果通过第三数据通道、第二数据通道和第一数据通道反馈给客户端,从而实现客户端和私网服务器之间的报文通信。
以用户A需要在家访问公司内的安全壳协议(Secure Shell,SSH)服务器为例,其具体实现过程如图5所示:用户A在阿里云申请云主机(Elastic Compute Service,ECS),云主机提供互联网IP接入,IP地址为202.113.111.14,云主机上运行公网代理软件,开启29000端口为公网代理端的代理端口。假设用户A所在公司为电信专网接入,分配私网IP为192.168.0.1,端口为22。用户A在公司私网的192.168.0.2的主机上开启私网代理软件,运行命令类似:”./start_internal_proxy 202.113.111.14 29000 192.168.0.1 2250022”。当用户A回到家中,使用PC登陆家庭网络获得内部IP为10.0.0.25,开启SSH客户端,向202.113.111.14:50022发起连接,即可连接上用户所在公司的SSH服务器。同理,用户也可以使用此方法将公司的Telnet、samba、远程桌面等服务共享到公网上,在家庭等公司以外都可访问。
对于公网代理端而言,其维护的长连接有多条,对于每个长连接可以开启公网代理端上的一个端口作为客户端口。
在具体实现中,每个长连接所对应的客户端口既可以由公网代理端随机分配,也可以由私网代理端指定。
以公网代理端随机分配客户端口为例,私网代理端向公网代理端的代理端口建立长连接后,公网代理端可以针对于该长连接分配一个客户端口,并将该客户端口通过长连接传输给私网代理端。私网代理端可以通过展示客户端口的方式,告知私网用户,以便于私网用户后续可以依据该客户端口通过公网代理端来访问私网服务器。
以私网代理端指定客户端口为例,私网代理端向公网代理端的代理端口建立长连接后,私网代理端可以将指定的客户端口通过长连接传输给公网代理端,以便于公网代理端开放该客户端口给长连接。
由上述技术方案可以看出,私网代理端向公网代理端的代理端口建立长连接,对于每个长连接分配一个客户端口;公网代理端监听各客户端口;当客户端需要访问某一个私网服务器时,则可以根据获取的公网代理端的IP地址和目标客户端口,向公网代理端的目标客户端口发起通道连接,以建立第一数据通道;此时公网代理端查找与目标客户端口相对应的目标长连接,并通过目标长连接向私网代理端发送携带有服务端口的通道建立指令;相应的,私网代理端接收到服务端口后,向公网代理端的服务端口发起第二通道连接,以建立第二数据通道,向对应的私网服务器发起第三通道连接,以建立第三数据通道;公网代理端可以将第一数据通道和第二数据通道进行关联;私网代理端可以将第二数据通道和第三数据通道进行关联,依据具有关联关系的第一数据通道、第二数据通道和第三数据通道,便可以实现客户端和私网服务器之间的报文通信。该技术方案在不增加VPN设备的情况下,便可以实现不同私网之间的通信。通过在长连接的基础上建立多路数据通道的方式实现不同私网间的通信,其适用性较强,并且无需对客户端和私网服务器做额外的配置,降低了不同私网间通信的难度,提升了不同私网间通信的便捷性。
第一数据通道、第二数据通道和第三数据通道属于临时连接通道,当客户端结束对私网服务器的访问后,则可以断开第一数据通道,相应的,公网代理端检测到第一数据通道连接异常时,则可以通过目标长连接向私网代理端发送数据通道断开指令,以便于私网代理端将第二数据通道和第三数据通道断开。
在实际应用中,也可以由私网代理端主动切断第二数据通道和第三数据通道,相应的,当公网代理端检测到第二数据通道连接异常时,则可以通过第一数据通道向客户端发送数据通道断开指令,以便于客户端将第一数据通道断开。
在本发明实施例中,公网代理端通过检测第一数据通道和第二数据通道的连接情况,可以在当某个数据通道断开时,及时向客户端或私网代理端下发数据通道断开指令,以便于客户端或私网代理端将相关联的数据通道断开,从而释放数据通道所占用的端口。
在上述介绍中提及客户端口可以由私网代理端指定,当私网代理端有多个时,不同的私网代理端所指定的客户端口可能会出现重复的情况,针对于该种情况,可以由公网代理端自行分配。
以所有长连接中的任意一个长连接即第一长连接为例,在具体实现中,私网代理端可以通过第一长连接将第一客户端口传输给公网代理端,公网代理端接收到第一客户端口后,判断第一客户端口是否被占用。
第一客户端口未被占用时,则说明该私网代理端指定的第一客户端口未出现重复,此时公网代理端开启第一客户端口作为与第一长连接的客户端口。
由于第一客户端口为私网代理端指定的与第一长连接相对应的客户端口,在私网代理端中已经记录了第一长连接和第一客户端口的对应关系,因此,当公网代理端开启第一客户端口作为与第一长连接的客户端口后,无需再向私网代理端传输该第一客户端口。
第一客户端口被占用时,则说明该私网代理端指定的第一客户端口出现了重复,此时公网代理端可以随机分配一个第二客户端口作为第一长连接的客户端口,并通过第一长连接向私网代理端传输第二客户端口,以便于私网代理端记录第二客户端口和第一长连接的对应关系。
通过私网代理端指定客户端口,可以有效的保证客户端口的固定性,避免对于同一个私网服务器由于重新建立长连接导致分配不同的客户端口,同时通过公网代理端的检测,可以保证各长连接对应的客户端口的唯一性,从而保证后续报文传输的正确性。
图6为本发明实施例提供的一种不同私网间通信的装置的结构示意图,适用于公网代理端,包括监听单元61、查找单元62、发送单元63和关联单元64;
监听单元61,用于监听代理端口,并维护私网代理端向代理端口建立的长连接;其中,每个长连接分配有一个客户端口;监听单元61,还用于监听各客户端口,维护客户端向目标客户端口建立的第一数据通道;
查找单元62,用于查找与目标客户端口相对应的目标长连接;
发送单元63,用于通过目标长连接向私网代理端发送携带有服务端口的通道建立指令,并监听服务端口,以便于维护私网代理端向服务端口建立的第二数据通道;
关联单元64,用于建立第一数据通道和第二数据通道的关联关系,以实现客户端与私网代理端之间的报文通信。
可选的,还包括检测单元;
检测单元,用于在公网代理端建立第一数据通道和第二数据通道的关联关系之后,检测到第一数据通道连接异常时,则通过目标长连接向私网代理端发送数据通道断开指令。
可选的,还包括检测单元;
检测单元,用于在公网代理端建立第一数据通道和第二数据通道的关联关系之后,检测到第二数据通道连接异常时,则通过第一数据通道向客户端发送数据通道断开指令。
可选的,针对于每个长连接的客户端口的分配过程,装置包括接收单元、判断单元、作为单元和分配单元;
接收单元,用于接收私网代理端通过第一长连接发送的第一客户端口;其中,第一长连接为所有长连接中的任意一个长连接;
判断单元,用于判断第一客户端口是否被占用;若否,则触发作为单元;若是,则触发分配单元;
作为单元,用于开启第一客户端口作为与第一长连接的客户端口;
分配单元,用于随机分配一个第二客户端口作为第一长连接的客户端口,并通过第一长连接向私网代理端传输第二客户端口。
图6所对应实施例中特征的说明可以参见图2所对应实施例的相关说明,这里不再一一赘述。
由上述技术方案可以看出,公网代理端的监听单元监听代理端口,并维护私网代理端向代理端口建立的长连接;其中,每个长连接分配有一个客户端口;监听单元还用于监听各客户端口,维护客户端向目标客户端口建立的第一数据通道;查找单元,用于查找与目标客户端口相对应的目标长连接;发送单元,用于通过目标长连接向私网代理端发送携带有服务端口的通道建立指令,并监听服务端口,以便于维护私网代理端向服务端口建立的第二数据通道;关联单元,用于建立第一数据通道和第二数据通道的关联关系,以实现客户端与私网代理端之间的报文通信。该技术方案在不增加VPN设备的情况下,便可以实现不同私网之间的报文通信。通过在长连接的基础上建立多路数据通道的方式实现不同私网间的通信,降低了不同私网间通信的难度,提升了不同私网间通信的便捷性。
图7为本发明实施例提供的一种不同私网间通信的装置的结构示意图,适用于客户端,包括获取单元71和建立单元72;
获取单元71,用于获取公网代理端的IP地址和目标客户端口;
建立单元72,用于依据IP地址,向公网代理端的目标客户端口发起通道连接,以建立第一数据通道。
图7所对应实施例中特征的说明可以参见图2所对应实施例的相关说明,这里不再一一赘述。
由上述技术方案可以看出,客户端的获取单元,用于获取公网代理端的IP地址和目标客户端口;建立单元,用于依据IP地址,向公网代理端的目标客户端口发起通道连接,以建立第一数据通道,以便于公网代理端查找与该目标客户端口相对应的目标长连接,通过目标长连接向私网代理端发送携带有服务端口的通道建立指令,使得私网代理端建立起私网服务器和公网代理端的数据通道,从而实现客户端和私网服务器的报文通信。该技术方案在不增加VPN设备的情况下,便可以实现不同私网之间的报文通信。通过在长连接的基础上建立多路数据通道的方式实现不同私网间的通信,降低了不同私网间通信的难度,提升了不同私网间通信的便捷性。
图8为本发明实施例提供的一种不同私网间通信的装置的结构示意图,适用于私网代理端,包括建立单元81、接收单元82和关联单元83;
建立单元81,用于向公网代理端的代理端口发起信令连接,以建立与公网代理端的长连接;其中,每个长连接分配有一个客户端口;
接收单元82,用于接收到公网代理端通过目标长连接发送的携带有服务端口的通道建立指令时,则触发建立单元81向公网代理端的服务端口发起第二通道连接,以建立第二数据通道;向相应的私网服务器发起第三通道连接,以建立第三数据通道;
关联单元83,用于建立第二数据通道和第三数据通道的关联关系,以实现私网服务器与公网代理端之间的报文通信。
图8所对应实施例中特征的说明可以参见图2所对应实施例的相关说明,这里不再一一赘述。
由上述技术方案可以看出,私网代理端的建立单元,用于向公网代理端的代理端口发起信令连接,以建立与公网代理端的长连接;其中,每个长连接分配有一个客户端口;接收单元,用于接收到公网代理端通过目标长连接发送的携带有服务端口的通道建立指令时,则触发建立单元向公网代理端的服务端口发起第二通道连接,以建立第二数据通道;向相应的私网服务器发起第三通道连接,以建立第三数据通道;关联单元,用于建立第二数据通道和第三数据通道的关联关系,以实现私网服务器与公网代理端之间的报文通信,由于客户端可以向公网代理端的服务端口建立临时的第一数据通道,依据这三个数据通道可以实现客户端和私网服务器之间的报文通信。该技术方案在不增加VPN设备的情况下,便可以实现不同私网之间的报文通信。通过在长连接的基础上建立多路数据通道的方式实现不同私网间的通信,降低了不同私网间通信的难度,提升了不同私网间通信的便捷性。
本发明实施例还提供的一种不同私网间通信的系统,包括客户端、公网代理端和私网代理端;
客户端,用于获取公网代理端的IP地址和目标客户端口;依据IP地址,向公网代理端的目标客户端口发起通道连接,以建立第一数据通道;
公网代理端,用于监听代理端口,并维护私网代理端向代理端口建立的长连接;其中,每个长连接分配有一个客户端口;监听各客户端口,维护客户端向目标客户端口建立的第一数据通道,并查找与目标客户端口相对应的目标长连接;通过目标长连接向私网代理端发送携带有服务端口的通道建立指令,并监听服务端口,以便于维护私网代理端向服务端口建立的第二数据通道;建立第一数据通道和第二数据通道的关联关系,以实现客户端与私网代理端之间的报文通信;
私网代理端,用于向公网代理端的代理端口发起信令连接,以建立与公网代理端的长连接;接收到公网代理端通过目标长连接发送的携带有服务端口的通道建立指令时,则向公网代理端的服务端口发起第二通道连接,以建立第二数据通道;向相应的私网服务器发起第三通道连接,以建立第三数据通道;建立第二数据通道和第三数据通道的关联关系,以实现私网服务器与公网代理端之间的报文通信。
以上对本发明实施例所提供的一种不同私网间通信的方法、装置和系统进行了详细介绍。说明书中各个实施例采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似部分互相参见即可。对于实施例公开的装置而言,由于其与实施例公开的方法相对应,所以描述的比较简单,相关之处参见方法部分说明即可。应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下,还可以对本发明进行若干改进和修饰,这些改进和修饰也落入本发明权利要求的保护范围内。
专业人员还可以进一步意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、计算机软件或者二者的结合来实现,为了清楚地说明硬件和软件的可互换性,在上述说明中已经按照功能一般性地描述了各示例的组成及步骤。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本发明的范围。
结合本文中所公开的实施例描述的方法或算法的步骤可以直接用硬件、处理器执行的软件模块,或者二者的结合来实施。软件模块可以置于随机存储器(RAM)、内存、只读存储器(ROM)、电可编程ROM、电可擦除可编程ROM、寄存器、硬盘、可移动磁盘、CD-ROM、或技术领域内所公知的任意其它形式的存储介质中。
Claims (8)
1.一种不同私网间通信的方法,其特征在于,包括:
公网代理端监听代理端口,并维护私网代理端向所述代理端口建立的长连接;其中,每个所述长连接分配有一个客户端口;
所述公网代理端监听各所述客户端口,维护客户端向目标客户端口建立的第一数据通道,并查找与所述目标客户端口相对应的目标长连接;
所述公网代理端通过所述目标长连接向私网代理端发送携带有服务端口的通道建立指令,并监听所述服务端口,以便于维护所述私网代理端向所述服务端口建立的第二数据通道;其中,所述私网代理端向相应的私网服务器发起第三通道连接,以建立第三数据通道;并且建立所述第二数据通道和所述第三数据通道的关联关系;
所述公网代理端建立所述第一数据通道和所述第二数据通道的关联关系,依据所述第一数据通道和所述第二数据通道的关联关系以及所述第二数据通道和所述第三数据通道的关联关系,以实现所述客户端与所述私网服务器之间的报文通信。
2.根据权利要求1所述的方法,其特征在于,在所述公网代理端建立所述第一数据通道和所述第二数据通道的关联关系之后还包括:
所述公网代理端检测到所述第一数据通道连接异常时,则通过所述目标长连接向所述私网代理端发送数据通道断开指令。
3.根据权利要求1所述的方法,其特征在于,在所述公网代理端建立所述第一数据通道和所述第二数据通道的关联关系之后还包括:
所述公网代理端检测到所述第二数据通道连接异常时,则通过所述第一数据通道向所述客户端发送数据通道断开指令。
4.根据权利要求1所述的方法,其特征在于,每个所述长连接的客户端口的分配过程包括:
所述公网代理端接收所述私网代理端通过第一长连接发送的第一客户端口;其中,所述第一长连接为所有所述长连接中的任意一个长连接;
所述公网代理端判断所述第一客户端口是否被占用;
若否,则所述公网代理端开启所述第一客户端口作为与所述第一长连接的客户端口;
若是,则所述公网代理端随机分配一个第二客户端口作为所述第一长连接的客户端口,并通过所述第一长连接向所述私网代理端传输所述第二客户端口。
5.一种不同私网间通信的装置,其特征在于,包括监听单元、查找单元、发送单元和关联单元;
所述监听单元,用于监听代理端口,并维护私网代理端向所述代理端口建立的长连接;其中,每个所述长连接分配有一个客户端口;所述监听单元还用于监听各所述客户端口,维护客户端向目标客户端口建立的第一数据通道;
所述查找单元,用于查找与所述目标客户端口相对应的目标长连接;
所述发送单元通过所述目标长连接向私网代理端发送携带有服务端口的通道建立指令,并监听所述服务端口,以便于维护所述私网代理端向所述服务端口建立的第二数据通道;其中,所述私网代理端向相应的私网服务器发起第三通道连接,以建立第三数据通道;并且建立所述第二数据通道和所述第三数据通道的关联关系;
所述关联单元,用于建立所述第一数据通道和所述第二数据通道的关联关系,依据所述第一数据通道和所述第二数据通道的关联关系以及所述第二数据通道和所述第三数据通道的关联关系,以实现所述客户端与所述私网服务器之间的报文通信。
6.一种不同私网间通信的方法,其特征在于,包括:
私网代理端向公网代理端的代理端口发起信令连接,以建立与所述公网代理端的长连接;其中,每个所述长连接分配有一个客户端口;
所述私网代理端接收到所述公网代理端通过目标长连接发送的携带有服务端口的通道建立指令时,则向所述公网代理端的服务端口发起第二通道连接,以建立第二数据通道;向相应的私网服务器发起第三通道连接,以建立第三数据通道;其中,所述公网代理端维护客户端向目标客户端口建立的第一数据通道,并建立所述第一数据通道和所述第二数据通道的关联关系;
所述私网代理端建立所述第二数据通道和所述第三数据通道的关联关系,依据所述第一数据通道和所述第二数据通道的关联关系以及所述第二数据通道和所述第三数据通道的关联关系,以实现所述客户端与所述私网服务器之间的报文通信。
7.一种不同私网间通信的装置,其特征在于,包括建立单元、接收单元和关联单元;
所述建立单元,用于向公网代理端的代理端口发起信令连接,以建立与所述公网代理端的长连接;其中,每个所述长连接分配有一个客户端口;
所述接收单元,用于接收到所述公网代理端通过目标长连接发送的携带有服务端口的通道建立指令时,则触发所述建立单元向所述公网代理端的服务端口发起第二通道连接,以建立第二数据通道;向相应的私网服务器发起第三通道连接,以建立第三数据通道;其中,所述公网代理端维护客户端向目标客户端口建立的第一数据通道,并建立所述第一数据通道和所述第二数据通道的关联关系;
所述关联单元,用于建立所述第二数据通道和所述第三数据通道的关联关系,依据所述第一数据通道和所述第二数据通道的关联关系以及所述第二数据通道和所述第三数据通道的关联关系,以实现所述客户端与所述私网服务器之间的报文通信。
8.一种不同私网间通信的系统,其特征在于,包括客户端、公网代理端和私网代理端;
所述客户端,用于获取公网代理端的IP地址和目标客户端口;依据所述IP地址,向公网代理端的目标客户端口发起通道连接,以建立第一数据通道;
所述公网代理端,用于监听代理端口,并维护私网代理端向所述代理端口建立的长连接;其中,每个所述长连接分配有一个客户端口;监听各所述客户端口,维护客户端向目标客户端口建立的第一数据通道,并查找与所述目标客户端口相对应的目标长连接;通过所述目标长连接向私网代理端发送携带有服务端口的通道建立指令,并监听所述服务端口,以便于维护所述私网代理端向所述服务端口建立的第二数据通道;建立所述第一数据通道和所述第二数据通道的关联关系,以实现所述客户端与所述私网代理端之间的报文通信;
所述私网代理端,用于向公网代理端的代理端口发起信令连接,以建立与所述公网代理端的长连接;接收到所述公网代理端通过目标长连接发送的携带有服务端口的通道建立指令时,则向所述公网代理端的服务端口发起第二通道连接,以建立第二数据通道;向相应的私网服务器发起第三通道连接,以建立第三数据通道;建立所述第二数据通道和所述第三数据通道的关联关系,以实现所述私网服务器与所述公网代理端之间的报文通信。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201811407398.5A CN109474687B (zh) | 2018-11-23 | 2018-11-23 | 一种不同私网间通信的方法、装置和系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201811407398.5A CN109474687B (zh) | 2018-11-23 | 2018-11-23 | 一种不同私网间通信的方法、装置和系统 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN109474687A CN109474687A (zh) | 2019-03-15 |
CN109474687B true CN109474687B (zh) | 2020-08-28 |
Family
ID=65674356
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201811407398.5A Active CN109474687B (zh) | 2018-11-23 | 2018-11-23 | 一种不同私网间通信的方法、装置和系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN109474687B (zh) |
Families Citing this family (12)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110365741B (zh) * | 2019-06-13 | 2022-04-05 | 网宿科技股份有限公司 | 一种连接建立方法及中转服务器 |
CN110535959B (zh) * | 2019-08-30 | 2023-02-24 | 北京云中融信网络科技有限公司 | 一种传输数据的方法、装置和计算机可读存储介质 |
CN110708395A (zh) * | 2019-10-24 | 2020-01-17 | 深圳前海环融联易信息科技服务有限公司 | 数据获取方法、装置、计算机设备及存储介质 |
CN111405615B (zh) * | 2020-03-19 | 2021-10-22 | 联想(北京)有限公司 | 一种通信数据的传输方法、装置及存储介质 |
CN111464609A (zh) * | 2020-03-27 | 2020-07-28 | 北京金山云网络技术有限公司 | 数据通信方法、装置及电子设备 |
CN113037819B (zh) * | 2021-02-26 | 2022-09-23 | 杭州雾联科技有限公司 | 一种边缘算力资源共享方法、装置及设备 |
CN113452592B (zh) * | 2021-06-09 | 2022-02-25 | 北京奥星贝斯科技有限公司 | 混合云架构下的跨云数据访问方法及装置 |
CN113542095B (zh) * | 2021-06-22 | 2023-03-31 | 新华三信息安全技术有限公司 | 一种设备及其恢复隧道的方法 |
CN114025009B (zh) * | 2021-10-20 | 2024-04-16 | 北京奥星贝斯科技有限公司 | 转发请求的方法、系统、代理服务器和装置 |
US20230185954A1 (en) * | 2021-12-15 | 2023-06-15 | Bank Of America Corporation | Transmission of Sensitive Data in a Communication Network |
CN114338207A (zh) * | 2021-12-30 | 2022-04-12 | 中国南方电网有限责任公司 | 防病毒系统通信方法、装置、计算机设备和存储介质 |
CN115190162B (zh) * | 2022-06-27 | 2023-11-28 | 杭州溪塔科技有限公司 | 区块链中的代理服务配置方法及代理服务系统 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1764172A (zh) * | 2004-10-18 | 2006-04-26 | 北京万林克网络技术有限公司 | 穿越网络地址转换和防火墙的多媒体通信代理系统及方法 |
CN103023789A (zh) * | 2012-12-05 | 2013-04-03 | 北方工业大学 | 因特网中访问私网服务器的方法 |
CN105721625A (zh) * | 2016-02-03 | 2016-06-29 | 迈普通信技术股份有限公司 | 一种私网设备间通信的实现方法、私网设备及中心端设备 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9602468B2 (en) * | 2014-11-19 | 2017-03-21 | Facebook, Inc. | Techniques to authenticate a client to a proxy through a domain name server intermediary |
-
2018
- 2018-11-23 CN CN201811407398.5A patent/CN109474687B/zh active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1764172A (zh) * | 2004-10-18 | 2006-04-26 | 北京万林克网络技术有限公司 | 穿越网络地址转换和防火墙的多媒体通信代理系统及方法 |
CN103023789A (zh) * | 2012-12-05 | 2013-04-03 | 北方工业大学 | 因特网中访问私网服务器的方法 |
CN105721625A (zh) * | 2016-02-03 | 2016-06-29 | 迈普通信技术股份有限公司 | 一种私网设备间通信的实现方法、私网设备及中心端设备 |
Also Published As
Publication number | Publication date |
---|---|
CN109474687A (zh) | 2019-03-15 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN109474687B (zh) | 一种不同私网间通信的方法、装置和系统 | |
EP1444775B1 (en) | Method and apparatus to manage address translation for secure connections | |
US11546444B2 (en) | Traffic forwarding and disambiguation by using local proxies and addresses | |
EP2039127B1 (en) | Method for enabling communication between two network nodes via a network address translation device (nat) | |
CA2600710C (en) | Method for communication between an application and a client | |
JP2018518862A (ja) | グローバル仮想ネットワーク(gvn)において仮想インタフェースとアドバンストスマートルーティングとを提供するためのシステム及び方法 | |
US20110141944A1 (en) | Topology discovery of a private network | |
US11411957B2 (en) | Broker-coordinated selective sharing of data | |
US20120113977A1 (en) | Vpn device and vpn networking method | |
CN109450905B (zh) | 传输数据的方法和装置及系统 | |
CN113364741A (zh) | 一种应用访问方法及代理服务器 | |
EP2218214B1 (en) | Network location service | |
US11647069B2 (en) | Secure remote computer network | |
CN115022281B (zh) | 一种nat穿透的方法、客户端及系统 | |
US20170012936A1 (en) | Sharing media among remote access clients in a universal plug and play environment | |
US11716222B2 (en) | Communications bridge | |
US10375175B2 (en) | Method and apparatus for terminal application accessing NAS | |
CN110830317B (zh) | 一种上网行为管理系统、设备及方法 | |
US20160316021A1 (en) | Remote out of band management | |
CN114025010B (zh) | 建立连接的方法和网络设备 | |
CN109120738B (zh) | Dhcp服务器及其进行网络内部设备管理的方法 | |
CN110324826B (zh) | 一种内网访问方法及相关装置 | |
CN113055427A (zh) | 一种基于业务的服务器集群接入方法及装置 | |
CN115883256B (zh) | 基于加密隧道的数据传输方法、装置及存储介质 | |
CN113612813B (zh) | 分布式跨网络访问方法、装置、系统及存储介质 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |