一种网络代理方法、计算设备及可读存储介质技术

技术编号:29684436 阅读:15 留言:0更新日期:2021-08-13 22:08
本发明专利技术公开了一种网络代理方法,在计算设备中执行,计算设备包括转发模块和代理模块,该方法包括:当任一进程发送数据包时,转发模块判断计算设备中是否存在需要使用应用代理的应用和/或系统代理的应用。若存在需要使用应用代理的应用和/或系统代理的应用,则转发模块拦截数据包,并从数据包中获取进程的进程号;转发模块根据进程的进程号,获取进程需要使用的代理类型;转发模块根据进程需要使用的代理类型,将数据包转发到指定端口;代理模块监听指定端口,并在监听到数据包时,将数据包发送给代理服务器。本发明专利技术一并公开了相应的计算设备及可读存储介质。本发明专利技术的网络代理方法不需要依赖于环境变量等配置,同时还能实时生效,方便快捷。

【技术实现步骤摘要】
一种网络代理方法、计算设备及可读存储介质
本专利技术涉及计算机领域,尤其涉及一种网络代理方法、计算设备及可读存储介质。
技术介绍
随着网络的发展,代理服务器的使用越来越普遍。目前,网络代理机制主要分为两种,应用代理和系统代理。应用代理多采用注入的方式。例如proxychains-ng,其通过注入的方式重写connect方法,这样当获取调用connect方法的文件描述符时,便可以产生一个新的套接字socket与代理服务器建立连接。然而,采用注入的方式实现应用代理会造成打开应用依赖库的不稳定,并且以这种方式设置的代理无法实时生效,需要重启应用。系统代理则是采用检查系统设置环境变量的方式,例如shadowssr。具体地,系统设置环境变量,然后由应用通过自行使用该环境变量来使设置的系统代理生效。即,只有当系统设置了环境变量,且应用主动使用了该环境变量,设置的系统代理才能生效。显然,系统代理无法自动生效,使用起来较为复杂,并且其无法指定特定的使用进程。为此,亟需一种新的网络代理方法以解决上述问题。
技术实现思路
为此,本专利技术提供了一种网络代理方法、计算设备及可读存储介质,以力图解决或者至少缓解上面存在的问题。根据本专利技术的一个方面,提供一种网络代理方法,在计算设备中执行,计算设备包括转发模块和代理模块,该方法包括:当任一进程发送数据包时,转发模块判断计算设备中是否存在需要使用应用代理的应用和/或系统代理的应用;若存在需要使用应用代理的应用和/或系统代理的应用,则转发模块拦截数据包,并从数据包中获取进程的进程号;转发模块根据进程的进程号,获取进程需要使用的代理类型;转发模块根据进程需要使用的代理类型,将数据包转发到指定端口;代理模块监听指定端口,并在监听到数据包时,将数据包发送给代理服务器。可选地,在根据本专利技术的网络代理方法中,计算设备还包括内核模块,内核模块中注册有包含应用代理标志位和系统代理标志位的代理钩子函数,转发模块判断计算设备中是否存在需要使用应用代理的应用和/或系统代理的应用的步骤,包括:转发模块根据代理钩子函数,判断计算设备中是否存在需要使用应用代理的应用和/或系统代理的应用。可选地,在根据本专利技术的网络代理方法中,转发模块根据代理钩子函数,判断计算设备中是否存在需要使用应用代理的应用和/或系统代理的应用的步骤,包括:转发模块判断应用代理标志位和/或系统代理标志位是否为预设值;若应用代理标志位为预设值,则判定计算设备中存在需要使用应用代理的应用;若系统代理标志位为预设值,则判定计算设备中存在需要使用系统代理的应用;若应用代理和系统代理的标志位都为预设值,则判定计算设备中存在需要使用应用代理的应用和系统代理的应用。可选地,在根据本专利技术的网络代理方法中,内核模块中存储有用于记录需要使用应用代理的进程号的第一链表和用于记录不需要使用系统代理的进程号的第二链表,转发模块根据进程的进程号,获取进程需要使用的代理类型的步骤,包括:通过将进程的进程号与第一链表和第二链表中的进程号进行比对,来获取进程需要使用的代理类型。可选地,在根据本专利技术的网络代理方法中,通过将进程的进程号与第一链表和第二链表中的进程号进行比对,来获取进程需要使用的代理类型的步骤,包括:若计算设备中仅存在需要使用应用代理的应用,则通过将进程的进程号与第一链表进行比对,来获取进程需要使用的代理类型;若计算设备中仅存在需要使用系统代理的应用,则通过将进程的进程号与第二链表进行比对,来获取进程需要使用的代理类型;若计算设备中存在需要使用应用代理的应用和系统代理的应用,则将进程的进程号分别与第一链表和第二链表中的进程号进行比对,来获取进程需要使用的代理类型。可选地,在根据本专利技术的网络代理方法中,将进程的进程号分别与第一链表和第二链表中的进程号进行比对,来获取进程需要使用的代理类型的步骤,包括:若计算设备中存在需要使用应用代理的应用和系统代理的应用,则将进程的进程号与第一链表中的进程号进行比对;若进程的进程号与第一链表中的某一进程号相同,则确定进程需要使用应用代理;若进程的进程号与第一链表中的任一进程号都不相同,则将进程的进程号与第二链表中的进程号进行比对;若进程的进程号与第二链表中的任一进程号都不相同,则确定进程需要使用系统代理。可选地,在根据本专利技术的网络代理方法中,转发模块根据进程需要使用的代理类型,将数据包转发到指定端口的步骤,包括:若进程需要使用应用代理,则转发模块将数据包转发到应用代理对应的第一端口;若进程需要使用系统代理,则转发模块将数据包转发到系统代理对应的第二端口。可选地,在根据本专利技术的网络代理方法中,代理模块在监听到数据包时,将数据包发送给代理服务器的步骤,包括:若代理模块在第一端口监听到数据包,将数据包发送给应用代理服务器;若代理模块在第二端口监听到数据包,将数据包发送给系统代理服务器。可选地,在根据本专利技术的网络代理方法中,将数据包发送给应用代理服务器的步骤,包括:通过第一套接字接收数据包,并通过第二套接字将数据包发送给应用代理服务器。可选地,在根据本专利技术的网络代理方法中,将数据包发送给系统代理服务器的步骤,包括:通过第三套接字接收数据包,并通过第四套接字将数据包发送给系统代理服务器。可选地,在根据本专利技术的网络代理方法中,计算设备还包括监听模块,且计算设备的用户空间中存储有记录着需要使用应用代理的进程名的第一列表和记录着不需要使用系统代理的进程名的第二列表,该方法还包括:监听模块监听进程的创建信息,并在监听到进程的创建信息时,获取创建的进程的进程号;根据第一列表、第二列表、创建的进程的进程号和进程名,判断进程号是否需要使用应用代理和/或系统代理;若进程号需要使用应用代理,则将进程号添加至所述第一链表中;若进程号不需要使用系统代理,则将进程号添加至所述第二链表中。可选地,在根据本专利技术的网络代理方法中,还包括:内核模块监听进程的销毁信息;若监听到进程的销毁信息,则判断销毁的进程号是否在第一链表和/或第二链表中;若销毁的进程号在第一链表和/或第二链表中,则将销毁的进程号从第一链表和/或第二链表中移除。根据本专利技术的又一个方面,提供一种计算设备,包括:至少一个处理器;以及存储器,存储有程序指令,其中,程序指令被配置为适于由至少一个处理器执行,程序指令包括用于执行根据本专利技术的网络代理方法的指令。根据本专利技术的又一个方面,提供一种存储有程序指令的可读存储介质,当程序指令被计算设备读取并执行时,使得计算设备执行根据本专利技术的网络代理方法。根据本专利技术的网络代理方法,当任一进程发送数据包时,转发模块判断计算设备中是否存在需要使用应用代理的应用和/或系统代理的应用,若存在需要使用应用代理的应用和/或系统代理的应用,则转发模块拦截该数据包,并从此数据包中获取发送该数据包的进程号。然后,转发模块根据获取到的进程号,获取发送数据包的进程需要使用的代理类型,并根据该进程需要使用的代理类型,将数据包转发到指定端口。同时,代理模块监听指定端口,并在监听到数据包时,将数本文档来自技高网...

