一种客户端访问内网资源的方法和可读存储介质技术

技术编号:37819201 阅读:11 留言:0更新日期:2023-06-09 09:51
本发明专利技术涉及通信技术领域,特别涉及一种客户端访问内网资源的方法和可读存储介质。其方法包括步骤S1.客户端通过与云服务器进行nat检测,确定nat类型;S2.客户端根据自身和主节点双方的nat类型,选择对应的穿透流程进行内网穿透,穿透成功后,使用心跳包维持内网隧道;S3.客户端创建虚拟网卡,并向主节点请求DHCP地址,添加对应路由表选项;S4.客户端向主节点请求其他节点信息,与其他节点建立内网隧道和心跳联系;S5.客户端将虚拟网卡发出的报文,对照节点信息表,通过对应内网隧道,发送给其他客户端,对端隧道收到报文并解密后发送给虚拟网卡,完成整个内网互访。用户只需要登录客户端,就可以自动组成sd

【技术实现步骤摘要】
一种客户端访问内网资源的方法和可读存储介质


[0001]本专利技术涉及通信
,特别涉及一种客户端访问内网资源的方法和可读存储介质。

技术介绍

[0002]当前IPv4地址逐渐枯竭,运营商必须使用nat转换技术给更多的用户提供上网机会,但这样也会导致这些用户之间是无法相互访问的,虽然可以向运营商申请专线业务如MPLS、T1等用来提供特定内网用户之间的互访,但这样就会带来如下的显而易见的问题:
[0003]第一,专线价格不菲,往往一年下来需要支付不少费用;
[0004]第二,专线维护麻烦,后期出现问题时排查困难。

技术实现思路

