发明内容
本发明实施方式的目的在于提供一种虚拟专用网络的连接方法、服务器、客户端和存储介质,便于增加VPN服务端的数目,增加接入VPN服务端的成功率以及提高连接VPN服务端的网络质量。
为解决上述技术问题,本发明的实施方式提供了一种虚拟专用网络的连接方法,应用于注册服务器,包括:接收虚拟专用网络VPN客户端发送的连接请求,连接请求用于请求连接VPN服务端;向VPN客户端返回可用VPN服务端的连接信息以及网络质量检测策略,网络质量检测策略是检测可用VPN服务端的网络质量的策略;其中,由VPN客户端根据网络质量检测策略,选取待连接的VPN服务端进行连接。
本发明的实施方式还提供了一种虚拟专用网络的连接方法,应用于客户端,包括:向注册服务器发送连接请求;接收服务端返回的可用VPN服务端的连接信息和网络质量检测策略,网络质量检测策略是检测可用VPN服务端的网络质量的策略;根据网络质量检测策略,选取待连接的VPN服务端进行连接。
本发明的实施方式还提供了一种服务器,包括:至少一个处理器;以及,与至少一个处理器通信连接的存储器;其中,存储器存储有可被至少一个处理器执行的指令,指令被至少一个处理器执行,以使至少一个处理器能够执行上述的应用于注册服务器上的虚拟专用网络的连接方法。
本发明的实施方式还提供了一种客户端,包括:至少一个处理器;以及,与至少一个处理器通信连接的存储器;其中,存储器存储有可被至少一个处理器执行的指令,指令被至少一个处理器执行,以使至少一个处理器能够执行上述应用于客户端的虚拟专用网络的连接方法。
本发明的实施方式还提供了一种计算机可读存储介质,存储有计算机程序,计算机程序被处理器执行时实现权上述应用在注册服务器的虚拟专用网络的连接方法,或者,实现权利上述应用在客户端的虚拟专用网络的连接方法。
本发明实施方式相对于现有技术而言,注册服务器在接收VPN客户端发送的连接请求后,向VPN服务端返回可用VPN服务端的连接信息,由于可用VPN服务端的连接信息是由注册服务器提供,而不是由客户端配置文件中的配置信息提供,使得即使增加了可用VPN服务端的IP地址,也不需要对VPN客户端进行更新,提高了VPN客户端的适用性;另外VPN客户端根据网络质量检测策略,可以选取待连接的VPN服务端进行连接,通过该网络质量检测策略可以确定出可用VPN服务端的网络质量,从而使得确定的待连接VPN服务端可以提供更好的网络质量,增加了VPN客户端接入VPN服务端的成功率以及提高连接VPN服务端的网络质量。
另外,向VPN客户端返回可用VPN服务端的连接信息以及网络质量检测策略之前,虚拟专用网络的连接方法还包括:根据存储的注册VPN服务端的注册信息,选取与VPN客户端匹配的注册VPN服务端作为可用VPN服务端,注册VPN服务端的注册信息包括:注册VPN服务端的端口号、注册VPN服务端的IP地址以及注册VPN服务端的运行协议类型,可用VPN服务端的连接信息包括可用VPN服务端的IP地址。注册服务器存储注册VPN服务端的注册信息,使得通过该注册服务器可以获取到各个注册VPN服务端的信息,便于增加注册VPN服务端的数量,且通过选取出与连接请求匹配的注册VPN服务端作为可用VPN服务端,进一步提高了VPN客户端接入VPN的成功率。
另外,连接请求包括:VPN客户端的端口号和VPN客户端的运行协议类型;根据存储的注册VPN服务端的注册信息,选取与VPN客户端匹配的注册VPN服务端作为可用VPN服务端,具体包括:获取VPN客户端的端口号和VPN客户端的运行协议类型;针对注册VPN服务端的注册信息进行如下处理:判断注册VPN服务端的注册信息是否均与VPN客户端的端口号以及VPN客户端的运行协议类型匹配;若均匹配,则将注册VPN服务端作为可用VPN服务端。由于不同的VPN客户端用于接入VPN的端口号和运行协议类型不同,通过分别对VPN客户端的端口号和运行协议进行匹配,可以快速选出与该VPN客户端匹配的注册VPN服务端,提高确定可用VPN服务端的速度。
另外,接收虚拟专用网络VPN客户端发送的连接请求之前,虚拟专用网络的连接方法还包括:接收VPN服务端发送的注册信息,VPN服务端的注册信息包括VPN服务端的端口号、VPN服务端的IP地址以及VPN服务端的运行协议类型;根据VPN服务端的注册信息,确定注册VPN服务端;存储每注册VPN服务端的注册信息。由于不是对所有接收到的VPN服务端的注册信息均进行存储,而是存储注册VPN服务端的注册信息,因而可以减小存储的数据量,进一步提高后续对可用VPN服务端的确定速度。
另外,根据VPN服务端的注册信息,确定注册VPN服务端,具体包括:获取注册信息中VPN服务端的IP地址以及VPN服务端的运行协议类型;向IP地址发送指定的探测包,指定的探测包的运行协议类型与VPN服务端的运行协议类型相同;判断是否收到VPN服务端的反馈信息,若是,则将VPN服务端作为注册VPN服务端。对VPN服务端发送探测包,可以检测该VPN服务端的端口是否可用,或者检测VPN服务端网络是否可用,若接收到反馈信息后,可以确定该VPN服务端端口可用且网络正常,则确定该VPN服务端为注册VPN服务端,通过探测包的检测可以快速确定出注册VPN服务端。
另外,虚拟专用网络的连接方法还包括:每隔第一预设时长重新确定注册VPN服务端,并更新存储的注册VPN服务端的注册信息;每隔第二预设时长更新网络质量检测策略。定时更新注册VPN服务端的注册信息,可以确保该注册服务器内存储的VPN服务端网络正常且端口可用;定时更新网络质量检测策略,确保后续VPN客户端获取的网络质量检测策略最新,更符合网络质量的检测。
具体实施方式
为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合附图对本发明的各实施方式进行详细的阐述。然而,本领域的普通技术人员可以理解,在本发明各实施方式中,为了使读者更好地理解本申请而提出了许多技术细节。但是,即使没有这些技术细节和基于以下各实施方式的种种变化和修改,也可以实现本申请所要求保护的技术方案。
以下各个实施例的划分是为了描述方便,不应对本发明的具体实现方式构成任何限定,各个实施例在不矛盾的前提下可以相互结合相互引用。
目前的OpenVPN***中包括多个待连接的VPN服务端,通常在VPN客户端的配置文件中配置多个VPN服务端的连接信息,例如,VPN服务端的IP地址或VPN服务端的域名信息。VPN客户端根据配置文件中VPN服务端的连接信息的顺序,尝试连接该配置文件中的第一VPN服务端,若连接第一VPN服务端失败,则按照VPN服务端的连接信息的顺序,尝试连接第二VPN服务端直至与某一个VPN服务端连接成功为止。例如,该OpenVPN***的结构如图1所示,该VPN客户端的配置文件中配置了2个VPN服务端,顺序为VPN服务端01和VPN服务端02;那么该VPN客户端获取到配置文件中的2个VPN服务端的连接信息,首先尝试连接VPN服务端01,若连接失败,则继续尝试连接VPN服务端02。若首次连接VPN服务端01,连接成功,则该VPN客户端与VPN服务端01进行数据传输;当该OpenVPN***中增加了VPN服务端03(图1中未示出),为了保证VPN客户端成功接入VPN,需要更新该VPN客户端的配置文件。若当VPN服务端02的IP地址变更,则需要更新该VPN客户端的配置文件或变更VPN服务端的域名解析记录,这导致不能快速获取VPN服务端的变化信息,不能大规模应用该VPN***。
本发明的第一实施方式涉及一种虚拟专用网络的连接方法。该虚拟专用网络的连接方法应用于注册服务器,该注册服务器分别连接VPN客户端和VPN服务端。该虚拟专用网络的连接方法的具体流程如图2所示。
步骤101:接收虚拟专用网络VPN客户端发送的连接请求,连接请求用于请求连接VPN服务端。
具体的说,增加注册服务器,该注册服务器分别连接VPN客户端和VPN服务端,该注册服务器与VPN客户端和VPN服务端之间的连接结构如图3所示,图3中包括多个VPN客户端和多个VPN服务端,图3中的实线表示VPN客户端与VPN服务端之间连接成功的通信连接,虚线表示VPN客户端与VPN服务端连接之前,VPN客户端与注册服务器,或者VPN客户端与注册服务器之间的通信连接,该VPN客户端和VPN服务端的数目可以根据实际需要进行设置,本实施方式中不进行限制。
该VPN客户端的配置文件中的配置信息可以为该注册服务器的连接信息,例如,配置信息为该注册服务器的IP地址或该注册服务器的域名信息。当VPN客户端需要连接VPN服务端时,可以通过该VPN客户端的配置信息获取注册服务器的连接信息,进而快速向该注册服务器发送连接请求,该连接请求中可以包括该VPN客户端的端口、运行协议类型等。该运行协议类型如:TCP协议或UDP协议等;注册服务器接收该VPN客户端发送的连接请求。
步骤102:向VPN客户端返回可用VPN服务端的连接信息以及网络质量检测策略,网络质量检测策略是检测可用VPN服务端的网络质量的策略。其中,由VPN客户端根据网络质量检测策略,选取待连接的VPN服务端进行连接。
具体的说,该注册服务器存储有N个注册VPN服务端的注册信息,N为大于0的整数;即可以存储一个VPN服务端的注册信息,还可以存储多个VPN服务端的注册信息。针对每个VPN服务端的注册信息包括:注册VPN服务端的端口号、注册VPN服务端的IP地址以及该注册VPN服务端的运行协议类型。可以理解的是,还可以存储该VPN服务端的其他信息,例如,该VPN服务端的带宽等。
一个例子中,在接收到VPN客户端发送的连接请求后,可以将存储的注册VPN服务端均作为可用VPN服务端,可以将注册VPN服务端的注册信息作为可用VPN服务端的连接信息。将确定的可用VPN服务端的连接信息返回至该VPN客户端。
另外,该注册服务器还存储有网络质量检测策略,该网络质量检测策略可以是用于计算VPN服务端网络质量的计算公式,该计算公式可以基于VPN服务端的丢包率计算该VPN服务端的网络质量。由于将网络质量检测策略存储在注册服务器,使得当变更该网络质量检测策略后,无需对VPN客户端进行变更,确保了VPN客户端每次获取的网络质量检测策略均为最新的网络质量检测策略,提高了对网络质量检测的准确性。
在另一个例子中,可以根据存储的注册VPN服务端的注册信息,选取与VPN客户端匹配的注册VPN服务端作为可用VPN服务端。
可用VPN服务端的连接信息包括可用VPN服务端的IP地址。可以根据连接请求,从注册VPN服务端中筛选出可用VPN服务端,由于返回的连接信息中不包含该VPN客户端不可使用的VPN服务端,进而提高VPN客户端接入VPN的速度。该连接请求包括:VPN客户端的端口号和VPN客户端的运行协议类型。
选取与VPN客户端匹配的注册VPN服务端作为可用VPN服务端具体过程为:获取VPN客户端的端口号和VPN客户端的运行协议类型。针对每个注册VPN服务端的注册信息进行如下处理:判断注册VPN服务端的注册信息是否均与VPN客户端的端口号以及VPN客户端的运行协议类型匹配;若均匹配,则将注册VPN服务端作为可用VPN服务端。
具体的说,查找与VPN客户端的端口号匹配且与该VPN客户端的运行协议类型匹配的注册VPN服务端的注册信息,因此,可以采用遍历的方式,依次对每个注册VPN服务端的注册信息进行判断,查找出与VPN客户端的端口号匹配且与该VPN客户端的运行协议类型匹配的注册VPN服务端的注册信息。将匹配的注册VPN服务端作为可用VPN服务端,该可用VPN服务端的连接信息可以包括:该可用VPN服务端的IP地址。例如,注册服务器存储有3个注册VPN服务端的注册信息,分别为注册信息A、注册信息B和注册信息C,判断注册信息A是否均与VPN客户端的端口号以及运行协议类型匹配,若该注册信息A中的端口号与VPN客户端的端口号相同,且该注册信息A中的运行类型与该VPN客户端的运行类型相同,则确定该注册信息A与VPN客户端的端口号和该VPN将客户端的运行协议类型均匹配,将该注册信息A对应的注册VPN客户端作为可用VPN服务端。若该注册信息B中的端口号与VPN客户端的端口号相同,且该注册信息B中的运行类型与该VPN客户端的运行类型不相同,则确定该注册信息B与该VPN将客户端的运行协议类型不匹配,则确定该注册信息B对应的注册VPN客户端不是可用VPN服务端。若该注册信息C中的端口号与VPN客户端的端口号不相同,且该注册信息C中的运行类型与该VPN客户端的运行类型相同,则确定该注册信息C与该VPN将客户端的端口号不匹配,确定该注册信息C对应的注册VPN客户端不是可用VPN服务端。
在确定了可用VPN服务端后,即可确定出该可用VPN服务端的连接信息,例如,将该可用VPN服务端的IP地址作为该可用VPN服务端的连接信息。
将可用VPN服务端的连接信息和网络质量检测策略返回VPN客户端,该VPN客户端接收到可用VPN服务端的连接信息和网络质量检测策略后,可以根据该网络质量检测策略对可用VPN服务端进行网络质量的检测,选取最大网络质量的VPN服务端作为待连接的服务端进行连接。该网络质量检测策略可以是基于可用VPN服务端的往返时间和丢包率的计算公式;例如,网络质量检测策略为计算网络质量的公式,即网络质量=权重1*往返时间+丢包率*权重2,权重1和权重2为预设值。
本发明实施方式相对于现有技术而言,注册服务器在接收VPN客户端发送的连接请求后,向VPN服务端返回可用VPN服务端的连接信息,由于可用VPN服务端的连接信息是由注册服务器提供,而不是由客户端配置文件中的配置信息提供,使得即使增加了可用VPN服务端的IP地址,也不需要对VPN客户端进行更新,提高了VPN客户端的适用性;另外VPN客户端根据网络质量检测策略,可以选取待连接的VPN服务端进行连接,通过该网络质量检测策略可以确定出可用VPN服务端的网络质量,从而使得确定的待连接VPN服务端可以提供更好的网络质量,增加了VPN客户端接入VPN服务端的成功率以及提高连接VPN服务端的网络质量。
本发明的第二实施方式涉及一种虚拟专用网络的连接方法。第二实施方式是对第一实施方式的进一步改进,主要改进之处在于:在本发明第二实施方式中,在接收虚拟专用网络VPN客户端发送的连接请求之前,存储注册VPN服务端的注册信息。该第二实施方式中存储注册VPN服务端的注册信息的具体实现如图4所示。
步骤201:接收VPN服务端发送的注册信息,VPN服务端的注册信息包括VPN服务端的端口号、VPN服务端的IP地址以及VPN服务端的运行协议类型。
具体的说,注册服务器可以实时接收VPN服务端发送的注册信息,该VPN服务端的数目可以为1个,也可以为多个,本实施方式中VPN服务端的个数为多个。可以在VPN服务端与注册服务器建立连接后,该VPN服务端向该注册服务器发送注册信息。
步骤202:根据VPN服务端的注册信息,确定注册VPN服务端。
一个例子中,对每个VPN服务端的注册信息进行如下处理:获取注册信息中VPN服务端的IP地址以及VPN服务端的运行协议类型;向IP地址发送指定的探测包,指定的探测包的运行协议类型与VPN服务端的运行协议类型相同;判断是否收到VPN服务端的反馈信息,若是,则将VPN服务端作为注册VPN服务端。
具体的说,由于每个探测包支持不同的运行协议类型,通过获取VPN服务端的运行协议类型,确定与该VPN服务端对应指定的探测包,该指定的探测包的运行协议类型与VPN服务端的运行协议类型相同。根据VPN服务端的IP地址,向该VPN服务端发送指定的探测包;若接收到VPN服务端的反馈信息,则将该VPN服务端端作为注册VPN,若未接收到VPN服务端的反馈信息,则不对该VPN服务端的注册信息进行存储。其中,指定的探测包可以用于检测VPN服务端的端口是否可用,或者检测VPN服务端的网络是否可用。
步骤203:存储注册VPN服务端的注册信息。
可以理解的是,为了确定注册VPN服务端的注册信息的准确以及网络质量检测策略的准确性,可以每隔第一预设时长重新确定注册VPN服务端,并更新存储的注册VPN服务端的注册信息;每隔第二预设时长更新网络质量检测策略。
具体的说,第一预设时长和第二预设时长都可以根据需要进行设置,例如,第一预设时长可以为24小时,第二预设时长可以为1月。网络质量检测策略可以每月检测网络中是否存新的网络质量检测策略,若是存在,则更新存储的网络质量检测策略为最新的网络质量检测策略。
本实施方式提供的虚拟专用网络的连接方法,由于不是对所有接收到的VPN服务端的注册信息均进行存储,而是存储注册VPN服务端的注册信息,因而可以减小存储的数据量,进一步提高后续对可用VPN服务端的确定速度;另外定时更新注册VPN服务端的注册信息,可以确保该注册服务器内存储的VPN服务端网络正常且端口可用;定时更新网络质量检测策略,确保后续VPN客户端获取的网络质量检测策略最新,更符合网络质量的检测。
上面各种方法的步骤划分,只是为了描述清楚,实现时可以合并为一个步骤或者对某些步骤进行拆分,分解为多个步骤,只要包括相同的逻辑关系,都在本专利的保护范围内;对算法中或者流程中添加无关紧要的修改或者引入无关紧要的设计,但不改变其算法和流程的核心设计都在该专利的保护范围内。
本发明第三实施方式涉及一种虚拟专用网络的连接方法,该虚拟专用网络的连接方法应用于VPN客户端,该虚拟专用网络的连接方法的具体流程如图5所示。
步骤301:向注册服务器发送连接请求。
具体的说,VPN客户端与注册服务器连接,该注册服务器与VPN服务端连接,该VPN服务端的个数可以为1个或多个。在该VPN客户端的配置文件的配置信息可以为注册服务器的连接信息,该连接信息可以是该注册服务器的IP地址或该注册服务器的域名信息。获取该配置文件中的注册服务器的连接信息,根据该连接信息,向该注册服务器发送连接请求。连接请求包括:该VPN客户端的端口号、该VPN客户端的运行协议类型。
步骤302:接收服务端返回的可用VPN服务端的连接信息和网络质量检测策略。
具体的说,注册服务器接收该连接请求,返回可用VPN服务端的连接信息,以及网络质量检测策略,该网络质量检测策略是检测可用VPN服务端的网络质量的策略,例如,可以是计算网络质量的计算公式,网络质量=权重1*往返时间+丢包率*权重2,权重1和权重2为预设值。
步骤303:根据网络质量检测策略,选取待连接的VPN服务端进行连接。
在一个例子中,若可用VPN服务端的数目为多个,则选取待连接的VPN服务端进行连接包括如下子步骤,如图6所示。
S31:根据网络质量检测策略,确定每个可用VPN服务端的网络质量。
一个例子中,每个可用VPN服务端的连接信息包括:可用VPN服务端的IP地址;针对每个可用VPN服务端进行如下处理:根据可用VPN服务端的IP地址,向可用VPN服务端发送探测信息;获取可用VPN服务端的往返时间值和丢包率;根据网络质量检测策略,以及可用VPN服务端的往返时间值和丢包率,计算可用VPN服务端的网络质量。
具体的说,每个VPN服务端的连接信息包括:可用VPN服务端的IP地址,根据每个可用VPN服务端进行如下处理:向VPN服务端发送探测信息,接收该可用VPN服务端返回的往返时间(round trip time,简称“rtt”)和丢包率,通过rtt和丢包率,即可确定该可用VPN服务端的网络质量。例如,网络质量检测策略为计算网络质量的公式,即网络质量=权重1*往返时间+丢包率*权重2,权重1和权重2为预设值,那么根据该公式即可确定出每个可用VPN服务端的网络质量。
子步骤S32:基于网络质量对每个可用VPN服务端进行排序。
具体的说,可以基于网络质量对每个可用VPN服务端进行排序,例如,可以按照网络质量的降序对每个可用VPN服务端进行排序,或者可以按照网络质量的升序对每个可用VPN服务端进行排序。
子步骤S33:选取最大网络质量所对应的所述可用VPN服务端作为待连接VPN服务端,连接待连接VPN服务端。
不难发现,本实施方式为与第一实施方式相对应的***实施例,本实施方式可与第一实施方式互相配合实施。第一实施方式中提到的相关技术细节在本实施方式中依然有效,为了减少重复,这里不再赘述。相应地,本实施方式中提到的相关技术细节也可应用在第一实施方式中。
本发明第四实施方式涉及一种服务器,该服务器40的具体结构如图7所示,包括:至少一个处理器401;以及,与至少一个处理器401通信连接的存储器402;其中,存储器402存储有可被至少一个处理器401执行的指令,指令被至少一个处理器401执行,以使至少一个处理器401能够执行第一实施方式或第二实施方式虚拟专用网络的连接方法。
本发明第五实施方式涉及一种客户端,该客户端50的具体结构如图8所示,包括:至少一个处理器501;以及,与至少一个处理器501通信连接的存储器502;其中,存储器502存储有可被至少一个处理器501执行的指令,指令被至少一个处理器501执行,以使至少一个处理器501能够执行第三实施方式的虚拟专用网络的连接方法。
第四实施方式或第五实施方式中的存储器和处理器均采用总线方式连接,总线可以包括任意数量的互联的总线和桥,总线将一个或多个处理器和存储器的各种电路链接在一起。总线还可以将诸如***设备、稳压器和功率管理电路等之类的各种其他电路链接在一起,这些都是本领域所公知的,因此,本文不再对其进行进一步描述。总线接口在总线和收发机之间提供接口。收发机可以是一个元件,也可以是多个元件,比如多个接收器和发送器,提供用于在传输介质上与各种其他装置通信的单元。经处理器处理的数据通过天线在无线介质上进行传输,进一步,天线还接收数据并将数据传送给处理器。
处理器负责管理总线和通常的处理,还可以提供各种功能,包括定时,***接口,电压调节、电源管理以及其他控制功能。而存储器可以被用于存储处理器在执行操作时所使用的数据。
本发明第六实施方式涉及一种计算机可读存储介质,存储有计算机程序,计算机程序被处理器执行时实现第一实施方式或第二实施方式中的虚拟专用网络的连接方法。
本发明第七实施方式涉及一种计算机可读存储介质,存储有计算机程序,计算机程序被处理器执行时实现第三实施方式中的虚拟专用网络的连接方法。
本领域技术人员可以理解实现上述实施例方法中的全部或部分步骤是可以通过程序来指令相关的硬件来完成,该程序存储在一个存储介质中,包括若干指令用以使得一个设备(可以是单片机,芯片等)或处理器(processor)执行本申请各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(ROM,Read-OnlyMemory)、随机存取存储器(RAM,Random Access Memory)、磁碟或者光盘等各种可以存储程序代码的介质。
本领域的普通技术人员可以理解,上述各实施方式是实现本发明的具体实施例,而在实际应用中,可以在形式上和细节上对其作各种改变,而不偏离本发明的精神和范围。