官方手册 · 功能介绍

Shadowrocket
功能与常用设置

先选 Global Routing,再核对 Config 与服务器。连接开关、分流规则、DNS 和自动连接分别影响不同环节,排查时不要一起修改。

  • iPhone / iPad 操作说明
  • 配置前先备份
  • 一次只改一项

本页按 iPhone 与 iPad 上的使用逻辑组织说明。Shadowrocket 是 Apple 平台付费客户端;Mac、Apple TV 与 Apple Vision 的兼容性、系统要求和购买适用范围,以 App Store 页面标注为准。应用只通过 App Store 获取,购买前可先阅读正版核对与购买说明。

Global Routing:先确定三种姿态

Global Routing 决定整体连接采用哪种处理方式,不等同于连接开关。在 Home 中找到 Global Routing,按当前目的选择 Config、Proxy 或 Direct。中文说明分别称为配置、代理、直连;实际操作应识别界面上的英文原文。修改后,原有长连接未必立即按新方式重建,验证时应重新发起请求,而不是只观察已经打开的页面。

界面选项主要作用适用检查注意事项
Config
配置
根据当前选中的配置进行规则匹配。需要不同目标使用不同策略时。必须确认活动配置以及 Rule 段顺序。
Proxy
代理
以代理姿态处理请求,主要用于检查所选代理路径。暂时缩小规则因素,验证已有服务器能否工作时。不能据此认定所有系统流量都经过相同路径。
Direct
直连
以直连姿态处理请求。对照当前网络的直接访问表现时。选中 Direct 不等于关闭系统中的 VPN 连接。

日常按规则分流时通常从 Config 开始。若某个目标失败,可以记录原姿态,再暂时使用 Proxy 或 Direct 做对照,最后恢复原设置。对照结果只说明不同路径的表现,不自动证明服务器、DNS 或目标服务中的某一方有问题;仍需结合日志判断。

容易混淆的是 Config 同时作为界面入口名称和 Global Routing 选项出现:前者管理配置文件,后者表示“按当前配置处理”。进入 Config 浏览了一份文件,并不必然代表已经将它设为活动配置,启用前应检查选中状态。

Rule:规则类型与策略分开理解

规则类型用于判断请求,策略用于决定命中后的动作。在 Config 中打开当前使用的配置,检查 Rule 或对应的 [Rule] 段。规则按从上到下的顺序处理,首条命中后不再继续匹配后面的规则;更具体的例外应放在宽泛规则之前,FINAL 应放在末尾作为兜底。

DOMAIN 对应完整域名,DOMAIN-SUFFIX 对应域名后缀,DOMAIN-KEYWORD 按域名中的关键词匹配。IP-CIDR 与 IP-CIDR6 分别描述 IPv4 与 IPv6 地址范围,GEOIP 根据 IP 地理数据库参与判断。域名规则与 IP 规则的观察角度不同,不能只因为页面属于某个域名,就断言它加载的每个资源都会命中同一条规则。

[Rule]
DOMAIN-SUFFIX,apple.com,DIRECT
DOMAIN-KEYWORD,adservice,REJECT
DOMAIN-SUFFIX,example.com,PROXY
IP-CIDR,192.168.0.0/16,DIRECT
GEOIP,CN,DIRECT
FINAL,PROXY

上面只是语法示例,不是可以替代完整设置的配置。DIRECT 表示直接连接,REJECT 表示拒绝请求,PROXY 表示交给代理策略处理,其实际使用的服务器仍要结合当前选择确认。策略关键字使用大写,不能与 Global Routing 中的 Proxy、Direct 界面名称混为同一设置。

修改时先保留原配置副本,只增加一条范围明确的规则,保存并确认活动配置后重新测试。如果规则没有生效,先核对 Global Routing 是否为 Config、前面是否已有更宽的规则命中,再检查请求实际使用的域名或地址。不要直接把 FINAL 移到顶部;这会让它前置兜底,后续规则失去匹配机会。关于排序可继续阅读自定义规则与 FINAL 说明。

Subscribe 与 Add Server:管理已有信息

订阅用于批量维护服务器条目,手动添加用于录入一组明确的连接参数。两者都从用户已有信息开始。在 Home 进入 Add Server,按已有资料选择对应类型并填写参数;订阅导入则在相应入口选择 Subscribe,录入自己的订阅地址。也可以按应用提供的 Scan QR Code 等入口读取已有内容,导入前先确认内容来源与用途。

