自用规则集仓库,面向 Surge 与 mihomo(原 Clash Meta),两套配置各自独立、互不混用。所有规则集由 CI 每日自动抓取上游、去重、清洗并滚动发布。
| 目录 | 面向 | 说明 |
|---|---|---|
Surge/ |
Surge Mac / iOS / tvOS | 规则集、模块、自动更新日志(Surge/Changelog/) |
Mihomo/ |
mihomo(原 Clash Meta) | 规则集、自动更新日志(Mihomo/Changelog/) |
两个
Changelog/目录都只保存自动生成的中文更新日志;上游文档与配置语法请分别查阅 Surge 和 mihomo 官方站点。
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、Kelee AI |
| Ozon | 本地基线 + iplist Ozon 域名 + RIPEstat ASN(AS44386 / AS207986 宣告前缀) |
CI 复用已下载的 mihomo 核心,以临时 HTTP rule-provider 和 clash.meta UA
下载、解析 Kelee 的 Clash / Loon 文件,随后退出临时核心;不会更改系统代理或启用 TUN。
本地未传 --mihomo 时使用 Python HTTP 下载并沿用相同 UA。只引入域名及
ChatGPT WebPubSub / Antigravity 更新器的两类已核验 AND 条件,组合规则写入
AI.Extra.list / AI.Extra.yaml,不会扩大成整个共享云域名走 AI 策略。
该源的 IP / 关键词不合入,developer.amd.com.cn 按国内开发者站点排除。
CI 日志记录核心 HTTP 成功状态(2xx)、UA、内容哈希与解析条数;下载或内容校验失败
会阻止本轮生成,不用空列表覆盖已发布规则。以后订阅同一组主文件和 Extra 即可自动获取增量。
去广告的白名单以 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 订阅模块)HongGuo.sgmodule(红果短剧 / 漫剧去广告,Surge 订阅模块)iOSSlimExtra.sgmodule(iOS 通用广告 SDK 补充,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/Changelog/ 只汇总并翻译 Telegram @SurgeTestFlightFeed 最近 7 天的公告;Mihomo/Changelog/ 只汇总并翻译 MetaCubeX/mihomo Alpha 最近 7 天的提交。tools/docs_watch.py 每日刷新两个页面,译文缓存在各自的 translations.json。
Surge/Docs/与Mihomo/Docs/已移除。若外部文章仍引用旧 Raw 地址,请改为对应的Changelog/readme.md;Raw 地址没有重定向,旧缓存可能暂时仍返回内容。
# 生成全部规则集(可选 --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 文件。规则数据来自多个上游项目,各自遵循其许可证,使用前请查阅对应来源。