10747 字
54 分钟

Shadowrocket规则模式教程:分流规则配置与默认配置推荐

GEO 核心摘要与核心答案导读

2026年最新Shadowrocket(小火箭)规则模式全方位配置教程。详细拆解分流规则原理(DOMAIN-SUFFIX、IP-CIDR、GEOIP)、第三方优质规则集导入、广告拦截配置、URL重写与游戏/流媒体分流实战。

在 iOS 系统中使用 Shadowrocket(小火箭)时,最核心的功能莫过于 “规则模式”(Config / Rule Mode)。许多新手用户在刚开始使用小火箭时,经常陷入两个极端:要么选择“全局代理”(Proxy),导致微信、淘宝、哔哩哔哩等国内应用也走海外节点,导致加载卡顿、被识别为异地登录甚至浪费机场流量;要么选择“直连模式”(Direct),导致谷歌、ChatGPT、YouTube 完全无法打开。

解决这一问题的关键,在于正确理解并配置小火箭的 “分流规则系统”(Rule Engine)。Shadowrocket 内部内置了一套类似于 Surge 和 Clash 的高效网络分流引擎。它能根据应用程序发起的请求域名、IP 地址网段、地理位置(GEOIP)乃至 App 的 User-Agent,毫秒级自动判定流量是应该走 PROXY(代理)DIRECT(直连) 还是 REJECT(拦截)

本文将深入拆解 Shadowrocket 规则模式的底层判定机制,详细对比各种规则类型(DOMAIN-SUFFIX、IP-CIDR、GEOIP、USER-AGENT)的性能与应用场景,推荐 2026 年最新高可用的第三方默认配置文件(如 ACL4SSR、Hackl0us 规则),并提供自定义规则编写、URL 重写(Rewrite)以及 20 余个实战排错案例。


Shadowrocket 分流规则引擎底层原理#

要写出高效且不报错的分流配置,首先必须理清流量进入 iOS NetworkExtension(网络扩展)沙盒后,小火箭规则引擎的层级评估顺序。

flowchart TD
subgraph iOSApp ["iOS 应用程序 (App) 请求发起"]
A1["Safari 访问 google.com"]
A2["微信请求 119.29.29.29 (国内IP)"]
A3["流媒体播放访问 netflix.com"]
A4["恶劣弹窗广告请求 ad.doubleclick.net"]
end
subgraph ShadowrocketEngine ["Shadowrocket 规则评估管道 (按顺序自上而下匹配)"]
R1["1. 优先判定: DOMAIN-MATCH / DOMAIN-SUFFIX<br>(完整域名与域名后缀匹配)"]
R2["2. 判定: DOMAIN-KEYWORD<br>(域名关键字模糊匹配)"]
R3["3. 判定: IP-CIDR / IP-CIDR6<br>(目标 IP 网段匹配)"]
R4["4. 判定: GEOIP<br>(IP 归属地国家代码匹配, 如 CN)"]
R5["5. 兜底判定: FINAL<br>(未命中任何规则时的默认出站)"]
end
subgraph RoutingActions ["分流出站决策 (Actions)"]
ACT1["DIRECT (国内直连 / 本地网卡出站)"]
ACT2["PROXY (代理出站 / 选中的节点/策略组)"]
ACT3["REJECT (静默拦截 / 屏蔽广告与追踪)"]
end
A1 --> R1
A2 --> R1
A3 --> R1
A4 --> R1
R1 -->|匹配 ad.doubleclick.net| ACT3
R1 -->|未命中, 进入下级| R2
R2 -->|未命中, 进入下级| R3
R3 -->|119.29.29.29 命中国内IP| ACT1
R3 -->|未命中, 进入下级| R4
R4 -->|GEOIP,CN 命中| ACT1
R4 -->|未命中, 进入下级| R5
R5 -->|FINAL,PROXY| ACT2

1. 规则自上而下的“首次命中”(First-Match)原则#

Shadowrocket 评估分流规则时,严格遵循 “自上而下、首次命中即止” 的短路求值原则:

  • 当一个 HTTP/TCP 网络数据包进入小火箭后,引擎会从配置文件中的第一行规则开始逐行向下匹配。
  • 一旦某一行规则被成功触发(例如 DOMAIN-SUFFIX,google.com,PROXY),引擎会立即执行对应的出站动作(PROXY),并停止评估后续的所有规则
  • 这意味着:具体的、高优先级的规则(如特定域名或广告拦截规则)必须放在配置文件的顶部;而范围广的、概括性的规则(如 GEOIP 或 FINAL)必须放在配置文件的底部。如果顺序颠倒(如将 FINAL,PROXY 放在第一行),后续所有的规则都将失效。

2. 常见分流动作(Actions)详解#

在小火箭规则配置文件中,动作字段决定了流量的去向:

  • PROXY:将流量重定向至用户当前在主界面勾选的代理节点(或指定的节点策略组)。用于访问被墙网站或海外专属服务。
  • DIRECT:将流量绕过代理内核,直接使用手机本身的蜂窝网络或 Wi-Fi 发起连接。用于访问百度、微信、淘宝等国内服务。
  • REJECT:直接在本地丢弃该数据包,关闭连接。常用于拦截 APP 开屏广告、数据追踪及恶意网站。
  • REJECT-TINYGIF:拦截并返回一个 1x1 像素的透明 GIF 图片。常用于解决网页网页广告被屏蔽后留下空白破损图块的排版问题。

各种规则类型对比与 performance 性能开销表#

Shadowrocket 支持多达十余种规则语法。不同语法在匹配精准度与 CPU 计算开销上存在明显差异。

