想给 eaf browser 加个黑白名单代理插件遇到个问题

好的,不急 谢谢! :grimacing:

你现在测试的时候,是多个页面的流量都会走各自的代理吗? 还是要等在当前页面加载完?

我简单瞄了一个错误,晚上回来继续 review.

晚上回来我看看这个方法通用不,通用就合并。

没法解决的话可以在EAF和真实代理之间自己写一个socks代理来劫持dns做中转,相当于自己实现了pac。

当然第二种方式又会存在跨平台测试。

目前基于 QtWebEngine 还是做不到多个页面的代理独立。

https://doc.qt.io/qt-5/qtwebengine-overview.html#proxy-support

需要等页面加载完。目前我测试基本是work的,而且正常场景下应该够用,但是确实存在多个页面同时loading的时候,代理可能要相互影响的问题

看来只有两条路,一条中转socks来配置规则,一条是把EAF多进程化,每个页面自己一个进程可以独立切换。

多进程的改动还比较复杂,能很好的解决每个进程之间独立代理的这个功能,但是会带来一个副作用,就是每一个页面打开速度都会降低,因为它会有一个Python进程的启动消耗。

个人不倾向这种改造方案,多进程的形式无疑会增大内存损耗,降低性能 :thinking:

其实EAF内部写一个socks5代理应该很容易,根据规则再看要不要转发给本地代理,这样就不用和chromium较劲了,哈哈哈哈哈。

那我也来试试 :grimacing:

1 个赞

我问了朋友,说不用自己写,你可以折腾一下 clash, 就是 socks5 server, 可以自定义规则:

  1. 安装 clash, 配置好规则和本地端口
  2. EAF 设置 socks5 端口到 clash 上
  3. clash 根据规则选择直连还是继续转发到本地的另外一个 socks5 client 上

我自己没有折腾过,欢迎折腾好发一下攻略哈,好多EAF用户都期待这个功能。

1 个赞

用起来了,不过看 clash 配置功能好多好复杂,感觉clash这个东西用来转发个规则有点杀鸡用牛刀的感觉,哈哈哈哈

等我摸索摸索两天配置先,再来写个攻略 :slight_smile:

2 个赞

通过Clash的规则的方式来转发

1 个赞