一种linux应用程序的透明代理方法及系统技术方案

技术编号:39163314 阅读:22 留言:0更新日期:2023-10-23 15:03
本发明专利技术公开了一种linux应用程序的透明代理方法及系统,方法包括:获取代理服务器的配置信息并获取目标应用程序的信息;设置目标应用程序对应的防火墙过滤规则;监听到目标应用程序启动后,根据所述防火墙过滤规则截获目标应用程序的网络数据包,并根据代理服务器的配置信息,将截获的网络数据包通过透明代理转发到代理服务器。本发明专利技术能够对于各种linux应用程序统一进行代理控制,用户可按需同时对各应用代理进行设置,解决部分应用无法使用代理方式进行网络访问的问题。式进行网络访问的问题。式进行网络访问的问题。

【技术实现步骤摘要】
一种linux应用程序的透明代理方法及系统


[0001]本专利技术涉及网络通信技术,尤其涉及一种linux应用程序的透明代理方法及系统。

技术介绍

[0002]随着linux操作系统的生态不断完善,涌现了各种各样的linux应用程序。由于网络环境限制及安全性、访问速度等要求,这些应用程序在访问网络时经常需要使用代理方式。
[0003]在linux操作系统上使用代理功能时,由于linux上代理设置方式无法为全部应用提供代理功能,且各种应用程序自身不具备代理配置功能,现有技术存在以下缺陷:linux操作系统上支持系统代理的设置,系统代理主要采用设置环境变量代理的方式。设置后应用程序需在自身软件UI上手动配置代理服务器信息,但部分应用程序不支持设置系统代理,导致无法进行代理。此外,应用程序代理设置成功后,只有该应用程序的网络流量会经过代理服务器,其他应用程序的网络流量不受影响,面对多应用程序使用代理功能或者整个计算机处在代理网络环境中时即多种应用需要使用代理情况,用户需要频繁操作。
[0004]综上所述,因此需要在linux操作系统上实现一种通用的应用程序代理方法。

技术实现思路

