Shadowrocket
Shadowrocket 是 iOS 平台上使用最广泛的代理客户端,由开发者 @liguangming 开发,在 App Store 售价 2.99 美元。它以功能全面、更新活跃、协议支持广泛著称,是 iPhone 和 iPad 用户的首选代理工具。
基本信息
| 项目 | 信息 |
|---|---|
| 平台 | iOS 9.0 及以上 / iPadOS |
| 价格 | $2.99(一次性购买,终身有效) |
| 开发者 | liguangming |
| App Store | 下载地址 |
| 内核 | 自有内核 |
| 更新频率 | 活跃,通常每月有更新 |
Shadowrocket 仅在非中国区 App Store 上架,中国大陆 Apple ID 无法搜索和购买。需要先注册一个其他地区(如美国、香港)的 Apple ID,才能完成购买。购买后绑定到 Apple ID,在同一 Apple ID 下的设备均可免费安装。
协议支持
Shadowrocket 对主流代理协议的支持非常全面:
| 协议 | 支持状态 | 备注 |
|---|---|---|
| Shadowsocks(AEAD) | 支持 | — |
| Shadowsocks 2022 | 支持 | 需要较新版本 |
| VMess | 支持 | 支持 WebSocket、gRPC、HTTP/2 等传输层 |
| VLESS | 支持 | 支持 Reality、XTLS-Vision |
| Trojan | 支持 | — |
| Hysteria 2 | 支持 | — |
| TUIC v5 | 支持 | 需要较新版本 |
| AnyTLS | 暂不支持 | — |
| ShadowTLS v3 | 支持 | 需要较新版本 |
| WireGuard | 支持 | — |
| NaiveProxy | 不支持 | — |
| SOCKS5 | 支持 | — |
| HTTP | 支持 | — |
| SSH | 不支持 | — |
安装与初始设置
购买和安装
- 切换到非中国区 Apple ID(在"设置"→"App Store"→"Apple ID"中切换)
- 在 App Store 搜索"Shadowrocket",找到小火箭图标的应用
- 支付 $2.99 完成购买(需要绑定支持外币消费的信用卡,或使用礼品卡)
- 安装完成后,可以切换回中国区 Apple ID 正常使用,已购买的应用不受影响
首次启动
首次打开 Shadowrocket 时,系统会请求创建 VPN 配置的权限,点击"允许"并通过 Face ID / Touch ID 验证。这是正常流程,Shadowrocket 需要 VPN 权限才能接管系统流量。
VPN 配置创建完成后,主界面顶部会出现一个开关,点击即可启动代理服务。
主界面说明
Shadowrocket 的主界面("首页"标签)分为以下几个区域:
- 连接开关:顶部的大开关,控制代理服务的启用/停用
- 当前节点:开关下方显示当前选中的代理节点,点击可切换
- 节点列表:列出所有已添加的节点和订阅组
- 底部标签栏:首页、节点、配置、日志、设置
添加代理节点
方法一:扫描二维码
部分机场和自建节点提供二维码形式的分享。在 Shadowrocket 主界面点击右上角的 "+" 按钮,选择"扫码",扫描包含节点 URI 的二维码即可导入。
方法二:从剪贴板导入 URI
将节点的 URI(如 vless://...、ss://...、vmess://...)复制到剪贴板后,打开 Shadowrocket,点击右上角 "+" 按钮,选择"从剪贴板导入"(或者 Shadowrocket 有时会自动检测剪贴板中的 URI 并弹出导入提示)。
支持的 URI 格式:
| 协议 | URI 前缀 |
|---|---|
| Shadowsocks | ss:// |
| VMess | vmess:// |
| VLESS | vless:// |
| Trojan | trojan:// |
| Hysteria 2 | hysteria2:// 或 hy2:// |
| TUIC | tuic:// |
| WireGuard | wireguard:// |
| SOCKS5 | socks5:// |
方法三:手动添加节点
点击右上角 "+" 按钮,选择节点类型后手动填写参数:
添加 VLESS + Reality 节点示例:
- 点击 "+",类型选择 "VLESS"
- 填写参数:
- 服务器:你的服务器 IP
- 端口:443
- UUID:节点的 UUID
- TLS:开启
- 流控(Flow):xtls-rprx-vision
- 传输方式:TCP
- TLS 安全类型:Reality
- 公钥(Public Key):Reality 的公钥
- Short ID:配置的 shortId
- SNI:如 www.apple.com
- 指纹(Fingerprint):chrome
- 点击完成,节点即添加成功
添加 Hysteria 2 节点示例:
- 点击 "+",类型选择 "Hysteria 2"
- 填写参数:
- 服务器:节点域名
- 端口:443
- 密码:节点密码
- SNI:节点域名
- ALPN:h3(可不填,自动协商)
- 点击完成
方法四:添加订阅(机场用户推荐)
机场通常提供订阅链接,可以批量导入和自动更新所有节点:
- 在主界面点击右上角 "+" 按钮
- 类型选择"Subscribe"(订阅)
- 在 URL 字段填入机场提供的订阅链接
- 备注填写机场名称(便于区分)
- 点击完成
添加订阅后,Shadowrocket 会自动下载节点列表。节点会以订阅组的形式显示,组内包含该订阅下的所有节点。
订阅自动更新设置:
前往"设置"→"订阅",可以配置订阅的自动更新频率和更新时机(如仅在 Wi-Fi 下更新、使用代理更新等)。建议将自动更新间隔设置为 24 小时,确保节点列表保持最新。
切换节点
在主界面,当前选中的节点名称会显示在开关下方。点击该区域可以进入节点选择界面,长按某个节点可以查看延迟信息。
点击右上角的闪电图标可以对当前订阅下的所有节点进行延迟测试,测试结果显示在每个节点名称旁边。点击延迟最低的节点即可切换。
全局代理与规则代理的切换:
在节点列表顶部有三个模式按钮:
| 模式 | 说明 |
|---|---|
| 全局路由(Global) | 所有流量均走代理,包括国内应用 |
| 规则(Rule) | 按配置文件中的规则分流,推荐使用 |
| 直连(Direct) | 所有流量直连,代理暂时停用 |
| 场景(Scene) | 根据当前 Wi-Fi 网络自动切换规则 |
日常使用建议选择"规则"模式,按规则分流既保证了国外网站的访问速度,又不影响国内应用的正常使用,同时减少不必要的流量消耗。
配置文件
Shadowrocket 支持通过配置文件(.conf 格式)定义精细的分流规则、DNS 配置和其他行为。
使用内置默认配置
Shadowrocket 内置了几个默认配置文件,适合大多数用户:
- 默认配置:基础分流规则,国内直连,国外代理
- 绕过局域网:局域网地址直连,其余代理
- 全局代理:所有流量均走代理
在"配置"标签页中,可以选择这些内置配置,或者导入自定义配置文件。
导入自定义配置文件
社区提供了很多高质量的 Shadowrocket 配置文件,包含更完整的分流规则和广告过滤。常见的导入方式:
方法一:通过 URL 导入
- 在"配置"标签页点击右上角 "+"
- 在 URL 字段填入配置文件的直链地址
- 下载完成后,点击配置文件名称旁边的圆圈将其设为当前使用的配置
- 点击"使用"确认
方法二:通过 iCloud Drive 导入
将 .conf 格式的配置文件上传到 iCloud Drive 中,然后在"配置"页面通过"从 iCloud Drive 导入"添加。
配置文件结构
Shadowrocket 的配置文件格式类似于 Surge,以下是一个基础配置文件的结构示例:
[General]
bypass-system = true
skip-proxy = 192.168.0.0/16, 10.0.0.0/8, 172.16.0.0/12, 127.0.0.1, localhost, *.local
tun-excluded-routes = 192.168.0.0/16, 10.0.0.0/8, 172.16.0.0/12
dns-server = system, https://doh.pub/dns-query
fallback-dns-server = https://1.1.1.1/dns-query
ipv6 = false
prefer-ipv6 = false
dns-direct-system = false
icmp-auto-reply = true
always-reject-url-rewrite = false
private-ip-answer = true
dns-direct-fallback-proxy = true
hijack-dns = 8.8.8.8:53, 8.8.4.4:53
[Rule]
# 广告过滤
DOMAIN-SUFFIX,googlesyndication.com,REJECT
DOMAIN-SUFFIX,googleadservices.com,REJECT
# 国内直连
DOMAIN-SUFFIX,cn,DIRECT
DOMAIN-SUFFIX,taobao.com,DIRECT
DOMAIN-SUFFIX,jd.com,DIRECT
DOMAIN-SUFFIX,baidu.com,DIRECT
DOMAIN-SUFFIX,qq.com,DIRECT
DOMAIN-SUFFIX,weixin.qq.com,DIRECT
# 国外代理
DOMAIN-SUFFIX,google.com,PROXY
DOMAIN-SUFFIX,youtube.com,PROXY
DOMAIN-SUFFIX,github.com,PROXY
DOMAIN-SUFFIX,twitter.com,PROXY
# 局域网直连
IP-CIDR,192.168.0.0/16,DIRECT,no-resolve
IP-CIDR,10.0.0.0/8,DIRECT,no-resolve
IP-CIDR,172.16.0.0/12,DIRECT,no-resolve
IP-CIDR,127.0.0.0/8,DIRECT,no-resolve
# 国内 IP 直连
GEOIP,CN,DIRECT
# 默认代理
FINAL,PROXY
规则语法说明:
| 规则类型 | 示例 | 说明 |
|---|---|---|
DOMAIN | DOMAIN,example.com,PROXY | 精确匹配完整域名 |
DOMAIN-SUFFIX | DOMAIN-SUFFIX,example.com,PROXY | 匹配该域名及所有子域名 |
DOMAIN-KEYWORD | DOMAIN-KEYWORD,youtube,PROXY | 匹配包含该关键词的域名 |
IP-CIDR | IP-CIDR,8.8.8.8/32,PROXY | 匹配 IP 地址段 |
GEOIP | GEOIP,CN,DIRECT | 根据 IP 归属国家匹配 |
USER-AGENT | USER-AGENT,Surge*,DIRECT | 匹配 HTTP User-Agent |
FINAL | FINAL,PROXY | 未匹配任何规则时的默认动作 |
动作说明:
| 动作 | 说明 |
|---|---|
PROXY | 走当前选中的代理节点 |
DIRECT | 直接连接 |
REJECT | 拒绝连接(用于广告过滤) |
若配置了多个节点或策略组,可以将动作替换为对应的组名。
推荐的社区配置文件
以下是一些社区维护的 Shadowrocket 配置文件,包含更完整的规则集:
- blackmatrix7 规则集:github.com/blackmatrix7/ios_rule_script 提供了针对各类场景的精细规则
- DivineEngine 规则集:适合日常使用的综合分流方案
对于大多数普通用户,使用机场提供的订阅链接(Shadowrocket 格式)即可,订阅中通常已经包含了适合大多数场景的分流规则,不需要额外配置复杂的规则文件。自定义配置文件主要适合有精细分流需求的进阶用户。
DNS 设置
合理的 DNS 配置对于分流准确性和防止 DNS 泄露至关重要。
在"设置"→"DNS" 中可以配置:
推荐的 DNS 配置方案:
在配置文件的 [General] 块中设置:
dns-server = system, https://doh.pub/dns-query, https://dns.alidns.com/dns-query
fallback-dns-server = https://1.1.1.1/dns-query, https://8.8.8.8/dns-query
dns-server:优先使用,推荐配置为国内的 DoH 服务fallback-dns-server:当主 DNS 无法解析时使用,配置为境外 DoH
DNS 泄露检测:
配置完成后,建议访问 dnsleaktest.com 检测是否存在 DNS 泄露。正常情况下,测试结果显示的 DNS 服务器应该是你的代理节点所在地区的 DNS,而不是你的真实 ISP 的 DNS。
全局路由与场景切换
Shadowrocket 支持根据网络环境自动切换代理模式:
在"设置"→"代理"→"On Demand"中,可以配置:
- Wi-Fi 下:自动启用代理
- 蜂窝数据下:自动启用代理
- 特定 SSID 下:使用不同的代理行为(例如在家庭网络直连,在公共 Wi-Fi 下启用代理)
这对于需要在不同场景下使用不同代理策略的用户非常实用。
URL 改写(URL Rewrite)
Shadowrocket 支持 URL 改写功能,可以修改或拦截特定的 HTTP/HTTPS 请求,常用于去除广告、绕过某些内容限制等场景。
在配置文件中通过 [URL Rewrite] 块定义:
[URL Rewrite]
^https?://(www.)?(googlesyndication|googleadservices).com https://example.com reject
这一功能属于进阶使用,对普通用户而言通常不需要手动配置。
MitM(中间人解密)
Shadowrocket 支持 HTTPS 解密(MitM),用于在脚本中处理加密的 HTTPS 流量内容。
开启 MitM 需要在 iOS 上安装一个自签名的根证书,并将其标记为受信任。这会允许 Shadowrocket 解密你的 HTTPS 流量内容,存在安全风险。如果你不了解 MitM 的具体用途和风险,请不要随意开启此功能。只有在明确需要通过脚本处理 HTTPS 内容时,才考虑启用。
脚本功能
Shadowrocket 支持通过 JavaScript 脚本处理 HTTP/HTTPS 请求和响应,可以实现:
- 修改请求头和响应头
- 注入或删除特定内容
- 实现复杂的重写规则
在配置文件中通过 [Script] 块引用脚本:
[Script]
https://raw.githubusercontent.com/example/script.js type=http-response,pattern=^https://api.example.com,requires-body=1,max-size=131072,timeout=60
脚本功能属于进阶特性,需要结合 MitM 使用,适合有特定定制需求的用户。
与其他 iOS 代理客户端的对比
| 对比维度 | Shadowrocket | Quantumult X | Stash | Loon | Surge |
|---|---|---|---|---|---|
| 价格 | $2.99 | $9.99 | $5.99 | $7.99 | 较贵 |
| 使用门槛 | 低 | 高 | 中 | 中 | 高 |
| 协议支持 | 全面 | 全面 | 全面 | 全面 | 全面 |
| 脚本能力 | 中 | 极强 | 中 | 强 | 极强 |
| 机场兼容性 | 极高 | 高 | 高(Clash格式) | 高 | 高 |
| 更新活跃度 | 高 | 中 | 高 | 中 | 高 |
| AnyTLS 支持 | 暂不支持 | 不支持 | 支持(TF) | 支持(TF) | 支持 |
| 推荐人群 | 入门到中级用户 | 脚本进阶用户 | Clash用户 | 自动化进阶用户 | 专业用户 |
选择建议:
- 刚开始使用 iOS 代理的用户,Shadowrocket 以 $2.99 的价格提供了全面的功能,是入门的最佳选择
- 有大量脚本需求(如解锁功能、净化广告)的用户,Quantumult X 或 Loon 的脚本生态更成熟
- 习惯使用 Clash 格式配置的用户,Stash 的兼容性最好
- 对功能有极致追求且预算充足的用户,Surge 提供了最强的综合能力
常见使用技巧
快速切换节点
在主界面长按某个节点,可以弹出快捷操作菜单,包括"测试延迟"、"删除"等选项。点击延迟数值会重新测速。
使用 Widget 快速开关
在 iOS 小组件中添加 Shadowrocket 的 Widget,可以在不打开应用的情况下快速开关代理或切换节点。在 iOS 小组件编辑界面搜索"Shadowrocket"即可添加。
查看实时流量
在"日志"标签页可以查看实时的连接记录,包括每条连接的域名、IP、走代理还是直连、延迟等信息。这对于排查分流问题非常有用。
备份和恢复配置
在"设置"→"iCloud 备份"中,可以将 Shadowrocket 的配置(包括订阅、节点、设置)备份到 iCloud。在更换设备时,登录同一 Apple ID 后可以从 iCloud 恢复所有配置,无需重新设置。
分享节点
长按节点列表中的某个节点,选择"分享",可以生成节点的 URI 或二维码,方便与他人分享或在其他设备上导入。
常见问题排查
Q:添加订阅后,节点显示为"TIMEOUT"或延迟极高,是什么原因?
可能原因和解决方案:
- 节点服务器不在你当前能访问的区域,或服务端暂时不可用
- 当前网络环境对该节点使用的协议或端口有封锁,尝试切换到其他节点
- 订阅中的节点已失效,联系机场更新节点
- 网络环境较差,尝试切换 Wi-Fi / 蜂窝数据后重新测速
Q:开启代理后,部分应用仍然无法访问,或国内应用速度变慢?
检查以下几点:
- 当前是否处于"全局"模式,如果是,切换到"规则"模式
- 查看"日志"标签,确认这些应用的请求走的是哪个规则
- 如果国内应用被错误地路由到代理,可能是配置文件的规则不完整,考虑更新配置文件
- 检查 DNS 设置是否正确,不正确的 DNS 可能导致国内域名被解析到错误的 IP
Q:订阅更新失败,提示"无法连接到服务器"?
可能的解决方案:
- 在"设置"→"订阅"中,开启"通过代理更新"选项,使用当前激活的节点下载订阅
- 检查订阅链接是否已过期(在机场控制面板重新获取)
- 确认机场的服务是否正常,可以在电脑上先测试订阅链接能否访问
Q:配置文件下载后,点击"使用"但没有效果?
确认配置文件已成功下载,然后在"配置"标签页中,找到该配置文件,点击右侧的圆圈图标将其激活(激活状态显示为填充的圆圈)。重新开关代理使配置文件的规则生效。
Q:Shadowrocket 如何与 Clash 格式的订阅兼容?
Shadowrocket 原生支持的订阅格式是 Base64 编码的 URI 列表(通用格式)和 Shadowrocket 专属格式。对于 Clash 格式(YAML)的订阅,Shadowrocket 也提供了一定程度的兼容解析,可以直接导入,但 Clash 配置中的规则组、策略组等高级功能可能无法完整呈现。
如果机场只提供 Clash 格式订阅,建议联系机场客服请求通用格式或 Shadowrocket 格式的订阅链接。也可以使用订阅转换服务(如 Sub-Converter)将 Clash 格式转换为 Shadowrocket 支持的格式。
Q:如何在不重新购买的情况下在新设备上安装 Shadowrocket?
Shadowrocket 绑定到 Apple ID,使用同一 Apple ID 登录 App Store 后,在"已购项目"中找到 Shadowrocket,即可免费重新下载安装。无需再次付费。
Q:iOS 版本升级后,Shadowrocket 还能用吗?
Shadowrocket 会持续跟进 iOS 系统更新,通常在新 iOS 版本发布后很快就会推出兼容更新。如果系统更新后出现问题,先尝试将 Shadowrocket 更新到最新版本。
安全注意事项
- 不要使用来源不明的配置文件:配置文件可以定义 MitM 证书和脚本,恶意配置文件可能截获你的隐私数据
- 定期检查已安装的证书:在 iOS 的"设置"→"通用"→"VPN 与设备管理"中,确认没有安装不认识的根证书
- 保护好订阅链接:订阅链接是你的服务凭证,不要将其发送给不信任的人
- 谨慎使用第三方脚本:在
[Script]块中引用的脚本可以读取和修改你的网络请求,只使用来自可信来源的脚本
相关资源
- Shadowrocket App Store 页面:apps.apple.com/app/shadowrocket/id932747118
- blackmatrix7 iOS 规则集:github.com/blackmatrix7/ios_rule_script
延伸阅读
- Quantumult X — 脚本能力更强的 iOS 代理客户端
- Stash — 基于 Mihomo 内核的 iOS 客户端,Clash 格式订阅兼容性最好
- Loon — 功能全面的 iOS 代理客户端,插件生态丰富
- Surge — iOS 和 macOS 平台功能最强大的代理工具
- 代理软件总览 — 回到软件总览页面