[0005]本专利技术提供一种客户端访问内网资源的方法和可读存储介质,旨在解决现有技术中的问题。
[0006]本专利技术提供一种客户端访问内网资源的方法,包括以下步骤:
[0007]S1.客户端通过与云服务器进行nat检测,确定客户端自身的nat类型;
[0008]S2.客户端根据自身和主节点双方的nat类型,选择对应的穿透流程进行内网穿透,穿透成功后,使用心跳包维持内网隧道;
[0009]S3.客户端创建虚拟网卡,并向主节点请求DHCP地址,并且添加对应路由表选项;
[0010]S4.客户端向主节点请求其他节点信息,并与其他节点建立内网隧道和心跳联系;
[0011]S5.客户端将虚拟网卡发出的报文,对照节点信息表,通过对应内网隧道,发送给其他客户端,对端隧道收到报文并解密后发送给虚拟网卡,完成整个内网互访。r/>[0012]作为本专利技术的进一步改进,所述步骤S1中,当客户端和云服务器无法通信时,则nat检测失败,并终止后续流程。
[0013]作为本专利技术的进一步改进,所述步骤S1中,当客户端和云服务器建立通信后,则执行nat检测流程,确定nat类型:云服务器绑定两个公网IP地址和各两个端口号,及IP1、IP2和Port1、Port2,具体流程包括:
[0014]S11.客户端将自身IP地址信息发送给云服务器IP1、Port1,由云服务器判断报文源地址和报文中携带的IP地址信息是否一致,并将结果告知客户端;客户端收到云服务器回包,获取检测结果,如果地址一致,则客户端为公网IP地址,终止继续检测;
[0015]S12.客户端继续发送信息给云服务器IP1、Port1,告知云服务器使用IP2、Port1回复该报文,如果客户端能收到云服务器回复的报文,则说明客户端nat为全锥型,终止继续检测;
[0016]S13.客户端继续发送信息给云服务器IP2、Port1,由云服务器判断报文来源端口是否和之前一致,并将结果返回给客户端;客户端收到报文后,如果端口不一致,则说明客户端nat为对称型,终止继续检测;
[0017]S14.客户端继续发送信息给云服务器IP2、Port1,告知云服务器使用IP2、Port2回复报文,如果客户端能收到云服务器回复的报文,则说明客户端nat为IP受限型;如果客户端收不到云服务器回复的报文,则说明客户端nat为IP端口受限型。
[0018]作为本专利技术的进一步改进,执行所述步骤S2时,包括以下情形:
[0019]S21.位于nat内网的客户端A,具有公网IP的主机客户端B之间相互打洞流程:
[0020]客户端A向云服务器发出连接客户端B的请求,云服务器返回可直接连接的信息后,客户端A直接连接客户端B的公网地址,连接成功后客户端B返回响应信息,客户端A接收到响应信息后开始向客户端B发出注册节点信息请求;
[0021]客户端B向云服务器发出连接客户端A的请求,云服务器向客户端A请求反向连接客户端B,客户端A反向连接客户端B成功后,客户端B返回响应信息,客户端A接收到响应信息后向云服务器发出反向连接客户端B成功的信息,云服务器将连接成功信号传输到客户端B后,客户端B开始向客户端A发出注册节点信息请求。
[0022]作为本专利技术的进一步改进,执行所述步骤S2时,包括以下情形:
[0023]S22.位于同一个nat后面的客户端A和客户端B相互打洞流程:
[0024]客户端A向云服务器发出连接客户端B的请求,云服务器返回同一nat下可直接连接的信息后,客户端A直接连接客户端B的内网地址,连接成功后客户端B返回响应信息,客户端A接收到响应信息后开始向客户端B发出注册节点信息请求。
[0025]作为本专利技术的进一步改进,执行所述步骤S2时,包括以下情形:
[0026]S23.分别位于不同nat后面的客户端A和客户端B相互打洞流程:
[0027]客户端A向云服务器发出连接客户端B的请求,云服务器向客户端A响应客户端B的公网地址信息,客户端A主动连接客户端B的公网地址,若nat为非完全锥形时则连接失败,客户端A向云服务器反馈连接失败的信息;云服务器向客户端B返回客户端A的公网地址信息,客户端B反向请求连接客户端A,由于之前客户端A与客户端B之间建立过连接而连接成功,连接成功后客户端A响应给对端的客户端B,客户端B向云服务器发出反向连接成功的信息,云服务器将连接成功信号传输到客户端A后,客户端A开始向客户端B发出注册节点信息请求。
[0028]作为本专利技术的进一步改进,执行所述步骤S2时,包括以下情形:
[0029]S24.分别位于多层nat后面的客户端A和客户端B相互打洞流程:
[0030]客户端A向云服务器发出连接客户端B的请求,云服务器向客户端A响应客户端B的内网地址信息,客户端A主动连接客户端B的内网地址,若请求直接连接失败,则客户端A向云服务器反馈连接失败的信息;云服务器向客户端A响应客户端B的外网地址信息,客户端A再次请求连接客户端B的外网地址,中转nat支持回环转发数据并连接失败,客户端A向云服务器反馈请求连接失败的信息,云服务器向客户端B请求反向连接客户端A的公网地址,客户端B反向请求连接客户端A公网地址信息,由于之前客户端A请求过客户端B公网地址而连接成功,连接成功后客户端A响应给对端的客户端B,客户端B向云服务器发出反向连接成功的信息,云服务器将连接成功信号传输到客户端A后,客户端A开始向客户端B发出注册节点信息请求。
[0031]作为本专利技术的进一步改进,所述步骤S4中,当客户端双方的nat类型为不可穿透型时,客户端请求主节点中转双方的数据信息,达到内网互访;当客户端双方的nat类型为可
穿透型时,双方客户端进行隧道打洞后,直接进行通信。
[0032]作为本专利技术的进一步改进,所述步骤S5具体包括步骤:
[0033]S51.客户端会将虚拟网卡发出的报文截获,校验合法性后,取出其单播报文,放到发包队列中,在发包队列中判断其是否为IP/ARP报文,查询发送节点信息并判断数据是否需要加密,若客户端与客户端通信则不需要加密,直接在原始报文数据前加上sd

