Aethersailor / Custom_OpenClash_Rules

分流完善的 OpenClash 订阅转换模板,搭配保姆级 OpenClash 设置教程,无需套娃即可实现完美分流、DNS无污染无泄漏,且快速的国内外上网体验。
https://t.me/custom_openclash_rules
Creative Commons Attribution Share Alike 4.0 International
754 stars 201 forks source link

给用subconvert的提个醒 #9

Closed XCJYO closed 3 months ago

XCJYO commented 3 months ago

由于我自己规则也很全面,就看看Aethersailor然后补充到自己的规则上面,结果怎么测试都存在DNS泄露,用Aethersailor的就没有泄露,openclash没改只能是订阅文件的问题

ruleset=🔮 AI,rules\Self\Clash\Ruleset\AI.list ruleset=🔮 AI,https://raw.githubusercontent.com/blackmatrix7/ios_rule_script/master/rule/Clash/Copilot/Copilot.list ruleset=🔮 AI,https://raw.githubusercontent.com/blackmatrix7/ios_rule_script/master/rule/Clash/OpenAI/OpenAI.list ruleset=🔮 AI,clash-classic:https://cdn.jsdelivr.net/gh/blackmatrix7/ios_rule_script@master/rule/Clash/BardAI/BardAI.yaml,86400 ruleset=🔮 AI,https://raw.githubusercontent.com/ACL4SSR/ACL4SSR/master/Clash/Ruleset/OpenAi.list ruleset=🔮 AI,clash-classic:https://raw.githubusercontent.com/blackmatrix7/ios_rule_script/master/rule/Clash/Claude/Claude.yaml,86400 ruleset=🔮 AI,clash-classic:https://cdn.jsdelivr.net/gh/blackmatrix7/ios_rule_script@master/rule/Clash/BardAI/BardAI.yaml,86400 ruleset=🔮 AI,clash-classic:https://cdn.jsdelivr.net/gh/blackmatrix7/ios_rule_script@master/rule/Clash/Gemini/Gemini.yaml,86400

试了一个多小时,每个ruleset逐个排查,最后发现是ruleset=🔮 AI,rules\Self\Clash\Ruleset\AI.list,我发现只要加了这一行,openclash里就会存在dns泄露,删掉就正常,目前不清楚什么原因,AI.list也只有两个配置 DOMAIN-KEYWORD,perplexity DOMAIN-SUFFIX,lingq.com openclash配置文件也没看出来异常,有可能是subconvert的 Bug

另外,我不是很理解DNS泄露是如何避免的,可能我搞错了openclash的原理,如访问一个链接, er6xxxxxxv-192.ipleak.net:443,openclash发现规则中没有后,不是会通过NameServer和fallback同时DNS查询吗,然后判定为国外IP走漏网之鱼,这时候用到NameServer查询不是已经dns泄露了吗,如果不进行dns查询的话,怎么知道这个域名走国内还是国外,只依靠GEO数据库和大陆白名单就够了吗?

另外,在此感谢Aethersailor作出的贡献

Aethersailor commented 3 months ago

你的 AI.list 的内容理论上并不会导致泄露,请问你的规则有没有引用一些体积巨大的规则碎片?比如某些条目达到数万条的规则文件 订阅转换网站大多对单个规则碎片的规则条目数量做了限制,如果引用的规则碎片中的条目超出了这个限制,那么转换后的配置文件的规则部分就会有所缺失。比如订阅转换网站限制单个规则碎片2000条,那么2000条之后的条目就会丢失,ipleak.net可能会命中的规则(包括漏网之鱼)因为缺失会不存在,肯定就产生泄露了。 个人推测有可能是上述情况,你可以观察一下 OpenClash > 配置管理页面左边的配置文件是否存在这个情况

关于如何避免泄露,在本仓库的模板中,所有 IP 类规则全部加了 no-resolve ,并且er6xxxxxxv-192.ipleak.net:443 会命中 ruleset=🐟 漏网之鱼,[]FINAL 这个策略组,然后按照 dashboard 中选择的节点直接就交给远端服务器解析了,不会再去依靠 NameServer 做判断,所以不会产生泄露

整个分流确实是在 GEO 数据库和大陆白名单的基础上完成的,用一些规则碎片做了一些补充,所有的 IP 类型规则都加了 no-resolve 这个是关键。缺点就是极个别的小众网站可能会走代理,但我实际日常使用中几乎没有影响