【技术保护点】
1.一种网络代理方法,适于在计算设备中执行,所述计算设备包括转发模块和代理模块,所述方法包括:/n当任一进程发送数据包时,所述转发模块判断所述计算设备中是否存在需要使用应用代理的应用和/或系统代理的应用;/n若存在需要使用应用代理的应用和/或系统代理的应用,则所述转发模块拦截所述数据包,并从所述数据包中获取所述进程的进程号;/n所述转发模块根据所述进程的进程号,获取所述进程需要使用的代理类型;/n所述转发模块根据所述进程需要使用的代理类型,将所述数据包转发到指定端口;/n所述代理模块监听所述指定端口,并在监听到所述数据包时,将所述数据包发送给代理服务器。/n

【技术特征摘要】
1.一种网络代理方法,适于在计算设备中执行,所述计算设备包括转发模块和代理模块,所述方法包括:
当任一进程发送数据包时,所述转发模块判断所述计算设备中是否存在需要使用应用代理的应用和/或系统代理的应用;
若存在需要使用应用代理的应用和/或系统代理的应用,则所述转发模块拦截所述数据包,并从所述数据包中获取所述进程的进程号;
所述转发模块根据所述进程的进程号,获取所述进程需要使用的代理类型;
所述转发模块根据所述进程需要使用的代理类型,将所述数据包转发到指定端口;
所述代理模块监听所述指定端口,并在监听到所述数据包时,将所述数据包发送给代理服务器。


