[BUG] 与 AdGuard 的 VPN 模式存在兼容性问题
描述此错误
2.4.14版本的clash和adguard通过代理转发方式同时开启,代理功能正常,可以访问Google网站,经过测试,clash 2.4.14以后的更新的版本,与adguard共存时代理功能就不起作用。2.4.14该版本虽然可以正常与adguard共存使用,但是却不支持识别配置文件中proxy-providers下的filter参数,无法实现过滤。我希望clash和adguard共存使用的同时,也能对配置文件中的proxy-providers进行过滤。希望作者能提供解决方法
如何复现该错误
步骤 1: ...clash配置文件加入adguard dns参数 步骤 2: ...关闭clash自动路由系统流量 步骤 3: ...设置adguard代理转发至clash ...
设备信息
- 机型:Samsung s22 ultra
- 系统类型:ONE UI
- Android 版本:12
应用信息
- 版本:2.5.2-premium以及更新的版本
- 安装包文件名:cfa-2.5.2-premium-arm64-v8a-release.apk
- 应用来源:github 和 Googleplay
配置文件
port: 7890
socks-port: 7891
allow-lan: true
mode: rule
log-level: info
external-controller: :9090
dns:
enable: true
ipv6: false
listen: 127.0.0.1:5450
enhanced-mode: redir-host
default-nameserver:
- 119.29.29.29
- 119.28.28.28
- 1.0.0.1
- 208.67.222.222
- 1.2.4.8
nameserver:
- https://dns.alidns.com/dns-query
- https://1.1.1.1/dns-query
- tls://dns.adguard.com:853
d: &d #订阅参数
type: http
interval: 3600
path: ./Proxies/x.yaml
url:
health-check:
enable: true
url: https://i.ytimg.com/generate_204
interval: 300
proxy-providers:
一:
<<: *d
hk1:
<<: *d
filter: ^(.*)(香港|HK|Hong)+(.*)$
tw1:
<<: *d
filter: ^(.*)(台|TW|Tai)+(.*)$
jp1:
<<: *d
filter: ^(.*)(日本|JP|韩|Japan)+(.*)$
sg1:
<<: *d
filter: ^(.*)(新加坡|狮城|SG|Singapore)+(.*)$
us1:
<<: *d
filter: ^(.*)(美国|US|States|American)+(.*)$
日志
无
屏幕截图
No response
附加信息
No response
你不给日志我怎么给方法 拿水晶球占卜吗
以及 AdGuard 的配置以及日志
我怎么给方法拿水晶球占卜呢?
以及 AdGuard 的配置和日志
好的,下面是adguard的设置,和分别访问Google和YouTube失败的日志。我是在同时使用clash 2.4.14和adguard可正常访问Google、YouTube的情况下,通过play商店直接更新2.5.9版本,更新之后便无法正常访问了。

enhanced-mode 改 fake-ip
enhanced-mode改fake-ip
不好意思,改成fake-ip后,我多试了几次发现还是不能正常访问,抓取到的日志也是和上面的一样。同时我发现一个现象,可能有帮助:重新安装clash 2.4.14,在adguard添加dns服务器127.0.0.1:5450,这时可以正常连接并且添加成功;把clash版本更新到2.5.9,并且删掉adguard刚才添加的dns服务器,重新添加一次,此时提示无连接,似乎是新版本的监听端口失效了

enhanced-mode改fake-ip
以上是我新发现并重新提交的问题
Clash 关闭 -> 打开日志捕获 -> Clash 打开 -> 重现 -> 上传日志
Clash 关闭 -> 打开日志捕获 -> Clash 打开 -> 重现 -> 上传日志
clash 2.5.9。adguard添加dns服务器失败日志
设置 -> 覆写 -> DNS 策略 -> 不修改
设置 -> 覆写 -> DNS 策略 -> 不修改
修改后adguard已成功添加dns服务器,但无法访问Google、YouTube。下面是访问两个网站的日志
clash-1662899229889.log

下载安装 Termux
然后输入命令
/system/bin/curl --proxy socks5://127.0.0.1:7891 https://www.google.com/generate_204 -vv
回车
然后截图结果
图一是dns策略为“不修改”;图二是dns策略为“使用内置”。经测试两种选择都不能正常访问
图一
图二
0a3c17b08.jpg)
打开日志捕获
DNS 改成
dns:
enable: true
listen: "127.0.0.1:5450"
enhanced-mode: fake-ip
use-hosts: false
nameserver:
- 119.29.29.29
- 223.5.5.5
然后去 AdGuard 检查 代理设置
复现问题 (至少要等 10s 左右
上传日志
打开日志捕获
DNS 改成
dns: enable: true listen: "127.0.0.1:5450" enhanced-mode: fake-ip use-hosts: false nameserver: - 119.29.29.29 - 223.5.5.5然后去 AdGuard 检查 代理设置
复现问题 (至少要等 10s 左右
上传日志
@AndyandAndy00 DNS 没有经过 Clash 你需要检查 AdGuard 的 DNS 设置
@AndyandAndy00 DNS 没有经过 Clash 你需要检查 AdGuard 的 DNS 设置
1、实操步骤为:关闭clash→打开日志捕捉→开启clash→打开adguard重新添加dns(为确保adguard的dns和clash是连接的;此时clash dns的设置为“不修改”,因为在”使用内置“的模式下,adguard无法添加dns)→检查adguard代理设置正确→浏览网页 2、表现为:刚设置完时可打开Google、YouTube等网页,但加载速度很慢,继续测试多次浏览,速度越来越慢,几分钟后两个网站彻底无法访问。(日志记录较长,问题主要记录在后面部分) clash-9.13.log
@AndyandAndy00 把规则里的 REJECT 全部移除
目前发现 可以重现的情况 只有在 AdGuard 使用 VPN + 通过代理连接到 Clash + Clash 使用 fake-ip 模式
其他情况例如 AdGuard 使用 ROOT + 通过/不通过代理连接 Clash + Clash 使用 fake-ip 模式 不会重现
所以 我也不知道为什么
目前发现 可以重现的情况 只有在
AdGuard 使用 VPN + 通过代理连接到 Clash + Clash 使用 fake-ip 模式其他情况例如
AdGuard 使用 ROOT + 通过/不通过代理连接 Clash + Clash 使用 fake-ip 模式不会重现所以 我也不知道为什么
非root环境下,同一套配置文件,用2.4.14版本就没问题,一更新后面的任意一个版本就不行,就非常奇怪,可能是跟新版本的核心不兼容吧。已经退回2.4.14版本使用,就是不能用filter过滤,配置要麻烦点。还是感谢花时间排查问题,辛苦了大佬
@AndyandAndy00 2.4.14 的 fake-ip 也一样
AdGuard 里面把clash 规则关闭,禁止通过AdGuard流量。应该就可以了
AdGuard 里面把clash 规则关闭,禁止通过AdGuard流量。应该就可以了
一直是关着的,一开始看网上教程弄两者共存,就有这一步。我的配置文件已经改了,先用着旧版本吧,现在暂时不折腾了