System.ArgumentOutOfRangeException: 索引和长度必须引用该字符串内的位置。 参数名: length 在 System.String.Substring(Int32 startIndex, Int32 length) 在 zhuanliShow.Bind() 一种用于保护移动端VPN的通信方法和系统技术方案_技高网

一种用于保护移动端VPN的通信方法和系统技术方案

技术编号:40529431 阅读:8 留言:0更新日期:2024-03-01 13:49
本发明专利技术提供了一种用于保护移动端VPN的通信方法和系统,在Flutter应用中,该方法包括:接收移动端发出指向目标请求服务器的通信请求;利用Wireguard‑go创建的Tun虚拟网络设备发送通信请求包括的IP数据包,并对IP数据包进行解析得到目标请求服务器的目标IP地址;若VPNService的路由的子网掩码覆盖目标IP地址,则调用直接与目标请求服务器通信的转发单元接收IP数据包,以将IP数据包由转发单元发送至目标请求服务器。本方案提供的用于保护移动端VPN的通信方法解决了Flutter应用下的子网掩码问题,能在Android设备上将指向目标请求服务器的请求直接端侧转到目标请求服务器。

【技术实现步骤摘要】

本专利技术涉及网络通信,特别涉及一种用于保护移动端vpn的通信方法和系统。


技术介绍

1、flutter是google开源的构建用户界面(ui)工具包,帮助开发者通过一套代码库高效构建多平台精美应用,支持移动、web、桌面和嵌入式平台。已经很多移动端应用采用flutter来构建android、ios的应用,以实现一套代码两端表现一致的完美运行。但在使用flutter开发需支持vpn服务的android应用时,该应用使用dart的库来编写socket通信时会遇到vpn的掩码路由覆盖目标请求服务器的ip地址的问题,此时请求通过vpn转发,并不会到达目标请求服务器。针对该问题通常会使用如下两种方案:1)android侧使用java或kotlin的原生语言开发socket通信,通过dart与java/kotlin的通信方法进行dart与java/kotlin之前的数据通信;但是无法与ios等其他平台复用,失去了使用flutter跨端开发的核心竞争力。2)vpn服务器做转发请求,将源指向目标请求服务器的请求在到达vpn服务器后,通过vpn服务器转发回目标请求服务器;但这样vpn服务器会承受不必要的请求压力,且目标请求服务器的响应效率受vpn服务器制约。因此,亟需一种flutter应用下android用于保护移动端vpn的通信方法和系统。


技术实现思路

1、为了解决现有技术存在的一个或多个技术问题,本专利技术实施例提供了一种用于保护移动端vpn的通信方法和系统。

2、第一方面,本专利技术提供了一种用于保护移动端vpn的通信方法,用在flutter应用中,所述方法包括:

3、接收使用vpnservice的移动端发出指向目标请求服务器的通信请求;

4、利用wireguard-go创建的tun虚拟网络设备发送所述通信请求包括的ip数据包,并对所述ip数据包进行解析得到所述目标请求服务器的目标ip地址;

5、判断所述vpnservice的路由的子网掩码是否覆盖所述目标ip地址;

6、若所述子网掩码覆盖所述目标ip地址,则调用转发单元接收所述ip数据包,以将所述ip数据包由所述转发单元发送至所述目标请求服务器;其中,所述转发单元用于建立所述tun虚拟网络设备与所述目标请求服务器的通信连接。

7、优选地,所述对所述ip数据包进行解析得到所述目标请求服务器的目标ip地址,包括:

8、在wireguard-go的routinereadfromtun方法内,对所述ip数据包进行字节分析,依据固定的ip协议头确定所述目标ip地址。

9、优选地,所述判断所述vpnservice的路由的子网掩码是否覆盖所述目标ip地址,包括:

10、对所述子网掩码进行解析,确定掩码范围;

11、判断所述目标ip地址是否匹配所述掩码范围;

12、若所述目标ip地址匹配所述掩码范围,则确定所述子网掩码覆盖所述目标ip地址。

13、优选地,所述转发单元内包括采用c语言构建的套接字,所述套接字通过使用java本地接口调用所述vpnservice的protect的函数,以使所述tun虚拟网络设备与所述目标请求服务器直接通信。

14、优选地,该方法还包括:

15、若所述子网掩码未覆盖所述目标ip地址,则通过wireguard加密的vpn隧道将所述ip数据包发送至所述目标请求服务器。

16、优选地,所述移动端包括android。

17、第二方面,本专利技术还提供了一种用于保护移动端vpn的通信系统,用在flutter应用中,所述系统包括:

18、通信请求模块,用于接收使用vpnservice的移动端发出指向目标请求服务器的通信请求;

