Skip to content

feat: add built-in proxy PASS-RULE#2873

Merged
wwqgtxx merged 6 commits into
MetaCubeX:Alphafrom
echs-top:Alpha
Jun 4, 2026
Merged

feat: add built-in proxy PASS-RULE#2873
wwqgtxx merged 6 commits into
MetaCubeX:Alphafrom
echs-top:Alpha

Conversation

@echs-top
Copy link
Copy Markdown

@echs-top echs-top commented Jun 4, 2026

与PASS的区别是:在sub-rule中命中PASS-RULE时不会跳出子规则,仅跳过当前命中规则分支,继续在sub-rule中向后匹配规则。

参考用途示例:

rules:
  - DST-PORT,53/853,DNS劫持
  - DST-PORT,5228-5230,直接连接
  - RULE-SET,private_ip,直接连接,no-resolve
  - RULE-SET,private,直接连接
  - RULE-SET,ads,REJECT
  - SUB-RULE,(RULE-SET,ai),sub-ai
  - SUB-RULE,(RULE-SET,telegram),sub-telegram
  - RULE-SET,proxy@direct,直接连接
  - SUB-RULE,(RULE-SET,proxy-lite),sub-proxy
  - RULE-SET,cn-lite,直接连接
  - SUB-RULE,(RULE-SET,telegram_ip),sub-telegram
  - RULE-SET,cn_ip,直接连接
  - AND,((NETWORK,udp),(DST-PORT,443)),代理QUIC
  - MATCH,代理连接
sub-rules:
  sub-ai:
    - AND,((NETWORK,udp),(DST-PORT,443)),代理QUIC
    - MATCH,国外AI
  sub-telegram:
    - AND,((NETWORK,udp),(DST-PORT,443)),代理QUIC
    - MATCH,TELEGRAM
  sub-proxy:
    - AND,((NETWORK,udp),(DST-PORT,443)),代理QUIC
    - MATCH,代理连接
proxy-groups:
- { name: 代理QUIC, type: select, proxies: [PASS-RULE,REJECT] }

优点:可通过策略组快速决定是否禁用代理QUIC流量;规则匹配效率高,可不重复匹配规则(之前想实现类似效果要么将禁用quic写死到规则中,要么需要匹配两次同一规则才行)
Screenshot_2026-06-04-18-42-04-80_33f34bf0029ca15359ebd43d4b95def2

echs-top added 6 commits June 4, 2026 19:32
新增 PassRule 代理策略的类型枚举和字符串映射
增加 PASS-RULE 内置代理策略
在配置解析器中注册 PASS-RULE 策略,并将其从全局策略组(Selector/Fallback 等)的节点列表中排除。
新增 CheckPassRule 函数签名
在主路由实例化 RuleMatchHelper 时,注入代理池读取与 Unwrap 解包逻辑,并增加主规则 PASS-RULE 的跳过兜底处理。
重构 matchSubRules 逻辑,利用 helper.CheckPassRule 识别目标策略,实现命中 PASS-RULE 时静默吃掉结果并继续匹配当前子规则内的后续规则。
@wwqgtxx wwqgtxx changed the title 增加PASS-RULE内置出站 feat: add built-in outbound PASS-RULE Jun 4, 2026
@wwqgtxx wwqgtxx changed the title feat: add built-in outbound PASS-RULE feat: add built-in proxy PASS-RULE Jun 4, 2026
@wwqgtxx wwqgtxx merged commit fd2112e into MetaCubeX:Alpha Jun 4, 2026
176 of 177 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants