自用规则集仓库,面向 Surge 与 mihomo(原 Clash Meta),两套配置各自独立、互不混用。所有规则集由 CI 每日自动抓取上游、去重、清洗并滚动发布。
| 目录 | 面向 | 说明 |
|---|---|---|
Surge/ |
Surge Mac / iOS / tvOS | 规则集、模块、知识库(Surge/Docs/) |
Mihomo/ |
mihomo(原 Clash Meta) | 规则集、知识库(Mihomo/Docs/) |
两套知识库彼此独立。 Surge 与 mihomo 在规则语法、策略模型、外部集合格式上没有一一对应关系,写在一起只会互相误导,各自看各自的
Docs/。
AI / Ozon 两个类目提供「主文件 + 补充文件」的结构:主文件是纯域名(走索引,性能最好),补充文件承载关键词、IP 段等无法进索引的规则。
去广告采用 SukkaW/Surge 的分片方案:每个文件对应一种处置策略与一种匹配代价,按需组合。骨架取 SKK 已编译成品(已过它的 trie 去重与白名单回剔),Cats-Team 与 AWAvenue 只补充 SKK 未覆盖的条目。
| 类目 | Surge | mihomo |
|---|---|---|
| 去广告 | Advertising.Reject.list(DOMAIN-SET 主库)Advertising.RejectExtra.list(DOMAIN-SET 补充)Advertising.Drop.list(REJECT-DROP 遥测层)Advertising.NonIP.list / Advertising.NoDrop.list(RULE-SET)Advertising.IP.list(CIDR/ASN,须放最后) |
Advertising.Reject.mrs / Advertising.RejectExtra.mrs(domain)Advertising.Drop.yaml / Advertising.NonIP.yaml / Advertising.NoDrop.yaml / Advertising.IP.yaml(classical) |
| AI 服务 | Surge/Ruleset/AI.list + AI.Extra.list |
Mihomo/Ruleset/AI.mrs + AI.Extra.yaml |
| Ozon | Surge/Ruleset/Ozon.list + Ozon.Extra.list |
Mihomo/Ruleset/Ozon.mrs + Ozon.Extra.yaml |
| 类目 | 上游 |
|---|---|
| 去广告 | SukkaW/Surge 已编译成品(骨架)、Cats-Team AdRules(仅补 SKK 缺失)、AWAvenue(仅补 SKK 缺失) |
| AI 服务 | MetaCubeX(= v2fly category-ai-chat-!cn 展开)、Sukka、Rabbit-Spec、ACL4SSR、iplist AI、Sukka Voice IP |
| Ozon | 本地基线 + iplist Ozon 域名 + RIPEstat ASN(AS44386 / AS207986 宣告前缀) |
去广告的白名单以 SukkaW/Surge 为准:直接解析它的
reject-data-source.ts
里的 PREDEFINED_WHITELIST,不维护自己的放行表 —— 上游调整放行范围时自动跟随。
按 SKK 的做法,该白名单只作用于 domainset 分片(non_ip / ip 层保留强制拦截),
另叠加公共后缀清洗(防止整条 TLD 被拦)与 Cats 官方 dns-allowlist 回剔。
所有规则文件都可通过 GitHub Raw 直接引用,release 也提供整包(见下)。
- 单文件直链(滚动更新,推荐):
https://github.com/laincat/Rules/releases/latest/download/<文件名>Advertising.sgmodule(Surge 订阅模块)Advertising.Reject.list/Advertising.RejectExtra.list(DOMAIN-SET)Advertising.Drop.list/Advertising.NonIP.list/Advertising.NoDrop.list/Advertising.IP.list(RULE-SET)Advertising.Reject.mrs/Advertising.RejectExtra.mrs(mihomo domain)Advertising.Drop.yaml/Advertising.NonIP.yaml/Advertising.NoDrop.yaml/Advertising.IP.yaml(mihomo classical)
- 整包(可选):
rulesets.tar.gz(规则集)、modules.tar.gz(Surge 模块) - 单文件 Raw 地址(GitHub):
https://raw.githubusercontent.com/laincat/Rules/main/<路径> - 单文件 Raw 地址(CNB 镜像,国内直连):
https://cnb.cool/laincat/Rules/-/raw/main/<路径> - 单文件 Release 直链(CNB 镜像,滚动更新,国内直连):
https://cnb.cool/laincat/Rules/-/releases/download/latest/<文件名>
- 每日自动构建:CI 抓上游、重算、去重、清洗,有变化才提交。
- 滚动 Release:tag 固定为
latest,永远只保留一条;每个规则文件都是独立附件,可直接用.../releases/latest/download/<文件名>引用,内容变化才覆盖该附件;整包只作可选补充。发行版说明直接展示每次新版本相对旧版的差异(新增 / 删除条数)。 - CNB 镜像:同步推送到 cnb.cool/laincat/Rules(纯镜像,历史一致),并把 Release 的单文件附件同步到 CNB Releases(固定 tag
latest,国内直连)。注意 CNB 没有 GitHub 的releases/latest别名,直链必须写全 tag。
Surge/Docs/ 与 Mihomo/Docs/ 记录上游的版本与配置面状态,靠 tools/docs_watch.py 每日采集(版本号 / build / 提交 / 页面清单 / 内容哈希)保持不腐烂,检测到变化时自动开 issue 提醒——「该怎么改文档」仍由人读发布说明后判断,脚本只回答「上游变了没有」。
# 生成全部规则集(可选 --mihomo 指向 mihomo 二进制以编译 .mrs)
python tools/gen_rulesets.py --write [--mihomo ./mihomo]
# 对比差异(对比 HEAD 与当前工作区)
python tools/gen_diff.py --pre HEAD --out diff.json --md DIFF.md构建先校验下载与域名格式,应用公共后缀和 SukkaW/Surge 的 PREDEFINED_WHITELIST(仅 domainset 分片),再进行包含收敛。
--report validation.json 可保存来源哈希和过滤统计;CI 同时运行离线回归测试。
本仓库当前未附带 LICENSE 文件。规则数据来自多个上游项目,各自遵循其许可证,使用前请查阅对应来源。