[0005]本专利技术要解决的技术问题就在于:针对现有技术存在的技术问题,本专利技术提供一种linux应用程序的透明代理方法及系统,能够对于各种linux应用程序统一进行代理控制,用户可按需同时对各应用代理进行设置,解决部分应用无法使用代理方式进行网络访问的问题。
[0006]为解决上述技术问题,本专利技术提出的技术方案为:一种linux应用程序的透明代理方法,包括以下步骤:S101)获取代理服务器的配置信息并获取目标应用程序的信息;S102)设置目标应用程序对应的防火墙过滤规则;S103)监听到目标应用程序启动后,根据所述防火墙过滤规则截获目标应用程序的网络数据包,并根据代理服务器的配置信息,将截获的网络数据包通过透明代理转发到代理服务器。
[0007]进一步的,步骤S101具体包括:通过API接口,获取用户在交互界面输入的代理服务器的配置信息,并获取用户在交互界面选择的目标应用程序的信息。
[0008]进一步的,所述代理服务器的配置信息包括代理服务器IP、端口、协议中的一种或多种。
[0009]进一步的,步骤S102具体包括:使用iptables新增目标应用程序对应的mangle表和转发规则。
[0010]进一步的,所述mangle表用于标记目标应用程序的网络数据包,所述转发规则包
括:若当前网络数据包存在所述标记,将当前网络数据包转发至本地的透明代理服务,若当前网络数据包不存在所述标记,将当前网络数据包转发至路由。
[0011]进一步的,步骤S103具体包括:目标应用程序发送或者接收网络数据时,根据mangle表标记对应的网络数据包,将被标记的网络数据包转发至本地的透明代理服务;透明代理服务根据代理服务器的配置信息,将被标记的网络数据包转发至代理服务器。
[0012]进一步的,步骤S102还包括:初始化cgroups进程组;步骤S103中还包括:获取目标应用程序的进程号,将目标应用程序的进程号添加到cgroups进程组的指定路径中,以限制目标应用程序的网络资源。
[0013]进一步的,步骤S103中根据mangle表标记对应的网络数据包时,所述网络数据包具体是指cgroups进程组的指定路径中进程号对应的应用程序的网络数据包。
[0014]本专利技术还提出一种linux应用程序的透明代理系统,包括:应用代理界面交互单元,用于获取用户在交互界面输入的代理服务器的配置信息,并获取用户在交互界面选择的目标应用程序的信息;还用于监听到目标应用程序启动后,使能应用代理数据转发单元;应用代理数据转发单元,用于设置目标应用程序对应的防火墙过滤规则;还用于监听到目标应用程序启动后,根据所述防火墙过滤规则截获目标应用程序的网络数据包,并转发给应用代理透明代理单元;应用代理透明代理单元,用于根据代理服务器的配置信息,将截获的网络数据包通过透明代理转发到代理服务器。
[0015]本专利技术还提出一种透明代理系统,包括计算机设备,所述计算机设备被编程或配置以执行任一所述的linux应用程序的透明代理方法。
[0016]与现有技术相比,本专利技术的优点在于:1. 本专利技术针对所选取的目标应用程序配置对应的防火墙过滤规则,根据防火墙过滤规则截获目标应用程序的网络数据包,根据代理服务器的配置信息,将截获的网络数据包通过透明代理转发到代理服务器,可以由用户自主选择需要使用代理功能的应用程序,能够让无法自身设置代理功能的应用程序实现透明代理。
[0017]2. 本专利技术配置防火墙过滤规则时,通过使用iptables新增目标应用程序对应的mangle表和转发规则实现对应用程序网络数据进行标记和转发,通过将目标应用程序的进程号加入cgroups进程组的指定路径中来限制网络数据,以达到对目标应用程序的网络通信数据包进行监控,保证目标应用程序的网络数据包能够全部被标记转发。
附图说明
[0018]图1为本专利技术实施例中的方法流程图。
[0019]图2为本专利技术实施例中选中目标程序后设置对应防火墙过滤规则的流程图。
[0020]图3为本专利技术实施例中目标程序启动后将其网络数据包通过透明代理转发到代理服务器的流程图。
[0021]图4为本专利技术实施例的系统结构图。
[0022]图5为本专利技术实施例的系统的工作流程图。
具体实施方式
[0023]以下结合说明书附图和具体优选的实施例对本专利技术作进一步描述,但并不因此而限制本专利技术的保护范围。
[0024]在介绍各实施例的具体方案之前,先对于相关概念进行说明。
[0025]cgroups:即control groups,是Linux内核的一个功能,用来限制、控制与分离一个进程组的资源。
[0026]透明代理:透明代理是一种网络代理技术,它可以在不需要客户端配置的情况下,对网络通信进行代理和转发。它通常用于实现网络流量的过滤、监控、加密等功能。
[0027]iptables:iptables 是 Linux 防火墙系统的重要组成部分,iptables 的主要功能是实现对网络数据包进出设备及转发的控制。当数据包需要进入设备、从设备中流出或者由该设备转发、路由时,都可以使用 iptables 进行控制。
[0028]实施例一本实施例提出一种应用程序的透明代理方法,基于cgroups、iptables和透明代理,通过对应用程序的网络数据包进行标记转发,以达到在任何网络环境、任何应用程序代理方式网络访问。如图1所示,方法包括以下步骤:S101)获取代理服务器的配置信息并获取目标应用程序的信息;本实施例中,我们在linux系统中配置了应用代理服务,同时在上层应用中,增加应用代理参数配置的交互界面,以支持用户选择需要使用代理功能的应用程序。此外,在Linux后台服务,增加API接口,方便上层应用本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种linux应用程序的透明代理方法,其特征在于,包括以下步骤:S101)获取代理服务器的配置信息并获取目标应用程序的信息;S102)设置目标应用程序对应的防火墙过滤规则,具体包括:使用iptables新增目标应用程序对应的mangle表和转发规则;S103)监听到目标应用程序启动后,根据所述防火墙过滤规则截获目标应用程序的网络数据包,并根据代理服务器的配置信息,将截获的网络数据包通过透明代理转发到代理服务器。2.根据权利要求1所述的linux应用程序的透明代理方法,其特征在于,步骤S101具体包括:通过API接口,获取用户在交互界面输入的代理服务器的配置信息,并获取用户在交互界面选择的目标应用程序的信息。3.根据权利要求1所述的linux应用程序的透明代理方法,其特征在于,所述代理服务器的配置信息包括代理服务器IP、端口、协议中的一种或多种。4.根据权利要求1所述的linux应用程序的透明代理方法,其特征在于,所述mangle表用于标记目标应用程序的网络数据包,所述转发规则包括:若当前网络数据包被标记,将当前网络数据包转发至本地的透明代理服务,若当前网络数据包未被标记,将当前网络数据包转发至路由。5.根据权利要求1所述的linux应用程序的透明代理方法,其特征在于,步骤S103具体包括:目标应用程序发送或者接收网络数据时,根据mangle表标记对应的网络数据包,将被标记的网络数据包转发至本地的透明代...

【专利技术属性】
技术研发人员:郭俊余赵阳杨雄义蒋林轩史晶张辉程启
申请(专利权)人:麒麟软件有限公司
类型:发明
国别省市:

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

1