小火箭规则例外不生效时,先看配置里从上到下第一条命中的规则,而不是先换节点。DOMAIN-SUFFIX 例外必须写在 GEOIP 和 FINAL 之前;写在 FINAL,PROXY 后面等于不存在。GEOIP,CN 不管 10/8 内网;iOS 上 PROCESS-NAME 基本不会命中。用连接日志核对「实际命中了谁」,再只改那一条。
策略组怎么在 Proxy / Direct / 全局之间切,已经写在规则与策略组。本文只处理「某一类流量走错出口」。订阅导入见订阅导入。客户端渠道以下载页为准。
规则是第一匹配,不是「写了就会并集」
小火箭从文件头往下扫,命中就停。很多人把「国内直连」放在最上面:GEOIP,CN,DIRECT,再在文件末尾加 DOMAIN-SUFFIX,office.com,PROXY,指望 Office 走代理。Office 的解析若落到 CN 地址或被 GEOIP 先判走,后面的例外永远没机会。正确顺序是:精确例外 → 后缀例外 → IP-CIDR 内网 → GEOIP → FINAL。
远程规则集(RULE-SET)插在本地规则之间时,集合内部的顺序你看不到。服务商更新一次集合,你的本地例外可能被一条更宽的 DOMAIN-KEYWORD 抢走。本地例外放在所有 RULE-SET 之前。集合更新失败是另一件事,见订阅更新失败,不要和例外顺序混着改。
| 你以为会命中 | 实际先命中 | 写法 |
|---|---|---|
| 末尾的 DOMAIN-SUFFIX 例外 | 上面的 GEOIP 或 KEYWORD | 例外上移 |
| GEOIP,CN 管公司 OA | 私有地址不在 CN 库 | IP-CIDR 直连 |
| PROCESS-NAME,WeChat | iOS 无进程名 | 改域名后缀 |
| DOMAIN,google.com | 实际访问 www/accounts | 改 SUFFIX 或加子域 |
GEOIP、CDN、流媒体例外怎么写才不会误杀
流媒体解锁失败经常是 CDN 域名被 GEOIP,CN 送直连,节点再干净也没有。不要把整份国内列表删掉,只把该平台的播放域名、API、许可域名加成 PROXY,并放在 GEOIP 之上。具体平台坑见流媒体,本文只强调「例外必须比 GEOIP 更早」。
反向误杀:你给银行写了 PROXY,银行证书 pinning 在隧道里失败。银行、网关、缴税域名更适合 DOMAIN-SUFFIX,BANK,DIRECT,同样放在宽规则之上。不要为了「全部走代理」把网银塞进 FINAL,PROXY。
DNS 用假 IP 时,GEOIP 看到的是假地址,国家判断会乱。假 IP 与「能 ping 不能打开」见DoH 与假 IP。调例外期间可临时改真实 IP 模式,测完再改回去,避免两套问题叠在一次操作里。
桌面端移植:PROCESS-NAME 和端口例外
同一份订阅搬到 Android / Windows 时,桌面端才看进程名。iOS 上那条 PROCESS-NAME 是死规则,不会报错,只是永不命中,所以你以为「微信直连写好了」。跨端字段见跨端搬运。在电脑上把 Telegram.exe 直连、浏览器走代理,是桌面才有的能力;回到 iPhone 必须改回域名。
DST-PORT,22,DIRECT 这类端口例外能让 Git SSH 不进隧道,也能让你忘记 443 仍在走代理。写端口例外前先确认自己在挡哪一种流量。FINAL 如果是 PROXY,没写到的端口照样进节点。
日志里常见的「命中了但策略组是空的」
规则命中 PROXY 或某个组名,组里却没有可用节点,流量一样黑洞。这时不要再往规则文件末尾加 KEYWORD。打开策略组看选中项,空组走策略组故障文。例外顺序再正确,也救不了被删掉的节点名。订阅刚更新、服务商改了 emoji 前缀时,这一组合特别常见。
RULE-SET 远程集合里如果已经有一条更宽的 DOMAIN-KEYWORD,google,DIRECT,你本地再写 DOMAIN-SUFFIX,youtube.com,PROXY 且放在集合后面,仍然可能被集合里另一条吃掉。本地例外必须在所有 RULE-SET 之前。集合作者下次更新把关键字写得更宽,你的播放域名又会走错,这不是节点过期。
Fake-IP 打开时,日志里的目标 IP 是假的,GEOIP 国家会乱跳。你以为例外没命中,其实 GEOIP 在对 198.18.0.0/15 做国家判断。调例外期间改真实 IP,看完日志再改回去。DoH 与假 IP 的细节在专文,不要和例外顺序同一分钟改。
公司域名、内网 IP、苹果私有中继
office.com、lark、企业微信的一串 CDN 主机名,用一条 DOMAIN-KEYWORD 会误伤个人微软账号登录。宁可写三条 DOMAIN-SUFFIX,也不要用过短的关键字。内网 10/8 必须 IP-CIDR,不要指望 GEOIP,CN。苹果私有中继开着时,Safari 的出口和规则引擎看到的不一致,排例外那天关掉中继。
iOS 没有进程名,把电脑上能用的 PROCESS-NAME 原样同步到手机,规则列表看起来很专业,命中数永远是零。跨端搬运文写过字段差异。在 iPhone 上用 Safari 复现失败,不要用桌面 Chrome 的日志指导手机规则。
改完只验收那一个失败点,然后停手
打开小火箭请求日志,清掉旧记录,只复现一次失败动作。看到命中规则名与策略组名再决定下一次改哪一行。同时改 URL Test 节点和规则例外,你会不知道是线好了还是规则好了。延迟探测见URL Test。
连续加了五条 KEYWORD,日志仍显示命中 FINAL,停手。把配置备份出来对照,见配置备份,不要在手机上对着一千行瞎翻。安装与地区说明走下载页,问答走FAQ与教程。HTTPS 解密不是看清规则的日常手段,边界见解密风险。
例外一旦生效,把「规则名 + 域名 + 策略」抄进备忘录。服务商下次推远程集合时,先看你的本地例外还在不在最上面,而不是先怪节点过期。
写例外时一次只加一条,用最近请求确认命中名再加下一条。KEYWORD 过短会误伤个人登录。流媒体 CDN 必须放在 GEOIP 之上,删整份国内列表会让日常浏览变差。银行和缴税域名用 DIRECT 放在宽规则之上,不要为了「全部走代理」塞进 FINAL。桌面 Git 的端口例外 DST-PORT,22 不会自动让 443 直连,FINAL 仍是 PROXY 时没写到的端口照样进节点。
远程集合更新后先看本地例外还在不在文件头。配置备份导出一份能用的,手机上对着一千行瞎翻效率低。HTTPS 解密不是看清规则的日常手段。iPhone 用 Safari 复现,不要拿桌面 Chrome 日志指导手机规则。连续五条 KEYWORD 日志仍显示 FINAL,停手导出对照。
远程集合把你的例外「吃掉」之后怎么发现
服务商每周更新 RULE-SET,集合内部顺序你看不见。你本地写了播放域名走代理,集合里一条更宽的关键字把同一主机送直连,日志只显示集合规则名。发现方法:把本地例外移到所有 RULE-SET 之前,再复现一次。若命中名变成你的例外,就是集合在抢。关掉该集合的自动更新,或把关键例外写成 DOMAIN 精确匹配并置顶。
Fake-IP 让 GEOIP 对着 198.18 假地址做国家判断,例外看起来「写了对但不命中」。调例外期间改真实 IP。公司内网必须 IP-CIDR,GEOIP,CN 不管 RFC1918。iOS 没有进程名,从电脑同步来的 PROCESS-NAME 是死规则,用 Safari 在手机上复现,不要拿桌面日志指导手机。
一次只加一条例外,清日志、失败一次、看命中。同时改 url-test 节点会让你不知道是线好了还是规则好了。五条关键字之后仍命中 FINAL,导出配置对照备份,不要在手机上对着一千行继续加。银行域名用 DIRECT 置顶,不要塞进 FINAL,PROXY。端口例外不会自动改变 443 的走向。
过期是订阅过期那篇的事。