19、解析模块,用于利用wireguard-go创建的tun虚拟网络设备发送所述通信请求包括的ip数据包,并对所述ip数据包进行解析得到所述目标请求服务器的目标ip地址;

20、判断模块,用于判断所述vpnservice的路由的子网掩码是否覆盖所述目标ip地址;

21、通信模块,用于在所述子网掩码覆盖所述目标ip地址时,调用转发单元接收所述ip数据包,以将所述ip数据包由所述转发单元发送至所述目标请求服务器;其中,所述转发单元用于建立所述tun虚拟网络设备与所述目标请求服务器的通信连接。

22、优选地,所述转发单元内包括采用c语言构建的套接字,所述套接字通过使用java本地接口调用所述vpnservice的protect的函数,以使所述tun虚拟网络设备与所述目标请求服务器直接通信。

23、第三方面,本专利技术还提供了一种计算设备,包括存储器和处理器,所述存储器中存储有计算机程序,所述处理器执行所述计算机程序时,实现上述任一项所述的用于保护移动端vpn的通信方法。

24、第四方面,本专利技术还提供了一种计算机可读存储介质,其上存储有计算机程序,当所述计算机程序在计算机中执行时,令计算机执行上述任一项所述的用于保护移动端vpn的通信方法。

25、本专利技术提供了一种用于保护移动端vpn的通信方法和系统,该方法在flutter应用中,接收到指向目标请求服务器的通信请求时,先通过tun虚拟网络设备将该通信请求中包括的ip数据包发出,通过解析得到该ip数据包中目标请求服务器的目标ip地址后,在判断出vpn服务器的子网掩码覆盖目标ip地址后,调用与目标请求服务器直接通信的转发单元接收ip数据包,以将ip数据包由转发单元直接发送至目标请求服务器。如此,在使用flutter开发需支持vpn服务的android应用时,即便遇到vpn的掩码路由覆盖目标请求服务器的ip地址的情况,也能将指向目标请求服务器的通信请求在一端就进行转发,不会继续请求到vpn服务器;同时也无需修改flutter中dart关于socket的代码,可实现fluttersocket的跨端能力。

本文档来自技高网...

【技术保护点】

1.一种用于保护移动端VPN的通信方法,其特征在于,在Flutter应用中,所述方法包括:

2.根据权利要求1所述的方法,其特征在于,所述对所述IP数据包进行解析得到所述目标请求服务器的目标IP地址,包括:

3.根据权利要求1所述的方法,其特征在于,所述判断所述VPNService的路由的子网掩码是否覆盖所述目标IP地址,包括:

4.根据权利要求1所述的方法,其特征在于,所述转发单元内包括采用C语言构建的套接字,所述套接字通过使用Java本地接口调用所述VPNService的protect的函数,以使所述Tun虚拟网络设备与所述目标请求服务器直接通信。

5.根据权利要求1所述的方法,其特征在于,还包括:

6.根据权利要求1至5中任一所述的方法,其特征在于,所述移动端包括Android。

7.一种用于保护移动端VPN的通信系统,其特征在于,在Flutter应用中,所述系统包括:

8.根据权利要求7所述的系统,其特征在于,所述转发单元内包括采用C语言构建的套接字,所述套接字通过使用Java本地接口调用所述VPNService的protect的函数,以使所述Tun虚拟网络设备与所述目标请求服务器直接通信。

9.一种计算设备,包括存储器和处理器,所述存储器中存储有计算机程序,所述处理器执行所述计算机程序时,实现如权利要求1-6中任一项所述的方法。

10.一种计算机可读存储介质,其上存储有计算机程序,当所述计算机程序在计算机中执行时,令计算机执行权利要求1-6中任一项所述的方法。

...

【技术特征摘要】

1.一种用于保护移动端vpn的通信方法,其特征在于,在flutter应用中,所述方法包括:

2.根据权利要求1所述的方法,其特征在于,所述对所述ip数据包进行解析得到所述目标请求服务器的目标ip地址,包括:

3.根据权利要求1所述的方法,其特征在于,所述判断所述vpnservice的路由的子网掩码是否覆盖所述目标ip地址,包括:

4.根据权利要求1所述的方法,其特征在于,所述转发单元内包括采用c语言构建的套接字,所述套接字通过使用java本地接口调用所述vpnservice的protect的函数,以使所述tun虚拟网络设备与所述目标请求服务器直接通信。

5.根据权利要求1所述的方法,其特征在于,还包括:

6.根据权利要求1至5中任一...

【专利技术属性】
技术研发人员:潘涛李飞刘琼姜海昆范宇
申请(专利权)人:长扬科技北京股份有限公司
类型:发明
国别省市:

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

1