Shadowrocket规则模式教程:分流规则配置与默认配置推荐
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| ACT21. 规则自上而下的“首次命中”(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-CIDR | IPv4 网段 (IP-CIDR,192.168.0.0/16,DIRECT) | 低 (二叉树网段查找) | 中等 | 局域网与国内固定 IP 网段 |
IP-CIDR6 | IPv6 网段 (IP-CIDR6,2001:db8::/32,DIRECT) | 低 | 中等 | IPv6 专用网段直连 |
GEOIP | 国家代码 (GEOIP,CN,DIRECT) | 中等 (需要查 GeoIP 数据库) | 较低 (放在底部) | 兜底判断未知的中国 IP |
USER-AGENT | App 请求标头 (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. 第三方配置文件导入操作步骤
- 复制规则远程 URL 链接:获取以
.conf结尾的规则配置文件链接(如https://raw.githubusercontent.com/.../ACL4SSR_Online.conf)。 - 打开 Shadowrocket 底部菜单:打开小火箭,点击底部导航栏的 “配置”(Config) 标签页。
- 添加新配置:点击右上角的
+(加号) 图标。 - 粘贴 URL 并下载:在弹出的输入框中粘贴复制好的
.conf链接,点击右上角 “下载”(Download)。 - 激活使用新配置:下载完成后,在“远程配置”列表中找到刚刚下载的规则文件,点击它,在弹出的菜单中选择 “使用”(Use)。当该配置文件右侧出现蓝色对勾勾选时,说明规则已被成功激活。
- 主界面开启“规则”模式:返回小火箭“首页”,确保最上方的“全局路由”被切换为 “规则”(Config)。
Shadowrocket 配置文件 (.conf) 结构实战
一个标准的 Shadowrocket .conf 配置文件包含了多个逻辑区块(Section)。了解这些区块的作用,有助于自行修改和定制。
以下是一份标准的 Production 级 .conf 结构范例:
[General]# 基础通用参数配置bypass-system = trueskip-proxy = 192.168.0.0/16, 10.0.0.0/8, 172.16.0.0/12, localhost, *.localbypass-tun = 192.168.0.0/16, 10.0.0.0/8, 172.16.0.0/12dns-server = system, 223.5.5.5, 119.29.29.29, 1.1.1.1ipv6 = falseprefer-ipv6 = false
[Rule]# 分流规则区块 (自上而下匹配)# 1. 广告拦截DOMAIN-SUFFIX, doubleclick.net, REJECTDOMAIN-SUFFIX, adservice.google.com, REJECT
# 2. 特殊服务分流 (ChatGPT / OpenAI)DOMAIN-SUFFIX, openai.com, PROXYDOMAIN-SUFFIX, chatgpt.com, PROXY
# 3. 海外流媒体分流DOMAIN-SUFFIX, netflix.com, PROXYDOMAIN-SUFFIX, youtube.com, PROXY
# 4. 国内常用服务直连DOMAIN-SUFFIX, baidu.com, DIRECTDOMAIN-SUFFIX, taobao.com, DIRECTDOMAIN-SUFFIX, qq.com, DIRECTGEOIP, 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关键区块与字段技术含义:
[General]:定义了全局网络属性。skip-proxy和bypass-tun声明了不经过小火箭 TUN 网卡的局域网段;dns-server指定了 DoH 或标准 UDP DNS 服务器。[Rule]:配置核心。每一行由规则类型, 匹配模式, 分流动作组成。[Host]:强制指定某个域名的解析 IP,常用于绕过错误的 DNS 解析。[URL Rewrite]:在本地直接改写 HTTP 请求的目标 URL(例如将google.cn自动 302 重定向至google.com)。
命令行与终端工具检测分流连通性
在桌面端或移动端测试规则是否按预期生效时,可以通过标准的终端命令发起 HTTP 请求与 DNS 查询验证。
1. 使用 macOS Terminal / Linux curl 命令验证分流
# 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.org2. 使用 PowerShell 验证 DNS 分流与伪装
# 适用系统: 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.cn或weixin.qq.com)没有被显式划分为DIRECT,或者被IP-CIDR错判走代理,而机场节点封禁了微信数据流端口。 - 排查路径:打开小火箭底部 “数据” (Data) -> “日志” (Message Log),搜索
qpic.cn,观察其发起的连接匹配到了哪一条规则。 - 关键证据:日志显示
qpic.cn -> PROXY (Match FINAL),证明微信流量漏到了最底部的代理规则中。 - 执行步骤:进入当前使用的
.conf配置文件编辑 -> 在[Rule]区块的高位添加:DOMAIN-SUFFIX, qpic.cn, DIRECTDOMAIN-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 域名未走专用节点。
- 排查路径:
- 查看日志,确认
oaistatic.com和oaiusercontent.com是否全部走代理。 - 尝试手动切换节点至原生住宅(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, DIRECT与IP-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 |
| 案例 15 | Telegram 开启规则模式后一直显示 Connecting | Telegram 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-SUFFIX 和 IP-CIDR,淘汰滥用的 URL-REGEX 广告规则。
小火箭策略组 (Policy Group) 与高可用自动切换实战
在小火箭的高级分流配置中,动作不单单可以是简单的 PROXY 或 DIRECT,还可以指向一个 策略组(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策略组类型及其适用场景:
select(手动选择):在 App 界面中提供下拉选择框,方便用户手动指定某个特定的节点(如专用于观看 Netflix 港区内容的节点)。url-test(自动延迟测试选最快):小火箭会定期(如每 600 秒)向指定的测试 URL 发起探测,自动选择延迟最低的节点。tolerance=50表示容忍度为 50ms,避免了节点延迟微小抖动时产生的频繁切换。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 域名未完全走指定的海外解锁代理节点。
- 排查路径:在小火箭数据日志中搜索
musically和tiktokv.com,发现部分 API 请求被GEOIP,CN误判走了直连。 - 关键证据:核心 API 请求落入了直连出口,暴露了本地网络身份。
- 执行步骤:
- 在规则高位添加
DOMAIN-KEYWORD, tiktok, PROXY; - 在小火箭中开启 HTTPS 解密,并导入 TikTok 的 URL Rewrite 脚本重写区域标头。
- 结果验证:重新打开 TikTok,视频顺畅刷出。
- 复盘:TikTok 解锁必须结合域名强走代理与 URL 重写机制。
案例七:规则模式下访问国内某些银行 App 提示“检测到代理软件,拒绝服务”
- 问题现象:打开招商银行或平安银行 App,提示“网络环境安全风险”,强行退出 App。
- 环境信息:iPhone 14,iOS 17,Shadowrocket 开启了全局代理或抓包。
- 初步判断:银行 App 检测到了系统代理注册表或者小火箭的 MITM HTTPS 证书注入。
- 排查路径:检查小火箭配置,发现设置了全局 HTTPS 解密,且银行域名被抓包代理。
- 关键证据:安全敏感型 App 触发了 SSL Pinning(证书绑定)防御。
- 执行步骤:
- 在小火箭的 HTTPS 解密“排除域名”列表中,添加该银行的域名(如
*.cmbchina.com); - 确保在
[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, PROXY与DOMAIN-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 |
| 案例 15 | Telegram 连接正常但图片与语音下载极慢 | Telegram 存储 CDN 未分配到最快代理组 | 在配置中针对 telega 规则绑定高速 IPLC 节点 |
| 案例 16 | 规则配置文件更新后自己编写的自定义规则丢失 | 直接在远程配置上修改,更新后被覆盖 | 在小火箭中选择“复制本地副本”后再进行修改 |
| 案例 17 | 在 Wi-Fi 下分流正常,切换到 4G/5G 后分流失效 | 运营商蜂窝网络使用了单独的 IPv6 堆栈 | 在小火箭设置中关闭 prefer-ipv6 选项 |
| 案例 18 | 某些网页被强制重定向到了错误的网址 | [URL Rewrite] 中正则表达式写成了无限循环 | 清理冲突的 Rewrite 规则,保留必要的 302 选项 |
| 案例 19 | 规则模式下 Spotify 播放歌曲频繁跳过切歌 | Spotify 广告域名与音频流域名匹配冲突 | 引入专用的 Spotify 策略组与分流规则集 |
| 案例 20 | 小火箭控制台日志中大量显示 DNS Timeout | dns-server 设置了不通畅的海外 DNS | 将主 DNS 调整为 system 及 223.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 - reject302/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, DIRECTDOMAIN-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 缓存时,可以在小火箭中进行一键清理:
- 打开小火箭,点击底部导航栏 “数据”(Data)。
- 点击 “清除所有日志” 和 “清空 DNS 缓存”。
- 返回首页重新开关一次总服务,系统内存与磁盘缓存即可恢复最干净状态。
iOS 18 蜂窝数据与无线网络 (Wi-Fi) 无缝切换防死锁调优
在移动场景下(例如从有无线 Wi-Fi 的室内走向室外切换为 5G 蜂窝数据网络),iOS 系统的 无线局域网助理(Wi-Fi Assist) 会瞬间在底层重置物理网卡接口。
许多小火箭用户在网络切换的瞬间,经常遇到网页持续打不开、提示连接超时的问题。这是因为旧的 TCP Socket 连接句柄在网卡 IP 变动后进入了僵死状态。
解决多网卡热切换无缝恢复的设置技巧:
- 开启小火箭在网络变更时重连开关:在小火箭“设置” -> “延迟/网络”中,勾选 “网络变更时自动重连” 与 “断开时清空连接池”。开启后,每当系统网卡在 Wi-Fi 与 5G 之间切换,小火箭会自动向内核发送重置指令,瞬间建立新的 TCP 隧道。
- 正确配置 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.com、drive.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% 的规则踩坑:
- 日常选型:首选导入 ACL4SSR 默认配置文件,并在首页将全局路由锁定为 “规则”(Config) 模式。
- 规则顺序:时刻谨记自上而下匹配原则,广告拦截与特定域名规则必须放在高位,
FINAL, PROXY必须永远留存在配置文件的最底部。 - 抓包排查:遇到国内 App 加载卡顿或海外服务打不开时,学会使用小火箭的 “数据 -> 日志” 功能,查找对应域名的匹配规则并精准修改。
[相关文章:Shadowrocket下载安装教程:小火箭iOS美区Apple ID购买下载] [相关文章:Shadowrocket怎么导入订阅?扫码与订阅链接一键导入教程] [相关文章:Shadowrocket节点怎么选择?连通性测试与延迟优化]