ios_rule_script
ios_rule_script copied to clipboard
ChinaMax规则中的部分域名并非中国大陆域名
不提供任何关于客户端的配置、使用等帮助,此类问题请通过搜索引擎解决,相关Issues将直接关闭甚至删除。
规则仅是特定服务域名和IP地址的集合,请使用中华人民共和国合法的网络出入口信道访问相关服务。
反馈前请先确认:
- 请勿涉及政治、成人等敏感或非法内容
- 分流规则的更新需要等待次日凌晨生效
- 仅接受规则引起异常的反馈
- 已自行抓包明确引起异常的规则
- 不规范填写的Issue可能不会得到任何回复
规则名称:ChinaMaxNoIP_Domain.txt
规则链接:https://raw.githubusercontent.com/blackmatrix7/ios_rule_script/master/rule/Clash/ChinaMaxNoIP/ChinaMaxNoIP_Domain.txt
异常规则:见附件中的foreign.txt和dead.txt
问题描述:在对规则列表进行审计和二次清洗时,发现了部分规则压根不属于“中国大陆”的域名。 当前列表旨在作为中国大陆域名集合的规则集,其判断标准应是“域名有中国大陆服务器,且可稳定连通”。然而,引用列表的上游(https://raw.githubusercontent.com/Loyalsoldier/surge-rules/release/ruleset/direct.txt ) 使用了Loyalsoldier/v2ray-rules-dat中的数据,而它又使用了dnsmasq-china-list的数据。
然而,dnsmasq-china-list的本意是希望能够在DNS解析时进行一个初步的分流,以实现DNS解析的加速,只要域名有大陆NS服务器,就能进到这个列表中。
但是众所周知,有大陆NS服务器并不代表其一定有大陆服务器,不少网站建站时使用了阿里云、腾讯云国际站的服务,而它们就会给这些网站分配大陆NS服务器。
这种判断标准的错位,导致大量域名被错误地归类,严重影响了列表的准确性和用户的实际连接体验。
我使用dnsx,设置五路DNS(阿里、腾讯、南京信风114、CNNIC和本地运营商)并发进行了初步筛选,只要域名本身和其www.开头有大陆IP解析记录,则丢弃,若有海外解析记录,则放到foreign.txt中,若都没有解析记录,则保留,然后使用subfinder尝试查找剩余域名的子域名,找到有解析记录的子域名后,重新交给dnsx进行解析,最后清洗得到海外域名列表foreign.txt和无解析域名列表dead.txt。
清洗完后的数据令人震撼:无效域名约占列表的12%左右,而海外域名占比也达到了16%。甚至有部分域名已经遭受DNS污染,却还放在这个列表中,例如kuxiaoshuo.com的子域名r.kuxiaoshuo.com。鉴于大部分用户都倾向于直连域名使用国内DNS解析,这无疑会使得部分网站本来可以访问,但因为规则变得无法访问。
这是我最后清洗得到海外域名列表foreign.txt和无解析域名列表dead.txt。由于DNS解析的随机性(部分有国内节点的域名可能被解析至海外)、域名查找工具的局限性和网络波动,以下结果仅供参考。
因此,对于这个列表进行彻底的重新审计,我认为非常必要。
抓包截图:由于是自行编写的清洗脚本,没有抓包等相关步骤,因此无截图。
调整方案:将上述附件中提到的域名经过重新审计后,移除出ChinaMax相关规则。