Open hiuxia opened 8 months ago
@hiuxia 请问你测试的是Reqable的哪个版本?
最新的 2.0 版本
@hiuxia 我这clash和surge这些操作一知半解,由相关的一些文章可以给我参考下吗?
感谢这么快的回复。我觉得可以参考 Surge 增强模式参考。
@hiuxia 我看了下,机制好像是创建一个虚拟网卡,所有流量从虚拟网卡经过,类似VPN的模式。这种模式下,数据包需要从网络层开始处理。Reqable本身是实现了应用层(包括SSL)的透明代理的,通过一些第三方工具,解析出应用层的数据包直接发给reqable即可。如果是全部集成到Reqable里面,需要一些第三方库的支持,兼容性也不好说,有难度。
您能推荐下相关的网络应用层解析工具吗?
获取 Outlook for iOShttps://aka.ms/o0ukef
发件人: Megatron King @.> 发送时间: Tuesday, December 26, 2023 2:20:08 PM 收件人: reqable/reqable-app @.> 抄送: hiuxia @.>; Mention @.> 主题: Re: [reqable/reqable-app] [feature] 支持透明代理 (Transparent proxy support) (Issue #337)
@hiuxiahttps://github.com/hiuxia 我看了下,机制好像是创建一个虚拟网卡,所有流量从虚拟网卡经过,类似VPN的模式。这种模式下,数据包需要从网络层开始处理。Reqable本身是实现了应用层(包括SSL)的透明代理的,通过一些第三方工具,解析出应用层的数据包直接发给reqable即可。如果是全部集成到Reqable里面,需要一些第三方库的支持,兼容性也不好说,有难度。
― Reply to this email directly, view it on GitHubhttps://github.com/reqable/reqable-app/issues/337#issuecomment-1869290960, or unsubscribehttps://github.com/notifications/unsubscribe-auth/AXLYB7VEBIXR4AA6PHEBNS3YLJUBRAVCNFSM6AAAAABA7MBREGVHI2DSMVQWIX3LMV43OSLTON2WKQ3PNVWWK3TUHMYTQNRZGI4TAOJWGA. You are receiving this because you were mentioned.Message ID: @.***>
@hiuxia 我看了下,机制好像是创建一个虚拟网卡,所有流量从虚拟网卡经过,类似VPN的模式。这种模式下,数据包需要从网络层开始处理。Reqable本身是实现了应用层(包括SSL)的透明代理的,通过一些第三方工具,解析出应用层的数据包直接发给reqable即可。如果是全部集成到Reqable里面,需要一些第三方库的支持,兼容性也不好说,有难度。
除了虚拟网卡方案,也有用eBPF实现的,参见这里 不过eBPF目前似乎只有linux比较成熟,其他平台不好说。windows似乎也有,可用程度不清楚
目前Windows有一个工具叫做HTTPDebuggerPro,可以实现全局的应用层抓包
Windows 上没有 iptables,我调查了目前大部分抓包类软件和科学类应用的透明代理实现方式,按照技术栈分类如下,总体来说推荐基于 Windows Filtering Platform (WFP) 的方案
这种方案利用了 Windows 提供的 WFP API,需要进行驱动级别的编程,然而有一些项目提供了封装好的易于使用的 API,比较著名的有 Netfilter SDK,WinDivert
比如:
这类方案的原理一般为先创建一个虚拟网卡,然后修改路由表将所有流量转发到代理,据说在性能上不如基于WFP的方案。Windows上主流开源方案有以下两个:
具体来说,有以下几个项目:
这类方案通过 hook connect 函数来实现流量的重定向。基于该方案的项目貌似比较少,已知 Proxifier 在 4.0 之间采取该方式实现全局流量捕获。
原因
单纯使用系统代理无法抓取一些应用的包,而使用透明代理(可以理解为 clash 或 surge的增强模式)可以有效的抓取。经过本人电脑上 surge 的测试,reqable 不能抓取的包 surge 可以有效的进行抓取(开启 http capture 和 https decrypt)
但是 surge 的抓包功能较为简陋,不能做到和 reqable 等网络调试工具一样的体验。
Feature 请求说明
希望能够在 system proxy 之外添加增强模式代理(网络层代理)从而实现更好的抓包体验。