powerfullz 的 Mihomo/Substore 覆写规则。
  • TypeScript 89.5%
  • JavaScript 5.3%
  • Shell 5.2%
Find a file
powerfullz d0368a5e5b
Merge pull request #49 from powerfullz/dependabot/npm_and_yarn/typescript/native-preview-7.0.0-dev.20260524.1
chore(deps-dev): bump @typescript/native-preview from 7.0.0-dev.20260519.1 to 7.0.0-dev.20260524.1
2026-05-25 10:44:29 +08:00
.github refactor: move build.mjs and yaml_generator into scripts/ 2026-05-13 21:59:35 +08:00
.husky chore: setup husky pre-commit and fix ci format check 2026-04-20 13:32:45 +08:00
docs docs: update HOW_TO_CUSTOMISE.md 2026-05-23 18:56:57 +08:00
icons feat: improve telegram icon 2026-05-06 15:02:49 +08:00
ruleset chore: 移除不必要的域名并优化正则表达式 2026-03-31 19:27:58 +08:00
scripts refactor: 重构 loadbalance 参数为 grouptype 参数 2026-05-21 13:11:32 +08:00
src fix: use full geoip database to fix some precision issue 2026-05-23 14:25:14 +08:00
.gitignore refactor: migrate project structure to TypeScript workflow 2026-04-20 11:23:03 +08:00
.npmrc chore: migrate tag prefix from v to src-v 2026-04-26 14:08:39 +08:00
.prettierignore refactor: migrate convert.js to modular TypeScript pipeline 2026-04-20 10:13:21 +08:00
.prettierrc feat: add linting and formatting scripts; update dependencies 2026-02-28 23:45:24 +08:00
AGENTS.md refactor: move build.mjs and yaml_generator into scripts/ 2026-05-13 21:59:35 +08:00
auto_update.sh feat: 增加重试机制 2025-08-25 13:28:41 +08:00
CHANGELOG.md 2.4.3 2026-05-23 18:09:55 +08:00
cliff.toml chore: migrate changelog generation from conventional-changelog-cli to git-cliff 2026-05-13 21:56:55 +08:00
eslint.config.mjs chore: 更新 ESLint 和 TypeScript 配置以支持 ES2025 2026-04-21 14:13:07 +08:00
LICENSE Update LICENSE 2025-08-21 23:23:48 +08:00
package-lock.json chore(deps-dev): bump @typescript/native-preview 2026-05-24 19:05:13 +00:00
package.json chore(deps-dev): bump @typescript/native-preview 2026-05-24 19:05:13 +00:00
README.md refactor: 更新 GeoIP 和 GeoSite 数据库链接至 MetaCubeX 2026-05-21 20:05:03 +08:00
tsconfig.json refactor: move build.mjs and yaml_generator into scripts/ 2026-05-13 21:59:35 +08:00

powerfullz 的 Mihomo/Substore 覆写规则

本仓库为 Mihomo/Substore 设计,提供高效、灵活的覆写规则(不建议用于 Stash)。核心特色如下:

  • 集成 SukkaW/Surge217heidai/adblockfilters 等优质规则,兼容性强,覆盖面广。
  • 针对 Truth Social、E-Hentai、TikTok、加密货币等场景新增专用分流规则满足多样化需求。
  • 精简冗余,结构清晰,维护便捷。
  • 深度融合 Loyalsoldier/v2ray-rules-dat GeoSite/GeoIP分流更精准。
  • IP 规则默认添加 no-resolve,有效减少本地 DNS 解析,提升速度与隐私。
  • 动态覆写:自动识别节点国家/地区,仅生成实际存在的分组,节点名称实时枚举,配置更智能。

本项目为本人自用欢迎交流建议Issue/PR。如无特殊反馈将优先满足个人需求与体验优化。

点击访问 Forgejo 上的镜像

AFF

FlowerCloud

注册链接

目前我的主力机场也是一家老牌一线机场了线路扎实冗余足够实验性节点0.2倍率,部分地区的高级节点是家宽落地,用起来还是很舒服的。

星岛梦

注册链接

星岛梦是一家 2025 年 12 月刚开业的机场,机场主在测试的时候就来找我了,我因此有幸从早期测试阶段便开始关注,见证了机场主熬夜修线路换落地的过程,目前体验还不错。算上日常折扣性价比还可以,大家可以月付体验一下。

使用方法

Clash Party/Sparkle

Tip