2.如权利要求1所述的方法,其中,所述计算设备还包括内核模块,所述内核模块中注册有包含应用代理标志位和系统代理标志位的代理钩子函数,所述转发模块判断所述计算设备中是否存在需要使用应用代理的应用和/或系统代理的应用的步骤,包括:
所述转发模块根据所述代理钩子函数,判断所述计算设备中是否存在需要使用应用代理的应用和/或系统代理的应用。


3.如权利要求2所述的方法,其中,所述转发模块根据所述代理钩子函数,判断所述计算设备中是否存在需要使用应用代理的应用和/或系统代理的应用的步骤,包括:
所述转发模块判断所述应用代理标志位和/或系统代理标志位是否为预设值;
若所述应用代理标志位为预设值,则判定所述计算设备中存在需要使用应用代理的应用;
若所述系统代理标志位为预设值,则判定所述计算设备中存在需要使用系统代理的应用;
若所述应用代理和系统代理的标志位都为预设值,则判定所述计算设备中存在需要使用应用代理的应用和系统代理的应用。


4.如权利要求2或3所述的方法,其中,所述内核模块中存储有用于记录需要使用应用代理的进程号的第一链表和用于记录不需要使用系统代理的进程号的第二链表,所述转发模块根据所述进程的进程号,获取所述进程需要使用的代理类型的步骤,包括:
通过将所述进程的进程号与所述第一链表和第二链表中的进程号进行比对,来获取所述进程需要使用的代理类型。


5.如权利要求4所述的方法,其中,所述通过将所述进程的进程号与所述第一链表和第二链表中的进程号进行比对,来获取所述进程需要使用的代理类型的步骤,包括:
若所述计算设...

【专利技术属性】
技术研发人员:陈云雄
申请(专利权)人:统信软件技术有限公司
类型:发明
国别省市:北京;11

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

1