CN114025009A - 转发请求的方法、系统、代理服务器和装置 - Google Patents
转发请求的方法、系统、代理服务器和装置 Download PDFInfo
- Publication number
- CN114025009A CN114025009A CN202111221514.6A CN202111221514A CN114025009A CN 114025009 A CN114025009 A CN 114025009A CN 202111221514 A CN202111221514 A CN 202111221514A CN 114025009 A CN114025009 A CN 114025009A
- Authority
- CN
- China
- Prior art keywords
- target
- machine
- virtual
- address
- proxy server
- 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.)
- Granted
Links
- 238000000034 method Methods 0.000 title claims abstract description 38
- 238000013507 mapping Methods 0.000 claims description 25
- 238000004891 communication Methods 0.000 abstract description 15
- 238000010586 diagram Methods 0.000 description 9
- 230000003068 static effect Effects 0.000 description 9
- 230000003993 interaction Effects 0.000 description 7
- 238000012423 maintenance Methods 0.000 description 7
- 238000007726 management method Methods 0.000 description 7
- 238000004590 computer program Methods 0.000 description 4
- 230000008878 coupling Effects 0.000 description 3
- 238000010168 coupling process Methods 0.000 description 3
- 238000005859 coupling reaction Methods 0.000 description 3
- 238000013499 data model Methods 0.000 description 3
- 230000008569 process Effects 0.000 description 3
- 230000000694 effects Effects 0.000 description 2
- 238000005516 engineering process Methods 0.000 description 2
- 238000012544 monitoring process Methods 0.000 description 2
- 238000006467 substitution reaction Methods 0.000 description 2
- 238000012546 transfer Methods 0.000 description 2
- 239000002699 waste material Substances 0.000 description 2
- 241000700605 Viruses Species 0.000 description 1
- 230000005540 biological transmission Effects 0.000 description 1
- 230000008859 change Effects 0.000 description 1
- 238000013500 data storage Methods 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 239000000835 fiber Substances 0.000 description 1
- 230000006870 function Effects 0.000 description 1
- 230000007246 mechanism Effects 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 238000012545 processing Methods 0.000 description 1
- 239000004065 semiconductor Substances 0.000 description 1
- 239000007787 solid Substances 0.000 description 1
- 238000012795 verification Methods 0.000 description 1
Images
Landscapes
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
本公开披露了一种转发请求的方法、系统、代理服务器和装置。所述方法应用于代理服务器,所述代理服务器为基于SOCKS协议的代理服务器,所述代理服务器与源网络中的源机器和第一目标网络中的目标机器通信连接,所述第一目标网络为多个目标网络中的所述目标机器所属的目标网络,所述方法包括:与所述源机器建立SOCKS连接;从所述源机器接收所述目标机器的虚拟目标地址,所述虚拟目标地址用于指示所述第一目标网络的标识和所述目标机器的实际目标地址;根据所述虚拟目标地址,确定所述目标机器的实际目标地址;向所述目标机器转发所述源机器的请求。
Description
技术领域
本公开涉及网络通信技术领域,具体涉及一种转发请求的方法、系统、代理服务器和装置。
背景技术
现有技术中,代理服务器将源机器的请求转发给目标机器时,采用基于端口静态映射的配置方案,将代理服务器监听的端口和对应的实际目标地址信息配置于代理服务器的系统文件中。由于端口的数目有限,基于端口静态映射的配置方案并不适用于网络中机器规模较大的场景。
其次,采用基于端口静态映射的配置方案均应用于单目标网络的场景。然而,在一些场景中,代理服务器同时和多个目标网络连通,需要从多目标网络中寻找对应的目标机器进行通信或数据交互。在这种情况下,代理服务器如何根据源机器的请求,在多个目标网络中寻址到对应的目标网络中的目标机器是亟待解决的问题。
发明内容
有鉴于此,本公开实施例提供一种转发请求的方法、系统、代理服务器和装置,能够适用于网络中机器规模较大的场景以及多目标网络的场景。
第一方面,提供一种转发请求的方法,所述方法应用于代理服务器,所述代理服务器为基于SOCKS协议的代理服务器,所述代理服务器与源网络中的源机器和第一目标网络中的目标机器通信连接,所述第一目标网络为多个目标网络中的所述目标机器所属的目标网络,所述方法包括:与所述源机器建立SOCKS连接;从所述源机器接收所述目标机器的虚拟目标地址,所述虚拟目标地址用于指示所述第一目标网络的标识和所述目标机器的实际目标地址;根据所述虚拟目标地址,确定所述目标机器的实际目标地址;向所述目标机器转发所述源机器的请求。
第二方面,提供一种转发请求的系统,所述转发请求的系统包括代理服务器、源机器以及目标机器,所述代理服务器为基于SOCKS协议的代理服务器,所述代理服务器与源网络中的所述源机器和第一目标网络中的所述目标机器通信连接,所述第一目标网络为多个目标网络中的所述目标机器所属的目标网络,所述源机器,用于与所述代理服务器建立SOCKS连接,并向所述代理服务器发送所述目标机器的虚拟目标地址,所述虚拟目标地址用于指示所述第一目标网络的标识和所述目标机器的实际目标地址;所述代理服务器,用于根据所述虚拟目标地址,确定所述目标机器的实际目标地址,并向所述目标机器转发所述源机器的请求。
第三方面,提供一种代理服务器,所述代理服务器为基于SOCKS协议的代理服务器,所述代理服务器与源网络中的源机器和第一目标网络中的目标机器通信连接,所述第一目标网络为多个目标网络中的所述目标机器所属的目标网络,所述代理服务器包括:连接单元,被配置为与所述源机器建立SOCKS连接;接收单元,被配置为从所述源机器接收所述目标机器的虚拟目标地址,所述虚拟目标地址用于指示所述第一目标网络的标识和所述目标机器的实际目标地址;确定单元,被配置为根据所述虚拟目标地址,确定所述目标机器的实际目标地址;转发单元,被配置为向所述目标机器转发所述源机器的请求。
第四方面,提供一种转发请求的装置,包括存储器和处理器,所述存储器中存储有可执行代码,所述处理器被配置为执行所述可执行代码,以实现如第一方面所述的方法。
第五方面,提供一种计算机可读存储介质,其上存储有可执行代码,当所述可执行代码被执行时,能够实现如第一方面所述的方法。
第六方面,提供一种计算机程序产品,包括可执行代码,当所述可执行代码被执行时,能够实现如第一方面所述的方法。
本公开实施例提供了一种转发请求的方法,能够根据源机器发送的虚拟目标地址,确定目标机器的实际目标地址并进行请求转发。本公开的技术方案基于虚拟目标地址进行请求转发,能够适用于网络中机器规模较大的场景。当代理服务器同时和多个目标网络连通时,虚拟目标地址能够指示目标机器所在的目标网络以及目标机器的实际目标地址,保证代理服务器能够在多个目标网络中寻址到对应的目标网络中的目标机器。
附图说明
图1为本公开一实施例提供的系统架构的示例图。
图2为本公开另一实施例提供的系统架构的示例图。
图3为本公开一实施例提供的转发请求的方法的流程示意图。
图4为本公开另一实施例提供的转发请求的方法的流程示意图。
图5为本公开实施例提供的生成虚拟目标地址的流程示意图。
图6为本公开实施例提供的代理服务器的结构示意图。
图7为本公开实施例提供的网络设备的结构示意图。
图8为本公开实施例提供的转发请求的装置的结构示意图。
具体实施方式
下面将结合本公开实施例中的附图,对本公开实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅是本公开一部分实施例,而不是全部的实施例。
随着网络技术的发展,人们可以从网络获取更多的资源和信息。但是,由于共有网络资源中存在一些安全隐患(例如,用户访问某网站,网站在返回信息时可能会同时将病毒信息返回);或者,在企业局域网中,需要对局域网中的各源机器能够访问的网站进行控制,都需要使用代理服务器(proxy server)进行通信。换句话说,代理服务器是网络资源的中转站,可以代理源机器去获取网络资源。
图1是本公开一实施例提供的一种转发请求的系统架构的示例图。如图1所示,该系统100可以包括源机器110、目标机器120以及代理服务器130。源机器110可以通过代理服务器130与目标机器120进行通信和数据交互。
源机器110也可以称为客户端。源机器110可以通过代理服务器130请求访问目标机器120,比如请求访问目标机器120的数据。源机器110例如可以是服务器或其他类型的计算机。例如,源机器110可以是手机、个人电脑、笔记本电脑、平板电脑等。
目标机器120可以是指源机器110需要访问的实际的机器。当源机器110通过代理服务器130请求访问目标机器120的数据时,目标机器120可以将源机器110请求的数据通过代理服务器130转发给源机器110。目标机器120可以是服务器或其他具有计算能力的电子设备。
源机器110与目标机器120位于不同的网络中。例如,源机器110可以位于源网络中,目标机器120可以位于目标网络中。本公开对源网络和目标网络的类型不做具体限定,例如源网络和目标网络都可以是局域网,源机器110和目标机器120位于不同的局域网中。在一些实施例中,源网络和目标网络可以是指不同的虚拟私有云(virtual privatecloud,VPC)。例如,在云计算的场景下,源机器110和目标机器120可以位于不同的VPC中。
VPC可以是指独立于公网的网络或虚拟网络,例如,VPC可以是指私有云,也可以是指公有云中自定义的逻辑隔离的网络空间。在VPC中,用户可以自定义布设和管理该VPC中的机器,例如,用户可以自定义该VPC中的机器的网段划分、IP地址和路由策略等。
通常情况下,同一VPC内的机器可以相互通信或进行数据交互,而位于不同VPC之间的机器不能直接进行通信和数据交互。作为一种实现方式,不同VPC之间的机器可以通过专线连接的方式进行通信和数据交互,例如在不同VPC之间架设专用的物理线路。作为另一种实现方式,不同VPC之间的机器可以通过代理服务器进行通信和数据交互。
代理服务器130可以用于转发源机器110的请求或将目标机器120发来的数据转发给源机器110。代理服务器130可以通过网络与源机器110和目标机器120通信连接。代理服务器130可以和源机器110或目标机器120位于同一网络中。例如,代理服务器130可以和源机器110位于源网络中。
代理服务器130可以基于不同的代理协议进行网络通信或数据转发。例如,代理服务器130可以基于HTTP/HTTPS代理协议,对应的代理服务器130可以称为HTTP/HTTPS代理服务器;或者,代理服务器130可以基于SOCKS代理协议,对应的代理服务器130可以称为SOCKS代理服务器。
在一些实施例中,代理服务器130可以采用SOCKS代理协议与源机器110建立SOCKS连接。基于SOCKS代理协议的代理服务器工作在开放式系统互联通信(open systeminterconnection,OSI)参考模型的会话层,能够保证在传输控制协议(transmissioncontrol protocol,TCP)和用户数据报协议(user datagram protocol,UDP)域中的客户机/服务器应用程序能更方便安全地使用网络防火墙。
基于SOCKS代理协议的代理服务器包括SOCKS4代理服务器和SOCKS5代理服务器。SOCKS4代理服务器只支持TCP协议,而SOCKS5代理服务器既可以支持TCP协议又可以支持UDP协议。此外,SOCKS5代理服务器还可以支持身份验证机制、服务器端域名解析等。
基于SOCKS代理协议的代理服务器具备在代理过程中支持源机器传递目标地址和固定端口的能力。此外,基于SOCKS代理协议的代理服务器只是简单地传递数据包而不必关心是何种应用层的协议,而且,目前主要的应用协议HTTP,MySQL,SSH协议等都可以支持基于SOCKS代理协议的代理服务器。因此,基于SOCKS代理协议的代理服务器使用更加灵活、通用,具有比较广泛的应用场景。
相关技术中,源机器110和目标机器120在使用代理服务器130进行通信或数据交互时,采用基于端口静态映射的配置方案,将代理服务器130监听的端口和对应的目标机器120的实际目标地址信息配置于代理服务器130的系统文件中。例如,源机器110和目标机器120可以基于Nginx、Ngrok等反向代理服务器进行通信或数据交互。
具体地,采用反向代理服务器进行通信或数据交互时,需要手工指定配置代理服务器监听某个端口,并将从该端口接收的请求转发至对应的目标地址。例如,源机器110基于Ngrok代理服务器请求访问目标机器120时,用户预先在Ngrok代理服务器中手工配置了如下信息:“8000>192.168.1.4:80”,则Ngrok代理服务器会将从8000端口监听到的请求转发至目标机器192.168.1.4的80端口。
采用基于端口静态映射的配置方案进行源机器和目标机器之间的通信或数据交互时,由于监听的端口和对应的目标机器的实际目标地址信息配置于代理服务器的系统文件中,导致每次修改配置信息后需要重启代理服务器以使配置生效。此外,如果源机器只是临时访问一个目标机器,访问结束后需要用户手工关闭监听的端口和该临时访问的目标机器的实际目标地址的配置信息,否则会浪费网络端口资源。或者,当目标网络中新增一个目标机器时,需要新增配置项,以使源机器能够和该新增的目标机器进行通信或数据交互。
端口号的理论范围从0到65535,即代理服务器的端口数目有限。采用基于端口静态映射的配置方案进行源机器和目标机器之间的通信或数据交互时,由于端口的数目有限,导致该方案能够代理的目标机器的数量有限。也就是说,当目标网络中机器规模较大时,基于端口静态映射的配置方案并不适用。
现有的基于端口静态映射的配置方案均应用于单目标网络的场景,即代理服务器接收到源机器的请求后,从单一的目标网络中寻找对应的目标机器并进行通信或数据交互。然而,在一些实施例中,代理服务器需要同时和多个目标网络连通,从多目标网络中寻找对应的目标机器进行通信或数据交互。
例如,在云计算的场景下,云厂商可以通过云数据库进行云上销售、为云用户提供服务等。云厂商可以在一个源网络(源VPC)中部署和提供一套管控运维服务系统,以便于对云用户进行统一的安全管理。云用户可以基于该管控运维服务系统创建自己的数据库集群,其中不同云用户创建的数据库集群位于不同的目标网络(目标VPC)中。管控运维服务系统中的源机器可以通过代理服务器同时连通到各数据库集群所在的目标VPC。
在这种情况下,管控运维服务系统中的源机器需要和某一目标机器进行通信或数据交互时,如果采用现有的基于端口静态映射的配置方案,需要设置多个代理服务器分别将管控运维服务系统和各目标VPC连通,导致整个系统的运维成本较高。例如,当管控运维服务系统同时连通3个独立的目标VPC时,需要设置3个代理服务器。
为了节约成本,如图2所示,可以设置一个代理服务器同时与多个目标网络,(例如,多个目标VPC)连通,比如,在图2中,代理服务器可以同时和目标VPC1、目标VPC2以及目标VPC3连通,通过一个代理服务器进行源机器和不同目标VPC中的目标机器的通信和数据交互。
如前文所述,在不同的VPC中,用户可以自定义VPC中的机器的网段划分、IP地址和路由策略等,因此,在不同的VPC中,可能存在IP地址相同的机器(比如,VPC1和VPC2中IP地址端存在重复部分,导致VPC1和VPC2中都存在IP地址为192.168.0.9的机器)。在这种情况下,代理服务器接收到源机器的请求后,如何根据源机器的请求,在多个目标VPC中寻址到对应的VPC网络中的目标机器,同样是亟待解决的问题。
为了解决上述问题,本公开实施例提供一种转发请求的方法,能够根据源机器发送的虚拟目标地址,确定目标机器的实际目标地址并进行请求转发。本公开的技术方案基于虚拟目标地址进行请求转发,能够适用于网络中机器规模较大的场景。当代理服务器同时和多个目标网络连通时,虚拟目标地址能够指示目标机器所在的目标网络以及目标机器的实际目标地址,保证代理服务器能够在多个目标网络中寻址到对应的目标网络中的目标机器。
下面结合图3,对本公开实施例提供的转发请求的方法进行详细描述。图3所示的方法能够应用于图1和图2所示的系统架构中。
在本公开实施例中,代理服务器可以是基于SOCKS协议的代理服务器。代理服务器与源网络中的源机器和第一目标网络中的目标机器通信连接。在多个目标网络的场景中,第一目标网络可以是指目标机器所处的目标网络,换句话说,第一目标网络可以是指多个目标网络中的目标机器所属的目标网络。
在步骤310,源机器与代理服务器建立SOCKS连接。
在一些实施例中,代理服务器可以是基于SOCKS协议的代理服务器,使得代理服务器在代理过程中可以支持源机器传递目标地址和固定端口。
源机器可以与代理服务器建立SOCKS连接。具体地,作为一种实现方式,如图4所示,源机器可以向代理服务器发送SOCKS连接请求。以在应用层使用HTTP协议为例,源机器在应用层可以通过curl工具发起http请求“curl--socks5 192.168.0.5:1080http://[::2]:8080/hello”。在该请求中,源机器请求与IP地址为192.168.0.5:1080的代理服务器建立SOCKS5连接。
代理服务器接收到源机器的连接请求后,可以基于SOCKS协议完成与源机器的连接(或称,完成SOCKS协议的握手和认证)。当源机器和代理服务器建立SOCKS连接后,源机器可以继续把虚拟目标地址发送给代理服务器,代理服务器基于该虚拟目标地址确定目标机器的实际目标地址,并将源机器的请求转发给目标机器。
在步骤320,源机器向代理服务器发送目标机器的虚拟目标地址。
虚拟目标地址可以用于指示第一目标网络的标识和目标机器的实际目标地址。本公开对虚拟目标地址的形式不做具体限定。在一些实施例中,虚拟目标地址可以是虚拟主机名(或者,也可以是虚拟域名)。例如,虚拟目标地址可以表达为“vpc1-machine2”。在一些实施例中,虚拟目标地址可以是虚拟IP地址。例如,虚拟目标地址可以是IPV4地址或IPV6地址。在一些实施例中,虚拟目标地址还可以包括虚拟的端口号,即虚拟目标地址可以是虚拟主机名和虚拟端口号的组合,或者可以是虚拟IP地址和虚拟端口号的组合。例如,当虚拟目标地址为虚拟主机名和虚拟端口号的组合时,虚拟目标地址可以表示为“vpc1-machine2:8080”;当虚拟目标地址为虚拟IP地址和虚拟端口号的组合时,虚拟目标地址可以表示为“[::2]:8080”。
与采用端口映射的方式不同,虚拟目标地址可以表示的地址范围无限,因此,采用虚拟目标地址映射的方式可以适用于目标网络下机器规模较大的场景。
虚拟目标地址可以用来映射目标机器的实际目标地址。在一些实施例中,当代理服务器同时和多个目标网络连通时,虚拟目标地址可以用来映射某个目标网络内某台目标机器的实际目标地址。换句话说,当代理服务器同时和多个目标网络连通时,目标机器所处的目标网络可以是指与代理服务器通信连接的多个目标网络中的第一目标网络。目标机器位于多个目标网络中的第一目标网络时,虚拟目标地址可以用来映射第一目标网络的标识和位于第一目标网络中的目标机器的实际目标地址。例如,在图2所示的系统架构中,虚拟目标地址[::2]:8080可以用来映射位于VPC1中,地址为10.22.12.11:8080的目标机器。
在一些实施例中,当目标机器所处的目标网络是指与代理服务器通信连接的多个目标网络中的第一目标网络时,代理服务器还可以根据虚拟目标地址,确定第一目标网络的标识。例如,根据虚拟目标地址,确定出目标机器位于VPC1中。
本公开对虚拟目标地址的生成方式不做具体限定。作为一种实现方式,源机器可以基于目标机器的实际目标地址,通过查询预先记录的配置信息,确定该目标机器对应的虚拟目标地址。
预先记录的配置信息可以用于存储虚拟目标地址和实际目标地址的映射关系。作为一种实现方式,可以将预先记录的配置信息配置于数据库中。本公开对数据库的存储类型不做限定。例如,数据库可以是关系型数据库,比如MySQL,Oracle等;或者,数据库也可以是非关系型(NoSql)数据库,比如Redis,Memcahed等。
本公开对配置信息中的数据模型的结构不做具体限定,只要数据模型的结构能够表达虚拟目标地址和实际目标地址的映射关系即可。作为一个示例,配置信息中的数据模型可以设计为表1所示的结构。
表1
| 虚拟目标地址 | 实际目标地址 | 目标网络的标识 |
| [::2]:8080 | 10.22.12.11:8080 | VPC1 |
| [::1]:8000 | 198.168.0.0:80 | VPC2 |
如表1所示,假设源机器想要和位于VPC1中、实际目标地址为10.22.12.11:8080的目标机器进行通信或数据交互,根据表1中的配置信息,源机器可以查询到该目标机器对应的虚拟目标地址为[::2]:8080。
作为另一种实现方式,源机器可以利用预设的算法,基于目标机器的实际目标地址计算该目标机器对应的虚拟目标地址。图5为本公开实施例提供的一种利用预设的算法计算虚拟目标地址的流程示意图。
如图5所示,在步骤510至步骤520,获取目标机器的实际目标地址,若实际目标地址为IP地址和端口号的组合形式,分离IP地址和端口号。
以目标机器位于VPC1内、目标机器的实际目标地址为10.22.12.11:8080为例,作为一种实现方式,可以按照IP地址和端口号之间的分隔符对目标机器的IP地址和端口号进行分离。例如,将目标机器的实际目标地址10.22.12.11:8080的IP地址和端口号按照分隔符分离后,可以表达为:10.22.12.11和8080。
在步骤530,将目标机器的IP地址转化为数值类型。例如,可以转化为整型数值,如32位整型数值等。
本公开对IP地址转化为数值类型的方式不做具体限定。例如,可以将IP地址的每段看成0-255之间的整数,将每段拆分成一个二进制形式的数值并组合起来,然后把这个二进制数转变成一个十进制的长整数(例如,32为整型数值)。下面以IP地址为10.22.12.11为例进行说明。
如表2所示,IP地址10.22.12.11共分为四段,其中第一段为10,第二段为22,第三段为12,第四段为11。将这四段分别拆分成二进制形式后的数值如表2所示,将第一段的10拆分成二进制数后为00001010,将第二段的22拆分成二进制数后为00010110,第三段的12拆分成二进制数后为00001100,将第四段的11拆分成二进制数后为00001011。
表2
| 每段数字 | 对应的二进制数 |
| 10 | 00001010 |
| 22 | 00010110 |
| 12 | 00001100 |
| 11 | 00001011 |
接着,可以将这四个二进制的数值按照顺序进行组合,组合后可以表示为00001010 00010110 00001100 00001011。最后,可以将该组合后的数值转化为十进制的整型数值,转化后为169217035,即IP地址10.22.12.11转化为数值类型后可以表示为169217035。
在步骤540至步骤550,获取目标机器的所处的目标网络的标识,并将该目标网络的标识、IP地址对应的数值和端口号进行拼接。拼接后形成的字符串即为虚拟目标地址。
继续以目标机器位于VPC1内、目标机器的实际目标地址为10.22.12.11:8080为例,获取到目标机器所处的目标网络的标识为VPC1后,将该标识、IP地址对应的数值和端口号进行拼接,形成的字符串为vpc1-169217035-8080,则生成的虚拟目标地址为vpc1-169217035-8080。
利用预设的算法,基于目标机器的实际目标地址计算该目标机器对应的虚拟目标地址时,计算出来的虚拟目标地址要符合地址规范。作为一个示例,虚拟目标地址要符合主机名规范,例如,虚拟目标名称中不能包含下划线、中文字符等。
在步骤330至步骤340,代理服务器根据虚拟目标地址,确定目标机器的实际目标地址,并向目标机器转发源机器的请求。
在一些实施例中,可以根据虚拟目标地址,通过查询预先记录的配置信息,确定目标机器的实际目标地址。
继续参见表1,假设源机器向代理服务器发送的目标机器的虚拟目标地址为[::2]:8080,代理服务器接收到该虚拟目标地址后,查询如表1所示的预先记录的配置信息,得到虚拟目标地址[::2]:8080对应的实际目标地址是10.22.12.11:8080,且该目标机器位于VPC1中。则代理服务器会根据查询的结果,将源机器的请求转发给VPC1中的IP地址为10.22.12.11:8080的目标机器。
在多目标网络的场景中,不同目标网络下可能存在地址相同的目标机器,因此,在预先记录的配置信息中同时记录虚拟目标地址和目标网络的标识以及实际目标地址的映射关系,可以避免不同目标网络中存在相同IP地址的机器时,代理服务器无法寻址到对应的目标网络中的目标机器。如果代理服务器代理的目标网络只有一个、或者代理服务器不支持同时代理多个目标网络,那么可以在配置信息中不配置虚拟目标地址和目标网络的标识的映射关系,或者查询时忽略该目标网络的标识。
采用这种基于动态配置的映射方式确定实际目标地址,当虚拟目标地址和实际目标地址的映射关系发生变化时,监听端口并未变化,从而无需重启代理服务器以使配置生效。此外,代理服务器只需固定监听一个端口,可以减少网络端口资源的占用和浪费。
在一些实施例中,可以根据虚拟目标地址,利用预设的算法,计算目标机器的实际目标地址。
如前文所述,利用预设的算法,可以基于目标机器的实际目标地址计算该目标机器对应的虚拟目标地址。反过来,利用该预设的算法,也可以逆向根据虚拟目标地址计算出目标机器的实际目标地址。
本公开对预设算法的类型不做具体限定,只要能够根据实际目标地址唯一确定出对应的虚拟目标地址,反之也可以根据虚拟目标地址唯一确定出对应的实际目标地址即可。
当源机器需要和目标机器进行通信或数据交互时,源机器可以基于算法的映射关系,将目标机器的实际目标地址转化为虚拟目标地址,然后将该虚拟目标地址发送给代理服务器。代理服务器接收到源机器的请求后,根据源机器发送的虚拟目标地址,利用预设的算法反向计算该虚拟目标地址对应的目标机器的实际目标地址,例如根据虚拟目标地址“vpc1-169217035-8080”反向计算出实际目标地址为VPC1网络中的10.22.12.11机器的8080端口。计算出实际目标地址后,代理服务器便可以向该实际目标地址转发源机器的请求。
采用这种基于算法映射的方式确定实际目标地址,同样能够保证虚拟目标地址和实际目标地址的映射关系发生变化时,监听端口并未变化,从而无需重启代理服务器以使配置生效以及能够避免网络端口资源占用和浪费。此外,采用基于算法映射的方式确定实际目标地址,当源机器要访问新增的目标机器时,无需新增一个配置项,以便于节省资源。
上文结合图1至图5,详细描述了本公开的方法实施例,下面结合图6至图8,详细描述本公开的装置实施例。应理解,方法实施例的描述与装置实施例的描述相互对应,因此,未详细描述的部分可以参见前面方法实施例。
本公开实施例提供了一种转发请求的系统。该转发请求的系统可以包括代理服务器、源机器以及目标机器。
在该系统中,代理服务器为基于SOCKS协议的代理服务器,代理服务器与源网络中的源机器和第一目标网络中的目标机器通信连接,该第一目标网络为多个目标网络中的目标机器所属的目标网络。
在该系统中,源机器可以用于与代理服务器建立SOCKS连接,并向代理服务器发送目标机器的虚拟目标地址,该虚拟目标地址用于指示第一目标网络的标识和目标机器的实际目标地址。
在该系统中,代理服务器可以用于根据虚拟目标地址,确定目标机器的实际目标地址,并向该目标机器转发源机器的请求。
可选地,代理服务器进一步被配置为根据虚拟目标地址,通过查询预先记录的配置信息,确定实际目标地址,其中,该配置信息记录有虚拟目标地址和实际目标地址的映射关系。
可选地,代理服务器进一步被配置为根据虚拟目标地址,利用预设的算法,计算实际目标地址。
可选地,虚拟目标地址为虚拟主机名或虚拟IP地址。
可选地,虚拟目标地址还包括虚拟的端口号。
可选地,源网络和/或多个目标网络为虚拟私有云VPC。
图6是本公开一实施例提供的代理服务器的结构示意图。图6的代理服务器600为基于SOCKS协议的代理服务器。代理服务器600与源网络中的源机器和第一目标网络中的目标机器通信连接,该第一目标网络为多个目标网络中的该目标机器所属的目标网络。该代理服务器600可以包括连接单元610,接收单元620,确定单元630以及转发单元640。下面对这些单元进行详细介绍。
连接单元610可以被配置为与源机器建立SOCKS连接。
接收单元620可以被配置为从源机器接收目标机器的虚拟目标地址,该虚拟目标地址用于指示第一目标网络的标识和目标机器的实际目标地址。
确定单元630可以被配置为根据虚拟目标地址,确定目标机器的实际目标地址。
转发单元640可以被配置为向目标机器转发源机器的请求。
可选地,确定单元630可以进一步被配置为根据虚拟目标地址,通过查询预先记录的配置信息,确定实际目标地址,其中,该配置信息记录有该虚拟目标地址和该实际目标地址的映射关系。
可选地,确定单元630可以进一步被配置为根据虚拟目标地址,利用预设的算法,计算实际目标地址。
可选地,虚拟目标地址为虚拟主机名或虚拟IP地址。
可选地,虚拟目标地址还包括虚拟的端口号。
可选地,源网络和/或目标网络为虚拟私有云VPC。
图7是本公开一实施例提供的网络设备的结构示意图。图7的网络设备700为源机器,源机器通过代理服务器与第一目标网络中的目标机器通信连接,该第一目标网络为多个目标网络中的该目标机器所属的目标网络。该代理服务器为基于SOCKS协议的代理服务器。该网络设备700可以包括第一发送单元710和第二发送单元720。下面对这些单元进行详细介绍。
第一发送单元710可以被配置为向代理服务器发送目标机器的虚拟目标地址,该虚拟目标地址用于指示第一目标网络的标识和目标机器的实际目标地址。
第二发送单元720可以被配置为向代理服务器发送源机器的请求,以便代理服务器基于目标机器的实际目标地址将源机器的请求转发至目标机器。
可选地,虚拟目标地址为虚拟主机名或虚拟IP地址。
可选地,虚拟目标地址还包括虚拟的端口号。
可选地,源网络和/或目标网络为虚拟私有云VPC。
图8为本公开一实施例提供的转发请求的装置的结构示意图。图8所示的装置800可以是具有计算功能的计算设备,例如,装置800可以是服务器。装置800可以包括存储器810和处理器820。存储器810可用于存储可执行代码。处理器820可用于执行存储器810中存储的可执行代码,以实现前文描述的各个方法中的步骤。在一些实施例中,该装置800还可以包括网络接口830,处理器820与外部设备的数据交换可以通过该网络接口830实现。
在上述实施例中,可以全部或部分地通过软件、硬件、固件或者其他任意组合来实现。当使用软件实现时,可以全部或部分地以计算机程序产品的形式实现。所述计算机程序产品包括一个或多个计算机指令。在计算机上加载和执行所述计算机程序指令时,全部或部分地产生按照本公开实施例所述的流程或功能。所述计算机可以是通用计算机、专用计算机、计算机网络、或者其他可编程装置。所述计算机指令可以存储在计算机可读存储介质中,或者从一个计算机可读存储介质向另一个计算机可读存储介质传输,例如,所述计算机指令可以从一个网站站点、计算机、服务器或数据中心通过有线(例如同轴电缆、光纤、数字用户线(Digital Subscriber Line,DSL))或无线(例如红外、无线、微波等)方式向另一个网站站点、计算机、服务器或数据中心进行传输。所述计算机可读存储介质可以是计算机能够存取的任何可用介质或者是包含一个或多个可用介质集成的服务器、数据中心等数据存储设备。所述可用介质可以是磁性介质(例如,软盘、硬盘、磁带)、光介质(例如数字视频光盘(Digital Video Disc,DVD))、或者半导体介质(例如固态硬盘(Solid State Disk,SSD))等。
本领域普通技术人员可以意识到,结合本公开实施例描述的各示例的单元及算法步骤,能够以电子硬件、或者计算机软件和电子硬件的结合来实现。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本公开的范围。
在本公开所提供的几个实施例中,应该理解到,所揭露的系统、装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
另外,在本公开各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。
以上所述,仅为本公开的具体实施方式,但本公开的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本公开揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本公开的保护范围之内。因此,本公开的保护范围应以所述权利要求的保护范围为准。
Claims (14)
1.一种转发请求的方法,所述方法应用于代理服务器,所述代理服务器为基于SOCKS协议的代理服务器,所述代理服务器与源网络中的源机器和第一目标网络中的目标机器通信连接,所述第一目标网络为多个目标网络中的所述目标机器所属的目标网络,所述方法包括:
与所述源机器建立SOCKS连接;
从所述源机器接收所述目标机器的虚拟目标地址,所述虚拟目标地址用于指示所述第一目标网络的标识和所述目标机器的实际目标地址;
根据所述虚拟目标地址,确定所述目标机器的实际目标地址;
向所述目标机器转发所述源机器的请求。
2.根据权利要求1所述的方法,所述根据所述虚拟目标地址,确定所述目标机器的实际目标地址,包括:
根据所述虚拟目标地址,通过查询预先记录的配置信息,确定所述实际目标地址,其中,所述配置信息记录有所述虚拟目标地址和所述实际目标地址的映射关系。
3.根据权利要求1所述的方法,所述根据所述虚拟目标地址,确定所述目标机器的实际目标地址,包括:
根据所述虚拟目标地址,利用预设的算法,计算所述实际目标地址。
4.根据权利要求1所述的方法,所述虚拟目标地址为虚拟主机名或虚拟IP地址。
5.根据权利要求4所述的方法,所述虚拟目标地址还包括虚拟的端口号。
6.根据权利要求1所述的方法,所述源网络和/或所述多个目标网络为虚拟私有云VPC。
7.一种转发请求的系统,所述转发请求的系统包括代理服务器、源机器以及目标机器,所述代理服务器为基于SOCKS协议的代理服务器,所述代理服务器与源网络中的所述源机器和第一目标网络中的所述目标机器通信连接,所述第一目标网络为多个目标网络中的所述目标机器所属的目标网络,
所述源机器,用于与所述代理服务器建立SOCKS连接,并向所述代理服务器发送所述目标机器的虚拟目标地址,所述虚拟目标地址用于指示所述第一目标网络的标识和所述目标机器的实际目标地址;
所述代理服务器,用于根据所述虚拟目标地址,确定所述目标机器的实际目标地址,并向所述目标机器转发所述源机器的请求。
8.根据权利要求7所述的系统,所述代理服务器进一步被配置为根据所述虚拟目标地址,通过查询预先记录的配置信息,确定所述实际目标地址,其中,所述配置信息记录有所述虚拟目标地址和所述实际目标地址的映射关系。
9.根据权利要求7所述的系统,所述代理服务器进一步被配置为根据所述虚拟目标地址,利用预设的算法,计算所述实际目标地址。
10.根据权利要求7所述的系统,所述虚拟目标地址为虚拟主机名或虚拟IP地址。
11.根据权利要求10所述的系统,所述虚拟目标地址还包括虚拟的端口号。
12.根据权利要求7所述的系统,所述源网络和/或所述多个目标网络为虚拟私有云VPC。
13.一种代理服务器,所述代理服务器为基于SOCKS协议的代理服务器,所述代理服务器与源网络中的源机器和第一目标网络中的目标机器通信连接,所述第一目标网络为多个目标网络中的所述目标机器所属的目标网络,所述代理服务器包括:
连接单元,被配置为与所述源机器建立SOCKS连接;
接收单元,被配置为从所述源机器接收所述目标机器的虚拟目标地址,所述虚拟目标地址用于指示所述第一目标网络的标识和所述目标机器的实际目标地址;
确定单元,被配置为根据所述虚拟目标地址,确定所述目标机器的实际目标地址;
转发单元,被配置为向所述目标机器转发所述源机器的请求。
14.一种转发请求的装置,包括存储器和处理器,所述存储器中存储有可执行代码,所述处理器被配置为执行所述可执行代码,以实现权利要求1-6中任一项所述的方法。
Priority Applications (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| CN202111221514.6A CN114025009B (zh) | 2021-10-20 | 2021-10-20 | 转发请求的方法、系统、代理服务器和装置 |
Applications Claiming Priority (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| CN202111221514.6A CN114025009B (zh) | 2021-10-20 | 2021-10-20 | 转发请求的方法、系统、代理服务器和装置 |
Publications (2)
| Publication Number | Publication Date |
|---|---|
| CN114025009A true CN114025009A (zh) | 2022-02-08 |
| CN114025009B CN114025009B (zh) | 2024-04-16 |
Family
ID=80056823
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| CN202111221514.6A Active CN114025009B (zh) | 2021-10-20 | 2021-10-20 | 转发请求的方法、系统、代理服务器和装置 |
Country Status (1)
| Country | Link |
|---|---|
| CN (1) | CN114025009B (zh) |
Cited By (3)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| CN115189920A (zh) * | 2022-06-16 | 2022-10-14 | 阿里巴巴(中国)有限公司 | 跨网络域通信方法和相关装置 |
| CN115988078A (zh) * | 2022-11-28 | 2023-04-18 | 中国联合网络通信集团有限公司 | 通信方法、系统、电子设备及存储介质 |
| CN116319938A (zh) * | 2023-01-10 | 2023-06-23 | 杭州安恒信息技术股份有限公司 | 设备连接方法、装置、计算机设备和存储介质 |
Citations (6)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| CN105094799A (zh) * | 2014-05-23 | 2015-11-25 | Sap欧洲公司 | 在预置型平台和云平台之间操作的混合应用 |
| CN107770138A (zh) * | 2016-08-22 | 2018-03-06 | 阿里巴巴集团控股有限公司 | 指定ip地址的方法及代理服务器、客户端 |
| CN108833472A (zh) * | 2018-05-07 | 2018-11-16 | 杭州数梦工场科技有限公司 | 云主机的连接建立系统 |
| CN109474687A (zh) * | 2018-11-23 | 2019-03-15 | 杭州数梦工场科技有限公司 | 一种不同私网间通信的方法、装置和系统 |
| CN112738284A (zh) * | 2021-04-01 | 2021-04-30 | 腾讯科技(深圳)有限公司 | 服务集成中的数据传输方法、装置、设备及存储介质 |
| WO2021203126A1 (en) * | 2020-03-31 | 2021-10-07 | Bmc Software, Inc. | Cloud-native proxy gateway to cloud resources |
-
2021
- 2021-10-20 CN CN202111221514.6A patent/CN114025009B/zh active Active
Patent Citations (7)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| CN105094799A (zh) * | 2014-05-23 | 2015-11-25 | Sap欧洲公司 | 在预置型平台和云平台之间操作的混合应用 |
| US20150341445A1 (en) * | 2014-05-23 | 2015-11-26 | Radoslav Nikolov | Hybrid applications operating between on-premise and cloud platforms |
| CN107770138A (zh) * | 2016-08-22 | 2018-03-06 | 阿里巴巴集团控股有限公司 | 指定ip地址的方法及代理服务器、客户端 |
| CN108833472A (zh) * | 2018-05-07 | 2018-11-16 | 杭州数梦工场科技有限公司 | 云主机的连接建立系统 |
| CN109474687A (zh) * | 2018-11-23 | 2019-03-15 | 杭州数梦工场科技有限公司 | 一种不同私网间通信的方法、装置和系统 |
| WO2021203126A1 (en) * | 2020-03-31 | 2021-10-07 | Bmc Software, Inc. | Cloud-native proxy gateway to cloud resources |
| CN112738284A (zh) * | 2021-04-01 | 2021-04-30 | 腾讯科技(深圳)有限公司 | 服务集成中的数据传输方法、装置、设备及存储介质 |
Cited By (3)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| CN115189920A (zh) * | 2022-06-16 | 2022-10-14 | 阿里巴巴(中国)有限公司 | 跨网络域通信方法和相关装置 |
| CN115988078A (zh) * | 2022-11-28 | 2023-04-18 | 中国联合网络通信集团有限公司 | 通信方法、系统、电子设备及存储介质 |
| CN116319938A (zh) * | 2023-01-10 | 2023-06-23 | 杭州安恒信息技术股份有限公司 | 设备连接方法、装置、计算机设备和存储介质 |
Also Published As
| Publication number | Publication date |
|---|---|
| CN114025009B (zh) | 2024-04-16 |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| US11659441B2 (en) | Load balance method and apparatus thereof | |
| CN106686070B (zh) | 一种数据库数据迁移方法、装置、终端及系统 | |
| CN107508795B (zh) | 跨容器集群的访问处理装置及方法 | |
| US12063709B2 (en) | Group management method, apparatus, and system | |
| EP2633667B1 (en) | System and method for on the fly protocol conversion in obtaining policy enforcement information | |
| CN114025009B (zh) | 转发请求的方法、系统、代理服务器和装置 | |
| KR102131083B1 (ko) | 클라우드 기반 호스팅 시스템 및 방법 | |
| EP2908477B1 (en) | Remote access method and device | |
| CN111629084B (zh) | 数据传输方法和装置、存储介质及电子设备 | |
| WO2021104458A1 (zh) | 域名查询方法以及相关设备 | |
| CN114500527A (zh) | 一种边缘设备带外管理系统及方法 | |
| CN111585786A (zh) | 一种大数据集群免密搭建方法的实现 | |
| CN104426816B (zh) | 一种虚拟机通信方法及装置 | |
| US11750716B2 (en) | Methods for publishing resource, and gateway | |
| CN114025010B (zh) | 建立连接的方法和网络设备 | |
| CN117176688A (zh) | 寻址方法、装置、电子设备及计算机可读存储介质 | |
| TWI735633B (zh) | 資料傳輸的方法、設備、裝置及系統 | |
| WO2022231780A1 (en) | Consistent hashing for communication devices | |
| EP4503571A1 (en) | Address configuration method and electronic device | |
| CN114679370B (zh) | 一种服务器托管方法、装置、系统及存储介质 | |
| EP3176986A1 (en) | Method, device and system for remote desktop protocol gateway to conduct routing and switching | |
| CN112261165B (zh) | 通信方法、系统、装置、计算机设备和存储介质 | |
| CN112134941A (zh) | 一种通信方法、通信装置、服务器和存储介质 | |
| WO2026021081A1 (zh) | 地址获取方法及系统、计算设备、存储介质 | |
| CN116016427A (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 |