Clash Party 不支持给脚本传入参数,如果需要传入参数,请使用集成的 Substore。

  1. 推荐直接使用 JS 动态覆写:https://cdn.jsdelivr.net/gh/powerfullz/override-rules/convert.min.js
  2. 打开 Clash Party → 左侧「覆写」→ 粘贴上述链接导入。
  3. 打开「订阅管理」→ 目标订阅右上角三个点 → 「编辑信息」→ 选择该覆写脚本 → 保存。

需要注意Clash Party 在默认设置下还会接管 DNS 和 SNI域名嗅探需要手动在设置中关闭「控制 DNS 设置」和「控制域名嗅探」两个选项。

Clash Verge 系Clash Verge Rev、Clash Nyanpasu 等)

直接复制需要的 YAML 格式覆写粘贴到覆写规则部分(无法自动更新)。

SubStore

参考最速 Substore 订阅管理指南

2025/06/17 更新:新增 JavaScript 格式覆写更易于维护已经成为首选方式。JavaScript 格式覆写支持在脚本链接末尾加入#以传入参数,传入多个参数时,用&分隔,例如#landing=true&grouptype=2

目前支持的参数:

  • grouptype地区代理组类型0=手动选择 select1=自动测速 url-test2=负载均衡 load-balance默认 0
  • landing:启用落地节点功能(如机场家宽/星链/落地分组,默认 false1
  • ipv6:启用 IPv6 支持(默认 false
  • full:生成完整配置(适合纯内核启动,默认 false
  • keepalive:启用 TCP Keep Alive默认 false2
  • fakeipDNS 增强模式使用 fake-ip 而不是 redir-host(开启后可能有助于解决 TUN 模式无法上网的问题;未传参时默认 true,显式传 false 时使用 redir-host
  • quic:允许 QUIC 流量UDP 443默认 false3
  • regex:各国家/地区代理组改用 include-all + 正则过滤模式,由 Mihomo 内核在运行时按正则动态筛选节点,而非在脚本执行时枚举节点名称(默认 false4
  • tun:启用 TUN 模式gvisor 栈,自动配置路由排除地址与 DNS 劫持,默认 false
  • threshold:国家/地区节点数量小于该值时不显示分组(默认 0

向后兼容:旧的 loadbalance 参数仍然可用。当 grouptype 未指定时,loadbalance=true 等价于 grouptype=2loadbalance=false 等价于 grouptype=1

说明:支持字符串 true/false 或 1/0。注预生成的 YAML 格式覆写(yamls/ 目录)固定使用正则模式,不受此参数影响。

JS 覆写使用示例

想要国家/地区代理组自动选择延迟最低的节点,使用grouptype=1参数,在 Substore「脚本操作」处填入脚本链接

https://cdn.jsdelivr.net/gh/powerfullz/override-rules/convert.min.js#grouptype=1

有链式代理和多个节点提供商之间负载均衡的需求,使用landing=true&grouptype=2两个参数:

https://cdn.jsdelivr.net/gh/powerfullz/override-rules/convert.min.js#landing=true&grouptype=2

如果想第一时间体验最新加入的 Bug 功能,可以使用 preview 分支的 Github Raw 链接:

https://raw.githubusercontent.com/powerfullz/override-rules/refs/heads/preview/convert.min.js

关于 DNS 泄露的说明

很多人问用了这覆写规则跑 DNS 泄露测试说会泄露,为此我写了一篇文章澄清一些误解,具体请看「关于 DNS 泄露及其相关误解的说明」

关于部分特殊代理组的说明

静态资源:包含所有常见静态资源 CDN 域名、对象存储域名。大部分网站的静态资源如图片、视频、音频、字体、JS、CSS都有独立域名、不设置风控措施、不设置鉴权这些静态资源可以使用 IP 不一定干净(例如 IDC 类 IP、但是带宽更大、延时更低、而且有和大部分主流 CDN如 Cloudflare、Akamai、Fastly、EdgeCast在 IXP 有互联的网络出口。一般就实践经验来看,在正常上网中这部分域名产生的流量占据约 70% 左右。如果你在使用商业性质的远端策略服务提供商、且该服务上提供了低倍率节点,你可以将这部分域名分流至低倍率节点以节省流量。5

搜狗输入:默认放行,作用是避免搜狗输入法将你输入的每一个字符自动收集并通过get.sogou.com/q等域名回传。隐私担忧者可以将其设置为REJECT,开启后会影响搜狗输入法账号同步、词库更新、问题反馈,但语音输入等其他功能可以正常使用。

Play 商店修复 修复国行设备因使用services.googleapis.cn域名导致的 Google Play 下载应用时的「等待中…」问题。详见:「Google Play 商店的国内 CDN从密码学入门到分流策略优化」,已经是默认行为。

Steam 修复 用于让 Steam 客户端调用国内 CDN 及 P2P 网络下载,节省大量流量,已经是默认行为。

关于链式代理的说明

若有链式代理需求,直接在 JS 链接后加 landing=true 参数即可(例如:convert.min.js#landing=true。这样会新增「落地节点」和「前置代理」两个代理组其中「落地节点」会自动匹配名称包含「家宽」「家庭」「商宽」「落地」「Starlink/星链」等关键词的节点,其他诸如「香港节点」等国家/地区分组会自动剔除这些落地节点。需要被链式代理的落地节点请在你的订阅里为该节点配置 dialer-proxy: "前置代理",示例:

proxies:
  - name: '香港 HGC NAT 商宽落地'
    type: ss
    server: example.com
    port: 6666
    cipher: aes-256-gcm
    password: goodpassword
    dialer-proxy: "前置代理"

关于自动生成的 YAML 格式覆写

除了直接引用动态构建的 JS 覆写脚本外,你也可以使用预先生成好的静态 YAML 覆写文件。这适用于某些不支持执行 JS 的客户端(例如旧版的 Clash Verge

Note

为了保持代码仓库的纯净,main 主分支不再跟踪和提交生成的产物文件(如 convert.jsyamls/)。 这些构建产物目前统一由 Github Actions 的 Release 工作流在发布 v* 版本时,构建并自动推送到当前分支及 Release 中;工作流会自动根据 Tag例如 v2.1.0)同步 package.json / package-lock.json 的版本号,无需手动改版本。

获取 YAML 覆写文件的链接格式如下:

  • 最新正式版/yamls/*.yaml (默认主分支或不带分支名)
  • 特定历史版本@vX.Y.Z/yamls/*.yaml

文件命名规则依据支持的开关参数穷举,格式如下:

config_gt-{0|1|2}_landing-{0|1}_ipv6-{0|1}_full-{0|1}_keepalive-{0|1}_fakeip-{0|1}_quic-{0|1}_tun-{0|1}.yaml

获取示例(开启 full其余关闭

https://cdn.jsdelivr.net/gh/powerfullz/override-rules/yamls/config_gt-0_landing-0_ipv6-0_full-1_keepalive-0_fakeip-0_quic-0_tun-0.yaml

固定版本获取示例:

https://cdn.jsdelivr.net/gh/powerfullz/override-rules@v0.1.0/yamls/config_gt-0_landing-0_ipv6-0_full-1_keepalive-0_fakeip-0_quic-0_tun-0.yaml

如果使用镜像:

https://git.l3zc.com/powerfullz/override-rules/raw/branch/dist/yamls/config_gt-0_landing-0_ipv6-0_full-1_keepalive-0_fakeip-0_quic-0_tun-0.yaml

CI 仅套用了一份虚拟的 fake_proxies.json 来模拟生成 YAML因此它无法像 JS 动态脚本那样根据你的实际节点智能生成专属分组策略,只能保守地包含常用的国家/地区。为了最高效的分流体验,仍强烈推荐使用 JS 覆写。

如何自定义与贡献

如果你想基于本项目深度定制自己专属的覆写规则:

请阅读 如何自定义专属覆写规则。里面详细介绍了如何修改默认参数、调整代理组及增添自定义的 Rule Providers。

如果你想为本项目贡献代码或新增特性:

请阅读 贡献指南。里面包含关于代码规范、开发流与提交 PR 的要求。

如果你是 AI AGENT

请阅读 ./AGENTS.md


  1. 注意在默认的枚举模式下如果没有符合条件的落地节点e.g 名称中带有「家宽」、「商宽」、「落地」等关键词的节点),内核会无法启动。 ↩︎

  2. 无特殊需求不要启用,否则会造成移动设备异常耗电问题↩︎

  3. 默认屏蔽了 QUIC 流量防止节点 UDP 性能不佳影响上网体验,如果确信节点质量良好,建议设置为 true。 ↩︎

  4. 默认情况下覆写脚本会直接把节点都筛选好,如果想让内核来筛(比如,你在 Clash Party 客户端里额外添加了自建节点,想直接通过正则表达式筛选进入配置文件)那就打开吧。 ↩︎

  5. 来源:我有特别的 Surge 配置和使用技巧 ↩︎