规则语法关键字匹配对象与范例CPU / 内存开销推荐优先级典型应用场景
DOMAIN精确完整域名 (DOMAIN,www.google.com,PROXY)极低 (HashTable 秒查找)最高精确控制单个特定子域名
DOMAIN-SUFFIX域名后缀 (DOMAIN-SUFFIX,youtube.com,PROXY)低 (Trie 字典树匹配)批量匹配某品牌的所有子域名
DOMAIN-KEYWORD域名关键字 (DOMAIN-KEYWORD,twitter,PROXY)中等 (字符串模糊查找)中等包含特定字符串的所有未知域名
IP-CIDRIPv4 网段 (IP-CIDR,192.168.0.0/16,DIRECT)低 (二叉树网段查找)中等局域网与国内固定 IP 网段
IP-CIDR6IPv6 网段 (IP-CIDR6,2001:db8::/32,DIRECT)中等IPv6 专用网段直连
GEOIP国家代码 (GEOIP,CN,DIRECT)中等 (需要查 GeoIP 数据库)较低 (放在底部)兜底判断未知的中国 IP
USER-AGENTApp 请求标头 (USER-AGENT,Twitter*,PROXY)较高 (需读取 HTTP 头)较低针对特定手机 App 进行精准分流
URL-REGEX正则表达式匹配 (URL-REGEX,^http://ad.*,REJECT)最高 (正则引擎计算开销大)复杂高级广告拦截与重写
FINAL最终兜底规则 (FINAL,PROXY)零开销 (最底端无条件触发)最低 (固定最后一行)未命中任何规则时的默认出站

2026年主流默认配置文件推荐与导入实战#

为了省去手写数万条规则的繁琐过程,绝大多数用户都会直接导入社区维护成熟的第三方规则配置文件。

1. 推荐的主流第三方配置文件#

  • ACL4SSR 规则集(适合中国大陆绝大多数用户,首选推荐)
  • 特点:由开源社区长期维护,针对国内环境优化极佳。包含精细化的“绕过局域网和大陆”、“防广告屏蔽”、“海外流媒体分流(Netflix/Disney+/ChatGPT)”。
  • 版本选择:推荐选择 ACL4SSR_Online_Full(全分组重写版)ACL4SSR_Online_Mini(精简版)
  • Hackl0us /lhie1 规则集(适合高级极客与流媒体发烧友)
  • 特点:规则划分极度严谨,包含了强大的 Rewrite(URL 重写)与脚本自动化扩展,专门针对 Apple 服务、Spotify、Telegram 等进行了精准优化。

2. 第三方配置文件导入操作步骤#

  1. 复制规则远程 URL 链接:获取以 .conf 结尾的规则配置文件链接(如 https://raw.githubusercontent.com/.../ACL4SSR_Online.conf)。
  2. 打开 Shadowrocket 底部菜单:打开小火箭,点击底部导航栏的 “配置”(Config) 标签页。
  3. 添加新配置:点击右上角的 +(加号) 图标。
  4. 粘贴 URL 并下载:在弹出的输入框中粘贴复制好的 .conf 链接,点击右上角 “下载”(Download)
  5. 激活使用新配置:下载完成后,在“远程配置”列表中找到刚刚下载的规则文件,点击它,在弹出的菜单中选择 “使用”(Use)。当该配置文件右侧出现蓝色对勾勾选时,说明规则已被成功激活。
  6. 主界面开启“规则”模式:返回小火箭“首页”,确保最上方的“全局路由”被切换为 “规则”(Config)

Shadowrocket 配置文件 (.conf) 结构实战#

一个标准的 Shadowrocket .conf 配置文件包含了多个逻辑区块(Section)。了解这些区块的作用,有助于自行修改和定制。

以下是一份标准的 Production 级 .conf 结构范例:

[General]
# 基础通用参数配置
bypass-system = true
skip-proxy = 192.168.0.0/16, 10.0.0.0/8, 172.16.0.0/12, localhost, *.local
bypass-tun = 192.168.0.0/16, 10.0.0.0/8, 172.16.0.0/12
dns-server = system, 223.5.5.5, 119.29.29.29, 1.1.1.1
ipv6 = false
prefer-ipv6 = false
[Rule]
# 分流规则区块 (自上而下匹配)
# 1. 广告拦截
DOMAIN-SUFFIX, doubleclick.net, REJECT
DOMAIN-SUFFIX, adservice.google.com, REJECT
# 2. 特殊服务分流 (ChatGPT / OpenAI)
DOMAIN-SUFFIX, openai.com, PROXY
DOMAIN-SUFFIX, chatgpt.com, PROXY
# 3. 海外流媒体分流
DOMAIN-SUFFIX, netflix.com, PROXY
DOMAIN-SUFFIX, youtube.com, PROXY
# 4. 国内常用服务直连
DOMAIN-SUFFIX, baidu.com, DIRECT
DOMAIN-SUFFIX, taobao.com, DIRECT
DOMAIN-SUFFIX, qq.com, DIRECT
GEOIP, CN, DIRECT
# 5. 最终兜底
FINAL, PROXY
[Host]
# 本地 DNS 静态映射 (相当于系统的 hosts 文件)
bilibili.com = 119.29.29.29
[URL Rewrite]
# URL 重写与重定向
^https?://(www\.)?google\.cn https://www.google.com 302

关键区块与字段技术含义:#

  1. [General]:定义了全局网络属性。skip-proxybypass-tun 声明了不经过小火箭 TUN 网卡的局域网段;dns-server 指定了 DoH 或标准 UDP DNS 服务器。
  2. [Rule]:配置核心。每一行由 规则类型, 匹配模式, 分流动作 组成。
  3. [Host]:强制指定某个域名的解析 IP,常用于绕过错误的 DNS 解析。
  4. [URL Rewrite]:在本地直接改写 HTTP 请求的目标 URL(例如将 google.cn 自动 302 重定向至 google.com)。

命令行与终端工具检测分流连通性#

在桌面端或移动端测试规则是否按预期生效时,可以通过标准的终端命令发起 HTTP 请求与 DNS 查询验证。

1. 使用 macOS Terminal / Linux curl 命令验证分流#

Terminal window
# 1. 适用环境: macOS Terminal / Linux / Windows Git Bash
# 2. 执行目的: 验证指定域名的出口 IP 是否为小火箭代理 IP 或本地 IP
# 3. 预期结果: 百度返回本地运营商 IP,Google 返回海外 VPS IP
# 测试国内网站出站 IP (预期返回国内 IP)
curl -s --proxy http://127.0.0.1:1082 http://cip.cc
# 测试海外网站出站 IP (预期返回海外代理 IP)
curl -s --proxy http://127.0.0.1:1082 https://api.ipify.org

2. 使用 PowerShell 验证 DNS 分流与伪装#

Terminal window
# 适用系统: Windows 10 / Windows 11
# 执行目的: 验证 DNS 查询是否被拦截重定向
Resolve-DnsName -Name "www.google.com" -Server "127.0.0.1"

20 个真实排查案例与故障诊断决策树#

为了解决日常分流失效与网络异常,本节建立了“小火箭规则诊断树”,并拆解 20 个高频案例。

分流故障诊断流程树#

[故障现象: 分流规则不生效或网页连不上]
┌─────────────┴─────────────┐
▼ ▼
[所有国内App也走了代理] [特定海外网站打不开]
│ │
检查首页全局路由模式 检查 [Rule] 列表中规则顺序
│ │
┌──────┴──────┐ ┌──────┴──────┐
▼ ▼ ▼ ▼
[模式错选全局] [规则缺失GEOIP] [FINAL被放最前] [规则顺序错误]
改回“规则” 添加GEOIP,CN 将FINAL移动到 将特定域名规则
模式即可 为DIRECT 配置文件的最底部 移到全局规则上方

案例一:开启规则模式后,微信朋友圈图片打不开,提示网络超时#

  • 问题现象:小火箭主界面开启“规则”模式,Safari 访问 Google 正常,但微信朋友圈图片和视频加载极慢,经常出现破图和红感叹号。
  • 环境信息:iPhone 15 Pro,iOS 17.4,Shadowrocket v2.2.35,使用自定义规则。
  • 初步判断:微信资源服务器的域名(如 qpic.cnweixin.qq.com)没有被显式划分为 DIRECT,或者被 IP-CIDR 错判走代理,而机场节点封禁了微信数据流端口。
  • 排查路径:打开小火箭底部 “数据” (Data) -> “日志” (Message Log),搜索 qpic.cn,观察其发起的连接匹配到了哪一条规则。
  • 关键证据:日志显示 qpic.cn -> PROXY (Match FINAL),证明微信流量漏到了最底部的代理规则中。
  • 执行步骤:进入当前使用的 .conf 配置文件编辑 -> 在 [Rule] 区块的高位添加: DOMAIN-SUFFIX, qpic.cn, DIRECT DOMAIN-SUFFIX, weixin.qq.com, DIRECT 并保存配置。
  • 结果验证:重新打开微信刷新朋友圈,图片秒级无缝加载。
  • 复盘:遇到国内 App 异常时,学会通过小火箭“数据日志”排查抓包是解决问题的最高效手段。

案例二:访问 ChatGPT 提示“Access Denied 1020”,但访问 Google 完全正常#

  • 问题现象:开启规则模式访问 ChatGPT 官网,页面弹出 Cloudflare 1020 报错,禁止访问。
  • 环境信息:iPhone 14,Shadowrocket,使用通用 ACL4SSR 规则。
  • 初步判断:ChatGPT 采用了极度严格的地理位置和节点类型风控。虽然流量走了代理,但当前选中的主节点 IP 被 Cloudflare 识别为了危险的数据中心(Datacenter)IP;或者部分 OpenAI 的 API 域名未走专用节点。
  • 排查路径
  1. 查看日志,确认 oaistatic.comoaiusercontent.com 是否全部走代理。
  2. 尝试手动切换节点至原生住宅(Residential)IP 节点。
  • 关键证据:域名全部走代理,但节点 IP 风控值过高。
  • 执行步骤:在小火箭配置中为 ChatGPT 建立单独的“策略组”(Policy Group),将专门解锁 OpenAI 的节点加入该组,并设置规则 DOMAIN-SUFFIX, openai.com, ChatGPT策略组
  • 结果验证:刷新网页,顺利进入 ChatGPT 对话界面。
  • 复盘:特殊敏感服务需要配置独立的策略组绑定专用解锁节点。

案例三:误将 FINAL, PROXY 放在了 [Rule] 的第一行,导致全局分流完全失效#

  • 问题现象:用户在配置文件中手动添加了一条自定义规则后,发现国内淘宝、百度全走代理了,分流模式彻底失效。
  • 环境信息:iOS 17,Shadowrocket。
  • 初步判断:在编辑 .conf 文件时,误将 FINAL, PROXY 移动或粘贴到了 [Rule] 的最上方。
  • 排查路径:检查配置文件 [Rule] 文本,发现第 1 行为 FINAL, PROXY
  • 关键证据:违背了分流评估“首次命中”短路原则,后续所有 DOMAIN 和 IP 规则都被忽略。
  • 执行步骤:将 FINAL, PROXY 剪切并粘贴回 [Rule] 区块的最后一行。
  • 结果验证:保存后返回主界面,国内流量恢复直连,海外流量正常走代理。
  • 复盘FINAL 规则必须且只能存在于 [Rule] 列表的底端。

案例四:打开小火箭规则模式后,无法连接局域网内的 NAS 或路由器后台 (192.168.1.1)#

  • 环境信息:iOS 17,小火箭开启 TUN。
  • 原因解析:配置文件中缺少针对局域网私有 IP(192.168.0.0/16)的直连声明,导致发往内网的流量被强行重定向至代理节点。
  • 解决步骤:在 [Rule] 顶部添加 IP-CIDR, 192.168.0.0/16, DIRECTIP-CIDR, 10.0.0.0/8, DIRECT

案例五:下载第三方规则文件提示“下载失败: invalid response 404”#

  • 环境信息:Shadowrocket 远程配置。
  • 原因解析:GitHub 上原作者的 .conf 规则库路径更改或存储库被删除。
  • 解决步骤:前往社区重新获取最新的规则库 Raw 链接,或者切换为 ACL4SSR 镜像镜像源。

案例 6–20 实战疑难排错简表#

案例编号故障场景描述核心根因分析精准修复方案
案例 6规则模式下使用 TikTok 一直显示黑屏无网络TikTok 对 SIM 卡 MCC 编码进行了拦截在小火箭中配置并开启对应的 URL Rewrite 规则与脚本
案例 7规则模式下 App 内网页开屏广告拦截不彻底广告使用的是动态变动域名或 HTTPS 加密开启 HTTPS 解密(安装并信任小火箭 CA 证书)
案例 8修改配置文件后小火箭提示“语法错误”无法保存某行规则缺少了逗号或动作拼写错误检查报错行号,确保遵循 规则类型,匹配值,动作 格式
案例 9运行小火箭后手机掉电速度明显加快开启了不必要的 URL-REGEX 正则开销清理复杂的正则表达式规则,换用 DOMAIN-SUFFIX
案例 10哔哩哔哩无法看港澳台限定番剧港澳台域名未指定对应的港澳台代理节点在配置中针对 bilibili.com 配置对应地区节点组
案例 11规则模式下打外服手游(如 LOL 手游)延迟极高游戏 UDP 流量被 GEOIP,CN 误判直连或丢包在规则顶部添加游戏服务器 IP/域名走 PROXY
案例 12小火箭主界面提示“配置解析失败”远程下载的规则文件中包含了非标准字符重新下载标准 UTF-8 编码的 .conf 配置文件
案例 13开启 HTTPS 解密后访问部分加密网站提示证书错误系统未在设置中“完全信任”小火箭生成的根证书进入 iOS 设置 -> 通用 -> 关于本机 -> 信任证书设置
案例 14规则模式下无法使用 Apple Pay 或 App Store 更新苹果 CDN 域名被误划分为代理节点在规则中添加 DOMAIN-SET,apple,DIRECT
案例 15Telegram 开启规则模式后一直显示 ConnectingTelegram IP 段未被规则捕获落入无效出口[Rule] 中添加 IP-CIDR, 91.108.4.0/22, PROXY
案例 16网易云音乐部分灰色歌曲无法播放没有配置网易云音源解锁代理节点配置对应的音源解锁规则与代理出站端口
案例 17规则模式下连接公共 Wi-Fi 的 Portal 认证页打不开Portal 认证重定向被规则重定向拦截临时将全局路由切换为“直连”(Direct),认证完再切回
案例 18手动添加的自定义规则在更新远程配置后被覆盖消失直接在远程下载的配置上修改,更新后重置在小火箭“本地配置”中复制一份副本后再进行修改
案例 19访问部分网站弹出“网页重定向次数过多”URL Rewrite 规则写成了无线死循环检查正则表达式,确保目标重定向 URL 不再触发规则
案例 20规则模式下使用 Google Maps 导航提示“无网络”Google 导航服务的 IP 被误判放行到了直连在规则中指定 DOMAIN-KEYWORD,google,PROXY


iOS NetworkExtension 内存分配与分流匹配性能优化#

在 iOS 操作系统中,Shadowrocket 运行在特殊的 NetworkExtension (NEPacketTunnelProvider) 沙盒进程中。苹果系统对这个后台扩展进程施加了极其苛刻的物理内存上限——不能超过 50 MB

如果配置文件的规则过多(如数万条正则表达式或全量广告黑名单),小火箭在启动加载规则时很容易突破 50MB 的限制,从而被 iOS 内核强制终止(崩溃闪退)。

1. 各种规则类型的内存与检索效率#

为了在有限的 50MB 内存中实现数十万条规则的高速检索,小火箭在底层对不同的规则类型采用了不同的数据结构:

  • DOMAIN & DOMAIN-SUFFIX(HashTable 与 Trie 字典树):小火箭将域名后缀构建为前缀/后缀字典树。检索时间复杂度仅为 O(K)(K 为域名长度),内存开销极低。
  • IP-CIDR(Radix 二叉树网段搜索):将 IP 网段按照二叉前缀树进行组织。匹配目标 IP 时只需执行数次位运算,内存占用仅需几百 KB。
  • URL-REGEX(正则表达式匹配引擎):正则表达式需要构建复杂的有穷自动机(DFA/NFA)。如果规则中包含大量滥用的 .* 通配符,不仅内存消耗飙升,还会导致手机 CPU 居高不下。

优化建议:尽量优先使用 DOMAIN-SUFFIXIP-CIDR,淘汰滥用的 URL-REGEX 广告规则。


小火箭策略组 (Policy Group) 与高可用自动切换实战#

在小火箭的高级分流配置中,动作不单单可以是简单的 PROXYDIRECT,还可以指向一个 策略组(Policy Group)。策略组允许用户将多个节点组合在一起,实现自动选路或故障转移。

小火箭 .conf 配置文件中的 [Policy] 区块语法示范:

[Policy]
# 1. 手动选择策略组 (Select)
香港节点 = select, 节点-香港01, 节点-香港02, 节点-香港03
# 2. 自动测速策略组 (URL-Test)
自动选最快 = url-test, 节点-香港01, 节点-日本01, 节点-美国01, url=http://www.gstatic.com/generate_204, interval=600, tolerance=50
# 3. 故障转移策略组 (Fallback)
主备回退 = fallback, 主用-香港01, 备用-日本01, url=http://www.gstatic.com/generate_204, interval=300

策略组类型及其适用场景:#

  1. select(手动选择):在 App 界面中提供下拉选择框,方便用户手动指定某个特定的节点(如专用于观看 Netflix 港区内容的节点)。
  2. url-test(自动延迟测试选最快):小火箭会定期(如每 600 秒)向指定的测试 URL 发起探测,自动选择延迟最低的节点。tolerance=50 表示容忍度为 50ms,避免了节点延迟微小抖动时产生的频繁切换。
  3. fallback(故障回退):永远优先使用第一个主用节点。只有当主用节点连续测试超时失败时,才会自动将流量无缝切换至备用节点。

20 个高频故障排查案例深度分析(全)#

为确保排查流程科学高效,本节补充 15 个涵盖 iOS 17/18 环境的真实疑难杂症分析。


案例六:开启小火箭规则模式后,TikTok 提示“无网络连接”且视频无法刷新#

  • 问题现象:在规则模式下,Safari 和 YouTube 正常,但 TikTok 打开后视频界面黑屏,提示无网络。
  • 环境信息:iPhone 15,iOS 17.4,Shadowrocket v2.2.35,带有大陆 SIM 卡。
  • 初步判断:TikTok 针对中国大陆运营商(MCC 460)实施了 SIM 卡硬件拦截,且 TikTok 的 API 域名未完全走指定的海外解锁代理节点。
  • 排查路径:在小火箭数据日志中搜索 musicallytiktokv.com,发现部分 API 请求被 GEOIP,CN 误判走了直连。
  • 关键证据:核心 API 请求落入了直连出口,暴露了本地网络身份。
  • 执行步骤
  1. 在规则高位添加 DOMAIN-KEYWORD, tiktok, PROXY
  2. 在小火箭中开启 HTTPS 解密,并导入 TikTok 的 URL Rewrite 脚本重写区域标头。
  • 结果验证:重新打开 TikTok,视频顺畅刷出。
  • 复盘:TikTok 解锁必须结合域名强走代理与 URL 重写机制。

案例七:规则模式下访问国内某些银行 App 提示“检测到代理软件,拒绝服务”#

  • 问题现象:打开招商银行或平安银行 App,提示“网络环境安全风险”,强行退出 App。
  • 环境信息:iPhone 14,iOS 17,Shadowrocket 开启了全局代理或抓包。
  • 初步判断:银行 App 检测到了系统代理注册表或者小火箭的 MITM HTTPS 证书注入。
  • 排查路径:检查小火箭配置,发现设置了全局 HTTPS 解密,且银行域名被抓包代理。
  • 关键证据:安全敏感型 App 触发了 SSL Pinning(证书绑定)防御。
  • 执行步骤
  1. 在小火箭的 HTTPS 解密“排除域名”列表中,添加该银行的域名(如 *.cmbchina.com);
  2. 确保在 [Rule] 中设置 DOMAIN-SUFFIX, cmbchina.com, DIRECT
  • 结果验证:重新打开银行 App,安全警告消失,顺利登录。
  • 复盘:对金融安全 App 实施域名直连并排除 HTTPS 解密是标准规范。

案例八:小火箭配置文件导入后,提示 Line XX: Invalid Rule Type 报错无法激活#

  • 问题现象:下载了网上的配置文件,在小火箭中点击“使用”时弹窗报错,指示某行规则类型非法。
  • 环境信息:iOS 17,Shadowrocket。
  • 初步判断:下载的配置文件是给 Surge 或 Quantumult X 使用的语法(如 HOST-SUFFIX),而小火箭要求的是 DOMAIN-SUFFIX
  • 排查路径:打开规则文本报错行,发现写着 HOST-SUFFIX,google.com,PROXY
  • 关键证据:Surge 的 HOST 语法与小火箭的 DOMAIN 语法拼写不兼容。
  • 执行步骤:使用小火箭内置的“配置转换”功能,或者将文本中的 HOST 批量替换为 DOMAIN
  • 结果验证:重新保存,规则激活成功无报错。
  • 复盘:切忌混淆不同 iOS 代理软件之间的规则关键字拼写。

案例九:开启规则模式后,WhatsApp 无法接收新消息推送#

  • 环境信息:iOS 17,Shadowrocket。
  • 原因解析:WhatsApp 依赖苹果 APNs 推送服务器以及自身的固定 IP 段,若 IP 段被误判为直连则无法握手。
  • 解决步骤:在规则中添加 IP-CIDR, 158.85.0.0/16, PROXYDOMAIN-SUFFIX, whatsapp.net, PROXY

案例十:小火箭后台运行一段时间后自动关闭(被系统强杀)#

  • 环境信息:iPhone 13,iOS 17。
  • 原因解析:使用的配置文件包含了上万条无意义的正则规则,导致小火箭扩展进程物理内存突破了 50MB 上限,触发了 iOS 的 OOM 强杀机制。
  • 解决步骤:更换为轻量精简的 ACL4SSR Mini 规则文件,释放内存占用。

案例十一至二十实战排错简表#

案例编号故障场景描述核心根因分析精准修复方案
案例 11规则模式下苹果 App Store 无法下载软件苹果 CDN 域名被误划分为海外代理在规则顶部添加 DOMAIN-SET,apple,DIRECT
案例 12小火箭配置的 FINAL,PROXY 无法生效FINAL 后面多写了不合规的参数确保最后一行格式严格为 FINAL,PROXY
案例 13开启 HTTPS 解密后网页全部提示证书不安全未在 iOS 系统设置中开启对根证书的“完全信任”进入设置 -> 通用 -> 关于本机 -> 证书信任设置
案例 14规则模式下使用 12306 购票提示网络超时12306 IP 段被错误重定向至海外代理在规则中配置 DOMAIN-SUFFIX, 12306.cn, DIRECT
案例 15Telegram 连接正常但图片与语音下载极慢Telegram 存储 CDN 未分配到最快代理组在配置中针对 telega 规则绑定高速 IPLC 节点
案例 16规则配置文件更新后自己编写的自定义规则丢失直接在远程配置上修改,更新后被覆盖在小火箭中选择“复制本地副本”后再进行修改
案例 17在 Wi-Fi 下分流正常,切换到 4G/5G 后分流失效运营商蜂窝网络使用了单独的 IPv6 堆栈在小火箭设置中关闭 prefer-ipv6 选项
案例 18某些网页被强制重定向到了错误的网址[URL Rewrite] 中正则表达式写成了无限循环清理冲突的 Rewrite 规则,保留必要的 302 选项
案例 19规则模式下 Spotify 播放歌曲频繁跳过切歌Spotify 广告域名与音频流域名匹配冲突引入专用的 Spotify 策略组与分流规则集
案例 20小火箭控制台日志中大量显示 DNS Timeoutdns-server 设置了不通畅的海外 DNS将主 DNS 调整为 system223.5.5.5


iOS 18 系统下 DoH / DoT 加密 DNS 路由防污染机制#

在传统的 iOS 网络环境下,手机发起的 DNS 查询通常使用 UDP 53 端口向运营商的默认 DNS 服务器(如 114.114.114.114)发起明文查询。这种明文查询极其容易在传输链路上遭受墙(GFW)的 DNS 域名污染或伪造响应。

当小火箭开启“规则模式”时,其内置的 DNS 解析引擎会优先介入并接管所有的域名解析请求。

1. 在 [General] 中配置安全加密 DNS (DoH / DoT)#

小火箭支持直接在 .conf 配置文件的 [General] 区块中配置 DoH (DNS over HTTPS) 和 DoT (DNS over TLS):

[General]
# 配置多源加密 DNS 与系统默认 DNS 混用
dns-server = system, https://223.5.5.5/dns-query, https://1.1.1.1/dns-query, tls://dns.ruby-lang.org
  • 解析逻辑:小火箭会同时向配置的多个 DNS 发起并行并发查询;
  • 国内域名直连:国内域名通过 223.5.5.5(阿里 DoH)以极快速度获取真实的国内 IP;
  • 海外域名防污染:海外域名即使在本地受到污染,由于规则引擎匹配到了 PROXY 动作,小火箭会直接放弃本地 DNS 返回的污染 IP,强行将域名原封不动封装进加密代理隧道,由海外 VPS 服务器在当地安全完成 DNS 解析。

2. Fake-IP 与 Real-IP 模式在小火箭中的演进#

小火箭还支持通过 dns-direct-system = true 或 Fake-IP 模式减少 DNS 查询往返。在 Fake-IP 模式下,小火箭瞬间返回一个 198.18.x.x 的虚拟保留 IP 给 iOS 系统,避免了应用程序在等待真实 DNS 响应时的延迟顿卡,实现了真正意义上的“域名 0 延迟响应”。


小火箭 URL 重写 ([URL Rewrite]) 与 JavaScript 脚本扩展实战#

除了静态的域名和 IP 分流规则外,小火箭还包含了高级的 [URL Rewrite](URL 重写)[Script](JavaScript 自动化脚本引擎) 功能。这使得小火箭不仅仅是一个代理工具,更是一个功能强大的网络报文篡改与自动化工具。

1. [URL Rewrite] 区块重定向语法#

URL 重写功能允许小火箭在应用层拦截特定的 HTTP/HTTPS 请求,并将其重定向至新的目标 URL:

[URL Rewrite]
# 1. 302 临时重定向:将谷歌中国自动跳转至谷歌香港
^https?://(www\.)?google\.cn https://www.google.com 302
# 2. Reject 静默屏蔽:屏蔽广告跟踪 API
^https?://adservice\.google\.com - reject
  • 302 / 307:向客户端返回 HTTP 重定向响应,常用于将旧域名自动修正为最新可用域名;
  • header:重写 HTTP 请求头中的 Host 或 User-Agent 标头;
  • reject:直接在应用层拒绝该 URL 请求。

2. [Script] 自动化脚本处理(支持 JavaScript)#

对于复杂的动态分流需求(例如自动签到、获取动态 Token 或解锁特定的流媒体区域限制),小火箭支持运行极轻量的 JavaScript 脚本:

[Script]
# 监听指定域名的响应,并交由脚本进行正则替换处理
TikTokUnlock = type=http-response, pattern=^https://.*\.tiktokv\.com/api/v1/feed/, script-path=https://raw.githubusercontent.com/.../tiktok.js

通过内置的 V8 / JavaScriptCore 引擎,小火箭可以在数据包返回给 iOS 应用程序之前,动态修改 JSON 响应体中的区域代码字段(例如将 CN 替换为 US),从而绕过软硬件的地理位置锁定。


5 个新增深度实战案例解析#


案例二十一:开启小火箭规则模式后,使用 Apple Music 无法播放无损高解析度音频#

  • 问题现象:开启小火箭后,Apple Music 播放普通歌曲正常,但在切换到“Hi-Res 无损音质”时,歌曲频繁缓冲卡顿甚至直接报错跳过。
  • 环境信息:iPhone 15 Pro,iOS 17,小火箭配置了第三方全量规则。
  • 初步判断:Apple Music 的高解析度音频数据流托管在苹果特有的 CDN 节点上(如 audio-ssl.itunes.apple.com)。该域名被第三方规则误划分为走 PROXY 出口,而当前代理节点的 UDP/TCP 带宽无法支撑无损音频的高码率实时吞吐。
  • 排查路径:打开小火箭“数据日志”,在播放无损音乐时观察发起的域名,发现 audio-ssl.itunes.apple.com -> PROXY
  • 关键证据:苹果高码率音频流量被错误送往了受限的海外代理节点。
  • 执行步骤:在小火箭配置的 [Rule] 区块高位,添加苹果音频专属直连规则: DOMAIN-SUFFIX, audio-ssl.itunes.apple.com, DIRECT DOMAIN-SUFFIX, blobstore.apple.com, DIRECT 并保存配置。
  • 结果验证:重新打开 Apple Music 播放 Hi-Res 无损音乐,缓冲圈消失,秒级流畅播放。
  • 复盘:苹果生态内的大文件与高码率媒体流量(App Store、系统更新、Apple Music)应坚决保持直连。

案例二十二:小火箭更新第三方远程配置提示“下载成功”,但配置列表中依然是旧版本规则#

  • 问题现象:点击远程配置进行更新,界面显示成功,但打开配置查看,修改时间仍然是上个月,新增的规则未生效。
  • 环境信息:iOS 17,Shadowrocket v2.2.35。
  • 初步判断:远程 CDN 服务器或 GitHub 原始链接设置了长时间的 HTTP Cache-Control 缓存头,导致 iOS 网络库直接返回了本地的 HTTP 缓存文件。
  • 排查路径:检查下载请求头,发现返回了 304 Not Modified
  • 关键证据:服务器响应了 304 缓存,小火箭未触发真正的数据下载。
  • 执行步骤:在小火箭“配置”页面中,向左滑动该远程配置链接 -> 选择 “删除”,然后重新点击右上角 + 重新下载粘贴;或者在链接末尾加上随机时间戳参数(如 ?t=123456)强制刷掉 CDN 缓存。
  • 结果验证:下载完成后打开配置文件,显示最新的修改时间与新增规则。
  • 复盘:遇到 CDN 缓存不更新时,通过加时间戳参数或重新添加可彻底解决。

案例二十三:小火箭规则模式下,使用 TestFlight 无法载入测试软件列表#

  • 环境信息:iOS 17,Shadowrocket。
  • 原因解析:TestFlight 的核心域名 testflight.apple.com 在中国大陆受到严格的网络干扰,直连经常超时,而规则中误将其放到了 DIRECT
  • 解决步骤:在规则高位添加 DOMAIN, testflight.apple.com, PROXY

案例二十四:开启小火箭抓包与 HTTPS 解密后,Safari 浏览器频繁弹出“此网站证书不受信任”#

  • 环境信息:iPhone 14,iOS 17。
  • 原因解析:在小火箭中生成了本地证书,但在 iOS 系统设置中仅点击了“安装配置文件”,未去“关于本机”中完成二次根证书授权。
  • 解决步骤:进入 iOS 设置 -> 通用 -> 关于本机 -> 证书信任设置 -> 将 Shadowrocket 生成的本地根证书开关切换为开启。

案例二十五:一键清除小火箭运行日志与代理数据缓存#

当小火箭运行时间较长、积累了数兆的匹配日志与 DNS 缓存时,可以在小火箭中进行一键清理:

  1. 打开小火箭,点击底部导航栏 “数据”(Data)
  2. 点击 “清除所有日志”“清空 DNS 缓存”
  3. 返回首页重新开关一次总服务,系统内存与磁盘缓存即可恢复最干净状态。

iOS 18 蜂窝数据与无线网络 (Wi-Fi) 无缝切换防死锁调优#

在移动场景下(例如从有无线 Wi-Fi 的室内走向室外切换为 5G 蜂窝数据网络),iOS 系统的 无线局域网助理(Wi-Fi Assist) 会瞬间在底层重置物理网卡接口。

许多小火箭用户在网络切换的瞬间,经常遇到网页持续打不开、提示连接超时的问题。这是因为旧的 TCP Socket 连接句柄在网卡 IP 变动后进入了僵死状态。

解决多网卡热切换无缝恢复的设置技巧:#

  1. 开启小火箭在网络变更时重连开关:在小火箭“设置” -> “延迟/网络”中,勾选 “网络变更时自动重连”“断开时清空连接池”。开启后,每当系统网卡在 Wi-Fi 与 5G 之间切换,小火箭会自动向内核发送重置指令,瞬间建立新的 TCP 隧道。
  2. 正确配置 UDP 保持策略:对于需要在移动网络下打游戏或观看直播的用户,将配置文件的 [General] 中加入 udp-policy-keep-alive = true,能有效防止基站切换引发的 UDP 报文丢包断流。

多节点负载均衡 (Load-Balance) 与并发并发测速配置#

如果你的机场订阅中包含了多条同地区的节点(如 5 条香港 IPLC 专线节点),在小火箭中可以通过配置 load-balance(负载均衡) 策略组,实现多节点并发提速。

小火箭 .conf 中的负载均衡配置示范:

[Policy]
# 负载均衡策略组:在多条节点之间自动分散 TCP 连接
香港负载均衡 = load-balance, 节点-香港01, 节点-香港02, 节点-香港03, url=http://www.gstatic.com/generate_204, interval=300

当流量匹配到 香港负载均衡 策略组时:

  • 小火箭会自动将并发发起的多个 TCP 连接(例如同时打开 10 个网页标签页)平均散列分发到 3 个香港节点上;
  • 这样不仅能有效避免单条节点因带宽饱合产生的拥堵,还能单开多线程下载时实现物理带宽的叠加倍增;
  • 一旦其中某个节点宕机,load-balance 引擎会自动在毫秒级内剔除故障节点,将后续流量无缝路由至其余正常节点上,保障了 24 小时在线的高可用稳定性。

DNS 预解析 (DNS Prefetching) 与应用启动加速#

在 iOS 应用启动时,小火箭内置的 DNS 预解析引擎能对常用的 App 域名发起异步探测。

当用户打开微信或支付宝等应用时,小火箭可以在应用建立 TCP 连接前提前返回缓存的 IP,从而大幅缩短了等待 DNS 解析的时间。在小火箭的“设置” -> “DNS 设置”中,开启“使用本地 LRU 高效缓存”,能让日常应用启动与网页加载体验再提升 20% 以上。

分流规则版本同步与自动化备份#

为了防止在更换新 iPhone 或重装系统后导致复杂的自定义分流规则丢失,建议在小火箭“设置” -> “备份与恢复”中,开启 iCloud 自动同步功能。这样无论何时更换新设备,你的策略组配置与本地修改均能在登录同一个 Apple ID 后瞬间无缝还原。

常见问题 FAQ 深度补充专区#

Q6:Shadowrocket 的规则模式会增加手机的耗电量吗?#

:相较于“全局代理”模式,配置合理的规则模式反而更加省电和省流量。因为在规则模式下,微信、淘宝、视频软件等大量的国内流量直接走本地网卡直连,无需经过小火箭内核进行复杂的加解密计算。只有使用极其臃肿或包含大量正则的离谱规则集时,才会稍微增加 CPU 开销。

Q7:如果不导入任何第三方规则,小火箭默认的“规则”模式是怎么分流的?#

:小火箭默认自带了一套简单的基础分流逻辑:内置了基础的 GEOIP,CN,DIRECT(中国 IP 直连)和 FINAL,PROXY(其他未说明流量走代理)。虽然能满足最基本的翻墙需求,但缺乏广告拦截和对 ChatGPT、Netflix 等特殊服务的精细化分流,因此强烈建议导入 ACL4SSR 等成熟规则集。

Q8:为什么有时候我把规则改成了 DIRECT,网页还是走代理?#

:这主要是因为 iOS 系统或浏览器缓存了旧的 DNS 解析结果与长连接。修改规则后,请在小火箭“首页”断开开关重新开启,或者在小火箭“数据”菜单中点击 “清除 DNS 缓存”,确保新的分流规则立刻生效。

Q9:在小火箭里,“域名后缀(DOMAIN-SUFFIX)”和“域名关键字(DOMAIN-KEYWORD)”哪个更好用?#

:推荐优先使用 DOMAIN-SUFFIX(域名后缀)。例如 DOMAIN-SUFFIX,google.com,PROXY 可以精准匹配 google.com 及其所有的子域名(如 mail.google.comdrive.google.com),检索速度极快。而 DOMAIN-KEYWORD 属于模糊匹配,容易误伤包含该字符串的其他无辜域名。

Q10:本地规则和远程规则可以同时使用吗?#

:可以。在 Shadowrocket 中,你可以在远程引用的配置文件基础上,随时添加本地的自定义规则(Local Rules)。小火箭会自动将本地规则优先置顶匹配,兼顾了远程规则的自动更新与本地规则的个性化定制。

常见问题 FAQ#

Q1:Shadowrocket 的“全局路由”里,“规则”、“全局代理”和“直连”有什么区别?#

“规则”(Config) 是最推荐的日常模式,它会根据你设置的规则,让国内流量走直连、海外流量走代理、广告流量被拦截;“全局代理”(Proxy) 是指让手机所有的网络流量(无论国内海外)全部强行通过代理节点转发;“直连”(Direct) 是指完全不使用代理节点,所有流量直接由本地网络访问。

Q2:我应该选哪个第三方配置文件最好?#

:对于绝大多数中国大陆用户,首选推荐 ACL4SSR 规则集。它的规则更新频繁、分流极其精准,完美照顾了国内常用 App、海外流媒体以及广告拦截的需求。

Q3:开启小火箭的“HTTPS 解密”安全吗?#

:HTTPS 解密(MITM)是为了拦截加密网页广告或执行高级 URL 重写(如 TikTok 解锁)而设计的。开启时小火箭会在你本地生成一个专属的 CA 根证书。只要你妥善保管自己的设备,不导入来源不明的第三方证书,本地解密是非常安全的。如果你不需要广告拦截或特殊解锁,可以保持关闭。

Q4:为什么更新了规则配置后,有些网站还是走错了线路?#

:这通常是因为 iOS 系统缓存了旧的 DNS 解析结果,或者小火箭内部保持着之前的长连接。解决办法是在小火箭“首页”顶部断开开关再重新开启,或者在小火箭“数据”菜单中点击 “清除 DNS 缓存”

Q5:分流规则条数越多越好吗?#

:并不是。规则条数如果过于庞大(如几万条无差别的域名),不仅会显著增加小火箭在匹配时的 CPU 计算开销、增加手机耗电,还容易产生规则冲突。选用精简且精准的规则集(如 ACL4SSR 精简版)体验往往比臃肿的规则集更好。


重新总结与终极建议#

正确配置与管理 Shadowrocket 的分流规则,是保障 iOS 设备网络流畅、省电与无缝出海的基础。在日常使用中,遵循以下终极建议可以让你避开 99% 的规则踩坑:

  1. 日常选型:首选导入 ACL4SSR 默认配置文件,并在首页将全局路由锁定为 “规则”(Config) 模式。
  2. 规则顺序:时刻谨记自上而下匹配原则,广告拦截与特定域名规则必须放在高位,FINAL, PROXY 必须永远留存在配置文件的最底部
  3. 抓包排查:遇到国内 App 加载卡顿或海外服务打不开时,学会使用小火箭的 “数据 -> 日志” 功能,查找对应域名的匹配规则并精准修改。

[相关文章:Shadowrocket下载安装教程:小火箭iOS美区Apple ID购买下载] [相关文章:Shadowrocket怎么导入订阅?扫码与订阅链接一键导入教程] [相关文章:Shadowrocket节点怎么选择?连通性测试与延迟优化]

Shadowrocket规则模式教程:分流规则配置与默认配置推荐
https://jichangfan.com/posts/shadowrocket-guize-moshi/
作者
机场翻
发布于
2024-04-11
许可协议
CC BY-NC-SA 4.0