一种访问客户端的方法及装置与流程
未命名
08-14
阅读:109
评论:0
1.本发明涉及互联网技术领域,特别涉及一种访问客户端的方法及装置。
背景技术:
2.随着科技的快速发展,电子设备的性能越来越强大,功能也越来越丰富,已经成为人们日常生活中重要的组成部分。但是,电子设备在使用的过程中可能会出现各种各样的问题,这些问题会影响人们的使用体验。因此,想要减少电子产品在使用过程中可能出现的问题,对电子产品进行运维管理是十分重要的。
3.目前常见的运维管理节点设备的方法为获取节点的具体公网ip,并通过公网ip进行连接。但是,由于节点设备可能分散在多处位置,在运维管理该节点的过程中,经常会遇见无公网ip,即节点通过地址网络转换(network address translation,nat)的形式连接到公网或公网ip不定时更新的问题。在遇见上述问题时,会增加运维管理节点设备的难度,从而降低运维管理的效率。
技术实现要素:
4.针对上述现有技术的缺点,本发明提供一种访问客户端的方法及装置。
5.本技术第一方面提供了一种访问客户端的方法,应用于目标服务端,所述目标服务端是多个服务端中根据预设的选取算法确定的服务端,所述方法包括:
6.获得客户端数据;其中,所述客户端数据包括第一协议版本号、隧道id、数据长度和客户端信息;
7.根据所述客户端信息的哈希值和预设的秘钥校验所述客户端信息;
8.在所述客户端信息通过校验后,分配隧道端口号和隧道ip地址给客户端;
9.发送所述隧道端口号和所述隧道ip地址给所述客户端;
10.基于所述隧道端口号和所述隧道ip地址,以及所述目标服务端的公网ip地址和公网端口号访问所述客户端;其中,所述目标服务端的公网ip地址和公网端口号和多个所述客户端连接,所述目标服务端访问所述客户端时发送的数据包携带有所述客户端的访问标识。
11.可选的,所述获得客户端数据之前,还包括:
12.向所述客户端发送所述目标服务端的协议版本号,使所述客户端将所述目标服务端的协议版本号作为所述第一协议版本号。
13.可选的,所述发送所述隧道端口号和所述隧道ip地址给所述客户端之后,还包括:
14.当所述客户端为多个时,接收所述客户端发送的检测请求;
15.根据所述检测请求,定时检测是否发送对应的所述隧道端口号和所述隧道ip地址给多个所述客户端。
16.可选的,所述获得客户端数据,包括:
17.接收所述客户端发送的加密数据;其中,所述加密数据为所述客户端对所述客户
端数据进行加密处理的数据;
18.对所述加密数据进行解密,得到所述客户端数据。
19.可选的,所述访问所述客户端,包括:
20.将所述客户端数据转化成第一信息;所述第一信息用于表示所述客户端的域名和所述隧道ip地址间的对应关系;
21.根据所述第一信息,访问所述客户端。
22.本技术第二方面提供了一种访问客户端的装置,应用于目标服务端,所述目标服务端是多个服务端中根据预设的选取算法确定的服务端,所述装置包括:
23.获取单元,用于获得客户端数据;其中,所述客户端数据包括第一协议版本号、隧道id、数据长度和客户端信息;
24.校验单元,用于根据所述客户端信息的哈希值和预设的秘钥校验所述客户端信息;
25.分配单元,用于在所述客户端信息通过校验后,分配隧道端口号和隧道ip地址给客户端;
26.发送单元,用于发送所述隧道端口号和所述隧道ip地址给所述客户端;
27.访问单元,用于基于所述隧道端口号和所述隧道ip地址,以及所述目标服务端的公网ip地址和公网端口号访问所述客户端;其中,所述目标服务端的公网ip地址和公网端口号和多个所述客户端连接,所述目标服务端访问所述客户端时发送的数据包携带有所述客户端的访问标识。
28.可选的,所述发送单元用于:
29.向所述客户端发送所述目标服务端的协议版本号,使所述客户端将所述目标服务端的协议版本号作为所述第一协议版本号。
30.可选的,所述装置包括检测单元:
31.当所述客户端为多个时,所述获取单元用于接收所述客户端发送的检测请求;
32.所述检测单元用于根据所述检测请求,定时检测是否发送对应的所述隧道端口号和所述隧道ip地址给多个所述客户端。
33.可选的,所述获取单元用于:
34.接收所述客户端发送的加密数据;其中,所述加密数据为所述客户端对所述客户端数据进行加密处理的数据;
35.所述获取单元用于对所述加密数据进行解密,得到所述客户端数据。
36.可选的,所述访问单元用于:
37.将所述客户端数据转化成第一信息;所述第一信息用于表示所述客户端的域名和所述隧道ip地址间的对应关系;
38.所述访问单元用于根据所述第一信息,访问所述客户端。
39.本技术提供一种访问客户端的方法,应用于目标服务端,方法包括:获得客户端数据,并分配隧道端口号和隧道ip地址给客户端;其中,客户端数据包括第一协议版本号、隧道id、数据长度和客户端信息;发送隧道端口号和隧道ip地址给客户端;基于隧道端口号和隧道ip地址,访问客户端。目前常见的访问客户端的方法是通过获得客户端的公网ip地址后,根据公网ip地址访问客户端,但是某些客户端可能没有公网ip或公网ip会不定时更新。
针对上述现有技术的缺点,本方案通过接收客户端数据,并分配隧道端口号和隧道ip地址,根据隧道端口号和隧道ip地址访问相应的客户端。不仅如此,为了数据传输安全,本方案还可以对客户端发送给目标服务端的数据进行加密处理。
附图说明
40.为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据提供的附图获得其他的附图。
41.图1为本实施提供的一种访问客户端的方法的流程图;
42.图2为本实施例提供的一种运维系统的结构示意图;
43.图3为本实施提供的一种访问客户端的装置的结构示意图。
具体实施方式
44.下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
45.请参见图1,为本实施提供的一种访问客户端的方法的流程图。
46.本实施例提供的访问客户端的方法,可以由多个服务端中的目标服务端执行。目标服务端,是指客户端按照一定的选取算法从多个服务端中选取出的服务端,每一个客户端都对应一个目标服务端,不同客户端对应的目标服务端可以相同,也可以不同。
47.选取算法可以根据应用场景设定,本实施例不做限定。
48.作为一种示例,选取算法可以是根据服务端哈希值和客户端哈希值选取。具体的,可以预先针对每一个服务端,利用该服务端的公网ip地址和端口号计算得到该服务端的服务端哈希值,并设定该服务端哈希值对应的客户端哈希值区间。
49.基于此,当一个客户端需要和服务端建立隧道时,可以先根据自身的设备序列号计算得到该客户端的客户端哈希值,然后识别该客户端哈希值位于哪一个服务端对应的客户端哈希值区间内,将该客户端哈希值所属区间对应的服务端确定为目标服务端。
50.作为另一种示例,选取算法可以是根据各个服务端的带宽信息选取。服务端的带宽信息,可以包括该服务端的当前可用带宽。具体的,客户端可以获得各个服务端的当前可用带宽,然后选择其中当前可用带宽最大的服务端作为目标服务端。
51.由于存在多个服务端,运维人员在通过后台设备访问客户端时,需要先确定待访问的客户端连接在哪个服务端上,也就是确定待访问的客户端对应的目标服务端。
52.一种可选的确定方式是,后台设备预先配置和客户端相同的选取算法,由此,在访问客户端时,后台设备可以按照和客户端相同的选取算法,确定出待访问的客户端在建立隧道时选择的目标服务端。
53.另一种可选的确定方式是,每一个服务端在和一个客户端建立隧道之后,就将自身和该客户端之间的隧道连接关系记录在一个连接关系数据库中,同时将该连接关系数据
库同步给其他每一个服务端,当后台设备需要访问客户端时,后台设备可以从任一服务端获得该连接关系数据库,从连接关系数据库中查询得到待访问的客户端对应的连接关系,从而确定待访问的客户端当前连接的目标服务端。
54.s101,获得客户端数据,并分配隧道端口号和隧道ip地址给客户端。
55.本实施例中,客户端数据可以包括协议版本号、隧道id、数据长度和客户端信息等。
56.下面介绍客户端数据的具体内容。
57.协议版本号:4字节,表示协议版本号,如0x00000011。
58.隧道id:10字节,表示隧道标识符。
59.数据长度:4字节,表示数据部分长度。
60.数据:长度不定,表示实际传输的数据。
61.本实施例中,为了便于传输数据,客户端和目标服务端可以使用同样的协议版本号。
62.下面介绍使用同样的协议版本号的方法。
63.在客户端发送数据给服务器之前,目标服务端可以将第二协议版本号发送给客户端,其中,第二协议版本号可以理解为目标服务端的协议版本号。本实施例中,第二协议版本号可以是0x00000011,也可以根据实际情况使用其他的协议版本号,本实施例不做限定。
64.客户端接收第二协议版本号后,并在多个客户端的协议版本号中选择与第二协议版本号一样的协议版本号作为第一协议版本号,即第一协议版本号也是0x00000011。
65.本实施例中,隧道id可以用一个特定的参数表示,而且多个客户端可以共用一个隧道id。
66.可选的,隧道id也可以是客户端的设备序列号。
67.下面介绍上述实例中实际传输的数据的具体内容。
68.请求形式post:/date?token=xxxxx。
69.请求数据实例(实际为xxtea加密数据)。
70.{“wan_ip”:【“公网ip地址,支持多个公网ip”】;“lan_ip”:【“内网ip地址,支持多个内网ip”】;“nat_type”:“nat类型”;“manufactor”:“设备厂商及型号”;“sn”:“设备序列号,设备唯一id,不可重复”;“service”:【客户端端口号,22,60,21,支持多个端口】}。
71.token计算方法:md5(客户端信息的hash值+秘钥)。
72.本实施例中,客户端信息可以包括上述客户端的公网ip地址、内网ip地址、nat类型、设备厂商及型号、序列号和端口号。
73.客户端发送数据给目标服务端时,可以对发送的数据进行加密处理。本实施例中,可以使用哈希算法对上述客户端信息进行加密处理。
74.目标服务端接收加密后的客户端数据后,需要对加密后的客户端数据进行解密,得到客户端数据。具体的解密方法可以是:根据预设的秘钥,对加密的客户端数据进行解密。本实施例中,上传数据可以理解为客户端信息。
75.本实施例中,秘钥可以是一个预设的特定参数,可以存储于目标服务端的数据库中。对于存在多个客户端的情况,多个客户端可以共用一个秘钥,也可以针对不同的客户端分别预设不同的秘钥,本实施例不做限定。
76.可以通过计算得到上传数据解密后的hash值。
77.本实施例中,在客户端发送客户端数据给目标服务端,目标服务端接收客户端数据的过程中,可能是正常发送,也可能存在问题。如果传输数据的过程中出现问题,发送数据可能会失败;因此在传输过程中出现问题时,协议进行相应的处理,以保证数据正常发送。
78.下面介绍在上述发送数据和接收数据的过程中,可能会出现的问题以及正常发送的情况以及相应的处理方法。
79.返回数据为http code。
80.200正常。
81.403认证失败。
82.404客户端传递的数据无效。
83.405设备信息重复,唯一id冲突。
84.600目标服务端异常。
85.目标服务端接收客户端发送的数据后,可以返回结果数据给客户端,用于表示接收数据的结果。其中,结果数据可以理解为上述实例中http code,且http code以数值的形式用于表示目标服务端接收客户端发送数据的结果。
86.不仅如此,如果目标服务端接收数据的过程出现问题,上述http code的具体数值还可以用于表示具体的问题。客户端获取具体的问题后,可以针对具体的问题进行相应的处理,直至目标服务端可以正常接收客户端数据。
87.下面介绍上述http code的数值不同时的具体含义。
88.如果目标服务端返回给客户端的http code为200,则可以理解为客户端发送数据给目标服务端的过程并未存在问题,即客户端准确无误地将数据发送给目标服务端。
89.如果目标服务端返回给客户端的http code为405,则可以理解为发送过程遇到了问题,具体的问题为:设备信息重复,唯一id冲突;即客户端数据中存在多个客户端序列号。其中,客户端的序列号为客户端的唯一id。
90.针对上述设备信息重复的问题,客户端可以重新查询自身的序列号,得到正确的序列号,并且删除其他的序列号;将修改后的序列号重新发送给目标服务端。
91.本实施例中,目标服务端获得客户端数据后,可以将该客户端数据存入数据库中。具体的存储方法可以是部署mysql存储客户端数据,当然数据库也可以存储目标服务端的公网ip地址和其他管理员指定参数等数据。
92.目标服务端将客户端数据存入数据库之后,可以给客户端分配隧道端口号和隧道ip地址。对于多个客户端的情况,目标服务端可以分配给多个客户端对应的隧道端口号和隧道ip地址。
93.客户端对应的隧道端口号和隧道ip地址,可以由相关用户在目标服务端输入,也可以由目标服务端根据不同客户端的客户端数据生成。
94.s101可以包括如下步骤:获得客户端数据;根据客户端信息的哈希值和预设的秘钥校验客户端信息;在客户端信息通过校验后,分配隧道端口号和隧道ip地址给客户端。
95.如前文所述,客户端数据中携带有客户端计算的标签(即上述token)。因此,客户端信息的具体校验过程可以包括:目标服务端在完成客户端数据的解密后,先计算客户端
信息的哈希值,然后利用md5算法对客户端信息的哈希值和秘钥进行计算,得到目标服务端的标签,最后,比对客户端的标签和目标服务端的标签,如果两者一致,则确定客户端信息通过校验,如果两者不一致,则确定客户端信息未通过校验。
96.目标服务端生成隧道端口号和隧道ip地址的方式可以是:目标服务端根据当前需要分配的客户端的数量,随机生成对应数量的多个隧道端口号和隧道ip地址。
97.目标服务端生成隧道端口号和隧道ip地址的方式也可以是:针对每一个需要分配隧道端口号和隧道ip地址的客户端,目标服务端根据该客户端的客户端数据,例如该客户端的公网ip、内网ip、nat类型和客户端端口号等信息,生成该客户端的隧道端口号和隧道ip地址。
98.可选的,若客户端信息未通过校验,目标服务端可以向该客户端反馈校验失败的消息,从而向该客户端说明,当前收到的客户端信息校验失败,无法为该客户端分配隧道端口号和隧道ip地址。
99.s102,发送隧道端口号和隧道ip地址给客户端。
100.目标服务端可以将隧道端口号与上述客户端端口号、隧道ip地址与客户端的序列号分别进行关联,即在隧道端口号与上述客户端端口号、隧道ip地址与客户端的序列号间分别建立对应关系。
101.目标服务端将隧道端口号和隧道ip地址发送给客户端。
102.目标服务端可以根据上述对应关系对多个客户端进行区分,即目标服务端可以根据隧道端口号和隧道ip地址区分对应的客户端。
103.在目标服务端将隧道端口号和隧道ip地址发送给客户端之后,客户端可以定时发送检测请求给目标服务端。其中,上述检测请求用于请求目标服务端检测是否发送对应的隧道端口号和隧道ip地址给全部客户端。
104.目标服务端可以根据检测请求,定时检查是否发送对应的隧道端口号和隧道ip地址给全部客户端。如果发现并未发送对应的隧道端口号和隧道ip地址给某一个或多个客户端,目标服务端将对应的隧道端口号和隧道ip地址发送给对应的一个或多个客户端。
105.s103,基于隧道端口号和隧道ip地址,以及目标服务端的公网ip地址和公网端口号访问客户端。
106.本实施例中,目标服务端和客户端之间的连接关系可以是,目标服务端通过一个特定的公网ip地址和公网端口号,同时和多个客户端建立隧道连接,这种连接方式的好处在于,一方面能够复用目标服务端的公网ip地址和公网端口号,使得目标服务端可以连接网络上尽可能多的设备,另一方面,当运维人员需要通过后台设备访问客户端时,不需要确定客户端是连接在目标服务端的哪一个公网ip地址和公网端口号上,提高了访问效率。
107.在上述连接方式下,为了实现目标服务端和特定的一个待访问客户端之间的通信,目标服务端可以按照如下方式向待访问客户端发送数据包:
108.目标服务端在生成要发送给待访问客户端的数据包时,在该数据包中加入待访问客户端的访问标识,该访问标识可以是待访问客户端的隧道ip地址和隧道端口号,也可以是待访问客户端的设备序列号;
109.产生该数据包后,目标服务端通过用于连接客户端的公网ip地址和公网端口号发出该数据包,由于该公网ip地址和公网端口号同时连接了多个客户端,所以该数据包会被
多个客户端收到,其中既有待访问客户端,也有不是待访问客户端的其他客户端。
110.每一个客户端在收到目标服务端下发的数据包后,可以将其中携带的访问标识和本地记录的访问标识比对,确定两者是否一致,例如将数据包携带的隧道ip地址和隧道端口号,以及客户端本地记录的隧道ip地址和隧道端口号比对,或者将数据包携带的设备序列号和客户端本地的设备序列号进行比对。
111.如果两者一致,说明该数据包是服务端向自身下发的数据包,于是该客户端处理该数据包,如果两者不一致,说明该数据包不是服务端向自身下发的数据包,于是客户端忽略该数据包。
112.通过以上方式,服务端就可以和特定的待访问客户端通信。
113.目标服务端可以根据隧道端口号和隧道ip地址,访问对应的客户端的相关端口。下面介绍具体的访问方法。
114.相关用户可以输入客户端的设备序列号和客户端端口号;目标服务端可以根据输入的客户端的序列号和客户端端口号,查询得到相应客户端的隧道端口号与隧道ip地址。具体的查询方法为通过隧道端口号与客户端端口号、隧道ip地址与客户端的序列号间的对应关系查询。
115.目标服务端获得相应客户端的隧道端口号与隧道ip地址后,可以访问相应客户端的相关端口。
116.下面介绍另一种访问客户端的方法。
117.目标服务端可以读取数据库中相应的客户端数据,并将该客户端数据转化成第一信息。该第一信息可以是dns a记录。
118.将客户端数据转化成第一信息的方式可以是:根据设备序列号,公网ip和nat类型等信息,生成该客户端的域名或者主机名,然后将该客户端的域名(或者主机名)和该客户端的隧道ip地址的映射关系,确定为该客户端的第一信息。
119.相关用户可以输入客户端的域名(或主机名);目标服务端可以根据输入的域名(或主机名),请求dns服务器解析得到相应的隧道ip地址,即dns服务器可以通过a记录解析得到相应的隧道ip地址。
120.目标服务端获得客户端的隧道ip地址后,可以访问客户端的相关端口。
121.通过对上述两种访问客户端方法的介绍,可以理解,管理员可以通过ip+域名(或主机名)的形式访问客户端。即使在无公网ip地址、公网ip地址不定时更换的情况下,也可以访问客户端的相关端口。因此,在管理员对客户端进行运维管理时,可以降低运维管理的难度,以提高运维管理的效率。
122.上述访问客户端的方法,相当于:
123.将客户端数据转化成第一信息;第一信息用于表示客户端的域名和隧道ip地址间的对应关系;
124.根据第一信息,访问客户端。
125.介绍完本实施例提供的一种访问客户端的方法,下面介绍客户端获得客户端数据,并发送客户端数据给目标服务端的过程。
126.有关客户端数据的具体内容可以参考步骤s102中对于客户端数据的介绍。
127.客户端可以通过配置文件读取公网ip地址;如果客户端没有配置文件,客户端可
以调用数据库中的相关端口,查询得到公网ip地址。
128.由于节点设备可能分散在多处位置,有些地区的节点设备可能有公网ip地址,也可能没有公网ip地址。其中,上述节点设备可以理解为本实施例中的客户端。
129.对于客户端有公网ip地址的情况,客户端可以调用数据库中相关的端口查询得到公网ip地址。
130.客户端在获取公网ip地址后,对该公网ip地址进行校验,确定该公网ip地址是否为真公网ip地址。可以理解,部分运营商分配的地址是经过nat的公网ip,虽然看着是公网ip,但是这种公网ip无法通过互联网直接访问,因此本实施例中,上述经过nat的公网ip可以理解为假公网ip。
131.对于上述假公网ip,可以理解为该客户端无公网ip地址,相应的处理方法可以参考下面将要介绍的客户端没有公网ip地址的处理方法。
132.对于客户端没有公网ip地址的情况,客户端会进行相应的处理。下面介绍具体的处理方法。
133.如果客户端没有公网ip地址,客户端可以获取相应的nat类型。具体的获取方法为:客户端可以请求目标服务端的stun和turn服务,用于获取客户端的nat类型。具体获取nat类型的方法为:通过stun、turn和upnp相关协议获取nat类型。
134.客户端将获得的客户端数据发送给目标服务端。
135.本技术提供一种访问客户端的方法,应用于目标服务端,方法包括:获得客户端数据,并分配隧道端口号和隧道ip地址给客户端;其中,客户端数据包括第一协议版本号、隧道id、数据长度和客户端信息;发送隧道端口号和隧道ip地址给客户端;基于隧道端口号和隧道ip地址,访问客户端。目前常见的访问客户端的方法是通过获得客户端的公网ip地址后,根据公网ip地址访问客户端,但是某些客户端可能没有公网ip或公网ip会不定时更新。针对上述现有技术的缺点,本方案通过接收客户端数据,并分配隧道端口号和隧道ip地址,根据隧道端口号和隧道ip地址访问相应的客户端。不仅如此,为了数据传输安全,本方案还可以对客户端发送给目标服务端的数据进行加密处理。
136.本实施例提供的方法,可以应用于如图2所示的客户端运维系统,该系统中可以包括一个或多个客户端,多个客户端的结构相似,作为示例,图2仅示出其中一个客户端的结构。
137.可以看到,客户端包括节点信息汇报模块和nat类型探测模块。
138.其中节点信息汇报模块用于将前述客户端数据发送给目标服务端,nat类型探测模块用于和目标服务端的nat类型探测服务交互,以确定客户端的nat类型。
139.目标服务端包括数据收集服务,隧道生成服务,nat类型探测服务,数据库和dns服务。
140.其中数据收集服务用于执行接收客户端数据,以及用于校验客户端信息。
141.隧道生成服务用于为客户端分配隧道端口号和隧道ip地址,并将隧道端口号和隧道ip地址发给客户端。
142.dns服务用于生成前述第一信息,以及用于根据用户输入的域名(或者主机名)和第一信息解析得到对应客户端的隧道端ip地址,从而支持运维人员访问客户端。
143.数据库用于记录收到的客户端数据,分配给客户端的隧道端口号和隧道ip地址,
以及dns服务生成的第一信息。
144.根据本技术提供的一种访问客户端的方法,本技术实施例还提供了一种访问客户端的装置,应用于目标服务端,目标服务端是客户端在多个服务端中按预设的选取算法确定的服务端,请参见图3,为该装置的结构示意图,该装置包括以下单元。
145.获取单元301,用于获得客户端数据;其中,客户端数据包括第一协议版本号、隧道id、数据长度和客户端信息;
146.校验单元302,用于根据客户端信息的哈希值和预设的秘钥校验客户端信息;
147.分配单元303,用于在客户端信息通过校验后,分配隧道端口号和隧道ip地址给客户端;
148.发送单元304,用于发送隧道端口号和隧道ip地址给客户端;
149.访问单元305,用于基于隧道端口号和隧道ip地址,以及目标服务端的公网ip地址和公网端口号访问客户端;其中,目标服务端的公网ip地址和公网端口号和多个客户端连接,目标服务端访问客户端时发送的数据包携带有客户端的访问标识。
150.可选的,发送单元用于:
151.向客户端发送目标服务端的协议版本号,使客户端将目标服务端的协议版本号作为第一协议版本号。
152.可选的,装置包括检测单元306:
153.当客户端为多个时,获取单元用于接收客户端发送的检测请求;
154.检测单元用于根据检测请求,定时检测是否发送对应的隧道端口号和隧道ip地址给多个客户端。
155.可选的,获取单元用于:
156.接收客户端发送的加密数据;其中,加密数据为客户端对客户端数据进行加密处理的数据;
157.获取单元用于对加密数据进行解密,得到客户端数据。
158.可选的,访问单元用于:
159.将客户端数据转化成第一信息;第一信息用于表示客户端的域名和隧道ip地址间的对应关系;
160.访问单元用于根据第一信息,访问客户端。
161.本实施例提供的一种访问客户端的装置,其具体工作原理可以参见本技术任一实施例所提供的一种访问客户端的方法中相关步骤,此处不再赘述。
162.本技术提供一种访问客户端的装置,应用于目标服务端,装置包括:获取单元301,用于获得客户端数据;其中,客户端数据包括第一协议版本号、隧道id、数据长度和客户端信息;校验单元302,用于根据客户端信息的哈希值和预设的秘钥校验客户端信息;分配单元303,用于在客户端信息通过校验后,分配隧道端口号和隧道ip地址给客户端;发送单元304,用于发送隧道端口号和隧道ip地址给客户端;访问单元305,用于基于隧道端口号和隧道ip地址,访问客户端。目前常见的访问客户端的方法是通过获得客户端的公网ip地址后,根据公网ip地址访问客户端,但是某些客户端可能没有公网ip或公网ip会不定时更新。针对上述现有技术的缺点,本方案通过接收客户端数据,并分配隧道端口号和隧道ip地址,根据隧道端口号和隧道ip地址访问相应的客户端。不仅如此,为了数据传输安全,本方案还可
以对客户端发送给目标服务端的数据进行加密处理。
163.最后,还需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个
……”
限定的要素,并不排除在包括要素的过程、方法、物品或者设备中还存在另外的相同要素。
164.需要注意,本发明中提及的“第一”、“第二”等概念仅用于对不同的装置、模块或单元进行区分,并非用于限定这些装置、模块或单元所执行的功能的顺序或者相互依存关系。
165.专业技术人员能够实现或使用本技术。对这些实施例的多种修改对本领域的专业技术人员来说将是显而易见的,本文中所定义的一般原理可以在不脱离本技术的精神或范围的情况下,在其它实施例中实现。因此,本技术将不会被限制于本文所示的这些实施例,而是要符合与本文所公开的原理和新颖特点相一致的最宽的范围。
技术特征:
1.一种访问客户端的方法,其特征在于,应用于目标服务端,所述目标服务端是多个服务端中根据预设的选取算法确定的服务端,所述方法包括:获得客户端数据;其中,所述客户端数据包括第一协议版本号、隧道id、数据长度和客户端信息;根据所述客户端信息的哈希值和预设的秘钥校验所述客户端信息;在所述客户端信息通过校验后,分配隧道端口号和隧道ip地址给客户端;发送所述隧道端口号和所述隧道ip地址给所述客户端;基于所述隧道端口号和所述隧道ip地址,以及所述目标服务端的公网ip地址和公网端口号访问所述客户端;其中,所述目标服务端的公网ip地址和公网端口号和多个所述客户端连接,所述目标服务端访问所述客户端时发送的数据包携带有所述客户端的访问标识。2.根据权利要求1所述的方法,其特征在于,所述获得客户端数据之前,还包括:向所述客户端发送所述目标服务端的协议版本号,使所述客户端将所述目标服务端的协议版本号作为所述第一协议版本号。3.根据权利要求1所述的方法,其特征在于,所述发送所述隧道端口号和所述隧道ip地址给所述客户端之后,还包括:当所述客户端为多个时,接收所述客户端发送的检测请求;根据所述检测请求,定时检测是否发送对应的所述隧道端口号和所述隧道ip地址给多个所述客户端。4.根据权利要求1所述的方法,其特征在于,所述获得客户端数据,包括:接收所述客户端发送的加密数据;其中,所述加密数据为所述客户端对所述客户端数据进行加密处理的数据;对所述加密数据进行解密,得到所述客户端数据。5.根据权利要求1所述的方法,其特征在于,所述访问所述客户端,包括:将所述客户端数据转化成第一信息;所述第一信息用于表示所述客户端的域名和所述隧道ip地址间的对应关系;根据所述第一信息,访问所述客户端。6.一种访问客户端的装置,其特征在于,应用于目标服务端,所述目标服务端是多个服务端中根据预设的选取算法确定的服务端,所述装置包括:获取单元,用于获得客户端数据;其中,所述客户端数据包括第一协议版本号、隧道id、数据长度和客户端信息;校验单元,用于根据所述客户端信息的哈希值和预设的秘钥校验所述客户端信息;分配单元,用于在所述客户端信息通过校验后,分配隧道端口号和隧道ip地址给客户端;发送单元,用于发送所述隧道端口号和所述隧道ip地址给所述客户端;访问单元,用于基于所述隧道端口号和所述隧道ip地址,以及所述目标服务端的公网ip地址和公网端口号访问所述客户端;其中,所述目标服务端的公网ip地址和公网端口号和多个所述客户端连接,所述目标服务端访问所述客户端时发送的数据包携带有所述客户端的访问标识。7.根据权利要求6所述的装置,其特征在于,所述发送单元用于:
向所述客户端发送所述目标服务端的协议版本号,使所述客户端将所述目标服务端的协议版本号作为所述第一协议版本号。8.根据权利要求6所述的装置,其特征在于,所述装置包括检测单元:当所述客户端为多个时,所述获取单元用于接收所述客户端发送的检测请求;所述检测单元用于根据所述检测请求,定时检测是否发送对应的所述隧道端口号和所述隧道ip地址给多个所述客户端。9.根据权利要求6所述的装置,其特征在于,所述获取单元用于:接收所述客户端发送的加密数据;其中,所述加密数据为所述客户端对所述客户端数据进行加密处理的数据;所述获取单元用于对所述加密数据进行解密,得到所述客户端数据。10.根据权利要求6所述的装置,其特征在于,所述访问单元用于:将所述客户端数据转化成第一信息;所述第一信息用于表示所述客户端的域名和所述隧道ip地址间的对应关系;所述访问单元用于根据所述第一信息,访问所述客户端。
技术总结
本申请提供一种访问客户端的方法及装置,应用于服务端,方法包括:获得客户端数据,并分配隧道端口号和隧道IP地址给客户端;客户端数据包括第一协议版本号、隧道ID、数据长度和客户端信息;发送隧道端口号和隧道IP地址给客户端;基于隧道端口号和隧道IP地址,访问客户端。本方案通过接收客户端数据,并分配隧道端口号和隧道IP地址,根据隧道端口号和隧道IP地址访问相应的客户端,因此,即使客户端的公网IP地址变更或者没有公网IP地址,服务端也能够通过隧道访问客户端。隧道访问客户端。隧道访问客户端。
技术研发人员:赵云鹏 郎耀亮 于海龙 柳文龙
受保护的技术使用者:湖南快乐阳光互动娱乐传媒有限公司
技术研发日:2023.06.08
技术公布日:2023/8/13
版权声明
本文仅代表作者观点,不代表航空之家立场。
本文系作者授权航家号发表,未经原创作者书面授权,任何单位或个人不得引用、复制、转载、摘编、链接或以其他任何方式复制发表。任何单位或个人在获得书面授权使用航空之家内容时,须注明作者及来源 “航空之家”。如非法使用航空之家的部分或全部内容的,航空之家将依法追究其法律责任。(航空之家官方QQ:2926969996)
飞行汽车 https://www.autovtol.com/