wan头信息,重新封装成UDP报文进行发送;若客户端与主节点及其下挂的内网服务器通信则需要加密,客户端先和主节点协商出本文档来自技高网...

【技术保护点】

【技术特征摘要】
1.一种客户端访问内网资源的方法,其特征在于,包括以下步骤:S1.客户端通过与云服务器进行nat检测,确定客户端自身的nat类型;S2.客户端根据自身和主节点双方的nat类型,选择对应的穿透流程进行内网穿透,穿透成功后,使用心跳包维持内网隧道;S3.客户端创建虚拟网卡,并向主节点请求DHCP地址,并且添加对应路由表选项;S4.客户端向主节点请求其他节点信息,并与其他节点建立内网隧道和心跳联系;S5.客户端将虚拟网卡发出的报文,对照节点信息表,通过对应内网隧道,发送给其他客户端,对端隧道收到报文并解密后发送给虚拟网卡,完成整个内网互访。2.根据权利要求1所述客户端访问内网资源的方法,其特征在于,所述步骤S1中,当客户端和云服务器无法通信时,则nat检测失败,并终止后续流程。3.根据权利要求1所述客户端访问内网资源的方法,其特征在于,所述步骤S1中,当客户端和云服务器建立通信后,则执行nat检测流程,确定nat类型:云服务器绑定两个公网IP地址和各两个端口号,及IP1、IP2和Port1、Port2,具体流程包括:S11.客户端将自身IP地址信息发送给云服务器IP1、Port1,由云服务器判断报文源地址和报文中携带的IP地址信息是否一致,并将结果告知客户端;客户端收到云服务器回包,获取检测结果,如果地址一致,则客户端为公网IP地址,终止继续检测;S12.客户端继续发送信息给云服务器IP1、Port1,告知云服务器使用IP2、Port1回复该报文,如果客户端能收到云服务器回复的报文,则说明客户端nat为全锥型,终止继续检测;S13.客户端继续发送信息给云服务器IP2、Port1,由云服务器判断报文来源端口是否和之前一致,并将结果返回给客户端;客户端收到报文后,如果端口不一致,则说明客户端nat为对称型,终止继续检测;S14.客户端继续发送信息给云服务器IP2、Port1,告知云服务器使用IP2、Port2回复报文,如果客户端能收到云服务器回复的报文,则说明客户端nat为IP受限型;如果客户端收不到云服务器回复的报文,则说明客户端nat为IP端口受限型。4.根据权利要求1所述客户端访问内网资源的方法,其特征在于,执行所述步骤S2时,包括以下情形:S21.位于nat内网的客户端A,具有公网IP的主机客户端B之间相互打洞流程:客户端A向云服务器发出连接客户端B的请求,云服务器返回可直接连接的信息后,客户端A直接连接客户端B的公网地址,连接成功后客户端B返回响应信息,客户端A接收到响应信息后开始向客户端B发出注册节点信息请求;客户端B向云服务器发出连接客户端A的请求,云服务器向客户端A请求反向连接客户端B,客户端A反向连接客户端B成功后,客户端B返回响应信息,客户端A接收到响应信息后向云服务器发出反向连接客户端B成功的信息,云服务器将连接成功信号传输到客户端B后,客户端B开始向客户端A发出注册节点信息请求。5.根据权利要求1所述客户端访问内网资源的方法,其特征在于,执行所述步骤S2时,包括以下情形:S22.位于同一个nat后面的客户端A和客户端B相互打洞流程:客户端A向云服务器发出连接客户端B的请求,云服务器返回同一nat下可直接连接的信息后,客户端A直接连接客户端B的内网地址,连接成功后客户端B返回响应信息,客户端A
接收到响应信息后开始向客户端B发出注册节点信息请求...

【专利技术属性】
技术研发人员:龙赛杰周红叶
申请(专利权)人:深圳市吉祥腾达科技有限公司
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1