手动录入时,应逐项核对地址、端口、认证信息及协议要求。Shadowsocks、VMess、VLESS、Trojan、Hysteria2、WireGuard 等协议的参数并不相同,不能只修改类型名称便沿用其余字段。TLS、传输方式与相关名称也应按原始资料填写,不应为了消除报错而随意关闭验证或更换参数。

导入成功只代表应用读入了内容,不代表服务器一定可连接。返回 Home 后核对分组与条目,再选择要使用的服务器,并单独执行 Connectivity Test。订阅更新可能增加、移除或调整条目,因此重要的手工备注与独立修改应先留存;不要假设订阅下次刷新会保留所有本地改动。

订阅地址可能包含访问凭据,截图、日志与求助材料都应遮盖完整链接及认证字段。更新失败时,先区分链接访问失败、返回内容格式不符、导入后条目无法连接三类情况。前两类属于获取与解析环节,最后一类才需要继续核对协议参数和连接路径,详细步骤见使用说明。

On Demand:按条件触发连接

On Demand 用于按条件触发连接,不负责决定单个请求的分流策略。在应用的 On Demand 设置入口检查可用条件,再根据自己的网络使用场景配置。它和 Global Routing、Rule 分属不同层次:On Demand 处理何时连接,Global Routing 与 Rule 处理连接后的请求路径。

设置前先用手动连接确认当前配置与服务器可以工作,再启用一个容易验证的条件。保存后切换到对应网络,观察系统 VPN 状态及应用内连接状态,然后退出该条件再次观察。若设置涉及 Wi-Fi 网络名称,应核对名称是否与当前网络一致,避免把相似名称当成同一个条件。

启用后,手动关闭连接与随后满足触发条件可能产生连续动作,因此“刚关闭又连接”不一定是应用异常。排查这一现象时,应先暂停 On Demand 做一次手动对照,再核对系统内相关 VPN 设置。自动触发也不代表远端服务始终可用;网络变化、认证失败或服务器不可达,仍会导致连接或访问失败。

如果希望暂时停止自动触发,应回到 On Demand 核对并关闭相应条件,而不是只反复操作 Home 的开关。恢复自动连接前,再次确认当前选中的服务器与活动配置,避免自动触发使用了测试期间留下的选择。

Data:读取流量统计而非测速结果

Data 用于观察流量使用情况,累计字节不等于当前速度。进入 Data,先确认当前视图、条目归属和界面提供的统计范围,再查看上传与下载读数。按服务器观察可以帮助识别某个条目的使用情况;若当前设备与界面提供按应用视图,应同时核对其归属方式,不把记录名称直接视为完整的应用行为结论。

建立对照时,可先记录当前读数与统计起点,再只进行一次明确操作,例如重新打开一个页面,然后返回 Data 观察变化。短时间内有读数增加,只能说明相应统计范围记录到了流量;页面可能同时请求图片、脚本与后台资源,不能把总量简单等同于屏幕上某个文件的大小。

读数为零时,先确认连接已建立、目标请求确实重新发起,以及当前查看的条目是否就是实际使用的服务器。浏览器缓存、不同策略路径、统计范围变化,都可能让数字不符合直觉。读数偏大时,先检查后台活动和重复测试,不要立即推断统计有误。

Data 也不是服务计费凭证。客户端显示的统计范围与远端服务的计量方式可能不同,应分别阅读对应说明。若界面提供清除或重置统计操作,执行前先记录必要信息,之后的比较应使用新的起点。进一步的读数说明可查看Data 页流量统计含义。

DNS:先核对活动配置,再改解析设置

DNS 负责将域名解析为地址,解析成功与后续连接成功是两个检查点。核对 DNS 时,应同时查看 Config 中活动配置的相关项目与 Settings 中呈现的 DNS 选项。不要只改一处便假定已经影响所有请求;实际行为还与配置内容、请求路径及相关选项有关。

例如,配置中的 dns-server 用于描述 DNS 服务器设置,以下片段说明使用系统 DNS 的写法。它不是适用于所有网络的推荐方案,也没有覆盖一份完整配置需要考虑的其他内容。

[General]
dns-server = system

调整时先备份活动配置并记下原值,再只修改一个 DNS 相关项目。保存后重新发起相同域名的请求,必要时按应用提供的方式重新建立连接,避免旧连接或缓存干扰比较。不要仅因为一次解析较慢,就同时更换 DNS、Global Routing 与服务器,否则难以判断是哪项调整改变了结果。

