文章大纲目录 (Table of Contents)
在 iOS 网络代理客户端生态中,Shadowrocket(俗称“小火箭”) 凭借对主流现代协议的广泛兼容、灵活的分流引擎以及极低的学习成本,成为了许多进阶用户和开发者的常备利器。
然而,很多用户在日常使用中常常遇到以下痛点:
- 国内服务打开缓慢甚至误走代理;
- 节点频繁闪断,导致登录会话失效或风控告警;
- 订阅节点众多,但不知道如何做到智能容灾与故障自动切换。
要解决这些问题,核心在于透彻理解 Shadowrocket 的策略组(Policy Groups)调度机制与分流规则(Routing Rules)匹配优先级。本文将从底层逻辑出发,带你打造一个兼具极速、高可用与安全性的代理网络拓扑。
一、 分流规则引擎:匹配流水线与优先级
Shadowrocket 的流量分流引擎是一个典型的线性规则匹配流水线(Linear Matching Pipeline),严格遵循 “自上而下匹配,首条命中即生效(First Match Wins)” 的核心原则。
[ 用户发起网络请求 ]
│
▼
[ 1. 手动自定义规则 (DOMAIN / IP-CIDR) ] ──(命中)──► [ 执行对应策略并结束 ]
│ (未命中)
▼
[ 2. 外部规则集 (RULE-SET) ] ─────────────(命中)──► [ 执行对应策略并结束 ]
│ (未命中)
▼
[ 3. 地理位置数据库 (GEOIP,CN) ] ─────────(命中)──► [ 执行 DIRECT 并结束 ]
│ (未命中)
▼
[ 4. 最终兜底规则 (FINAL / MATCH) ] ───────(生效)──► [ 执行 PROXY / 默认策略 ]
1. 常见规则类型全景解析
| 规则类型 | 匹配机制说明 | 实战应用场景与范例 |
|---|---|---|
DOMAIN | 严格完全匹配域名,子域名不匹配 | DOMAIN,www.apple.com,DIRECT |
DOMAIN-SUFFIX | 后缀匹配(包含该域名及其所有子域名) | DOMAIN-SUFFIX,github.com,PROXY(推荐首选) |
DOMAIN-KEYWORD | 字符串包含匹配(只要域名含该词即命中) | DOMAIN-KEYWORD,google,PROXY |
IP-CIDR | 针对特定 IP 地址段进行掩码匹配 | IP-CIDR,192.168.0.0/16,DIRECT,no-resolve |
GEOIP | 基于内置 MaxMind IP 数据库判断归属地 | GEOIP,CN,DIRECT(国内 IP 自动直连) |
RULE-SET | 引用外部维护的规则列表文件 | 维护大体量分流规则(如防广告、社交平台分流) |
FINAL | 兜底终点,未命中上述任何规则的所有流量 | FINAL,PROXY(防止未知外网流量泄露) |
💡 优化建议(
no-resolve参数):
当配置IP-CIDR规则时,若该请求初始为一个域名,小火箭默认会尝试发起 DNS 解析以获得 IP。加上no-resolve参数可避免本地向外发起不必要的 DNS 查询,从而加速分流并减少 DNS 泄露风险。
二、 策略组深度拆解:调度模式与选型
策略组相当于一个虚拟容器,把多个实体节点包裹在一起,并按照设定的调度策略决定当前使用哪一个节点。
1. 故障转移 (Fallback) —— 稳定性基石
- 工作机制:按列表中节点的排列顺序,始终死磕首位节点。只有当该节点健康检查失败或超时后,流量才会按序顺延切换至备用节点;当首位节点恢复健康时,自动切回。
- 最大优势:出口 IP 保持高度固定,绝不会在短时间内频繁跳动。
- 适用场景:对登录状态敏感的账号管理、API 调用、长连接会话以及两跳链式代理。
2. 自动测速 (URL-Test) —— 极速追求
- 工作机制:后台按设定的时间间隔(如 300 秒)向测试地址发送探测包,自动选用延迟最低的节点。
- 优缺点权衡:网络体验最流畅,但频繁的节点自动切换可能导致部分安全级别极高的网站频繁弹出二次验证。
3. 手动选择 (Select)
- 工作机制:完全由用户手动点击勾选指定节点。
- 适用场景:用于特定地区调试(如切换日区、美区、港区进行特定业务测试)。
4. 负载均衡 (Load-Balance)
- 工作机制:多连接并发分散到多个节点上转发。
- 适用场景:大流量下载、视频点播预加载。
三、 实战:构建稳定可靠的“两跳中继”与防波动拓扑
对于追求网络纯净度或固定商业出口的开发者,两跳代理(Relay / Chain Proxy) 是常见的高阶玩法:
- 第一跳(入口中继):选择国内网络直连低延迟的优质线路,建立策略组类型设为
fallback。 - 第二跳(固定出口):选择高纯净度、原生住宅或固定机房服务器节点。
- 绑定链路:在固定出口节点的设置中,通过小火箭的
Proxy Pass(前置代理)选项,指定流量先走上述的fallback入口组。
这样配置后:
- 入口节点故障时,小火箭自动无缝切换到备用前置通道;
- 目标网站看到的访问 IP 始终稳定为你的第二跳出口 IP;
- 兼顾了高可用容灾与业务会话稳定性。
结语
分流规则与策略组是网络代理客户端的灵魂。合理规划优先级顺序、科学搭配 fallback 与 GEOIP 规则,不仅能大幅提升日常上网体验,更能为开发调试和跨国业务构筑起一道坚实、稳定的网络底座。