如果域名无法解析,优先检查当前网络的解析可达性和配置语法;如果能解析但无法访问,则继续查看目标地址连接、TLS 与规则策略。解析结果可能受到缓存与网络环境影响,因此应记录测试时的网络条件,而不是把某一次结果当成长期结论。

Settings:测试方式、快捷入口与同步

Settings 中的常用项应按目的分别调整。入口与选项可能随设备和当前界面不同,先识别名称再操作。保留原值,优先使用可以重复验证的设置变化;不了解含义的选项先查说明,不要把所有开关都打开作为通用处理方法。

Test Method 与 Connectivity Test

Test Method 用于选择连接测试采用的方法,Connectivity Test 用于发起测试。先在 Settings 核对 Test Method,再回到 Home 对已有服务器进行测试。比较不同条目时,应保持测试方法、测试目标以及当前网络条件一致;不同方法产生的读数不能直接排名比较。

测试有返回不代表所有网站或应用都能正常使用,测试失败也未必表示认证信息错误。应继续用一个明确目标做实际请求,并区分名称解析、连接建立与内容返回三个阶段。不要为了得到更小的数字不断切换方法,却忽略实际访问是否完成。

Today Widget

Today Widget 是供系统相应区域使用的快捷入口,能否添加及显示哪些操作,以当前系统与应用界面为准。先在应用内检查相关设置,再到系统提供的组件编辑入口确认是否可添加。它是操作入口,不是另一个独立配置环境;使用前仍应在应用内确认服务器、Global Routing 和活动配置。

若快捷操作后的状态与预期不同,先打开应用核对实际连接状态,再检查 On Demand 是否触发了后续连接。不要仅凭组件上一次显示的文字判断当前请求路径。

iCloud 同步

iCloud 同步用于在相关条件满足时同步应用支持的数据。先在系统设置核对 iCloud 使用状态与应用权限,再检查 Shadowrocket 内对应选项。同步范围以应用显示为准,不应把“开启同步”理解为每一台设备上的服务器、配置、统计与连接状态都会完整一致。

在另一台设备上操作前,先检查同步到达的内容及其选中状态,确认后再连接。删除、覆盖或批量修改前,应保留可恢复的副本。App Store 的已购项目恢复的是应用购买资格,不等于恢复所有连接参数;二者应分开核对,换机步骤见已购项目恢复说明。

Diagnostics:按顺序缩小故障范围

诊断应回答“失败发生在哪个环节”,而不是连续更改所有设置。从 Settings 中查看 Diagnostics 或当前界面提供的诊断工具,结合 Connectivity Test 与连接记录进行检查。工具的具体名称、记录范围和可用功能以应用内显示为准,测试完成后保留必要结果即可。

  1. 先确认基础网络。记录当前使用 Wi-Fi 还是蜂窝网络,以及问题是否只发生在某一种网络。若基础访问本身失败,先处理该网络的连接问题。
  2. 确认选择关系。检查 Home 当前服务器、Global Routing、Config 活动文件与 On Demand 状态。连接开关处于开启状态,只能作为检查起点。
  3. 验证测试条件。核对 Test Method,在相同网络下对同一条目执行 Connectivity Test,记录结果,不把方法不同的读数混在一起。
  4. 检查规则与解析。针对一个明确目标查看请求线索,确认域名解析、匹配策略与连接错误。如果只在 Config 下失败,再回到 Rule 顺序检查。
  5. 恢复并复测。每次只调整一项,重新发起同一个请求。若没有改善,恢复原值再测试下一项,避免临时配置叠加。

“超时”“认证失败”与“名称解析失败”是不同线索。超时需要结合网络可达性、目标地址与远端响应继续判断;认证失败应先回查已有凭据与协议参数;名称解析失败则优先核对 DNS 相关设置。单条报错通常不足以证明整条连接路径的原因。

整理求助信息时,可以记录设备类型、当前网络、Global Routing 姿态、失败目标的类型,以及经过脱敏的错误文本。不要公开服务器认证信息、订阅完整地址或配置中的敏感字段。若问题集中在连接过程,继续查看连接问题问答;若应用尚未获取或无法恢复购买,则应转到App Store 指南,不要在网络设置里反复尝试。