Shadowrocket 官方手册

Shadowrocket
代理模式与设置

先确认 Global Routing,再核对 Config 与当前服务器。连接开关、分流规则和 DNS 各管一层,排查时一次只改一项。

以下操作路径以 iPhone / iPad 界面为例;其他平台的入口位置与可用设置以应用内显示为准。

Global Routing:先决定处理方式

Global Routing 决定流量按哪种方式处理,不负责修复错误的服务器参数。首次使用通常选择 Config,让当前配置文件的规则决定哪些请求采用 PROXY、DIRECT 或 REJECT;只有需要对照测试时,再临时切换 Proxy 或 Direct。三种姿态的中文含义分别是配置、代理和直连,应用中的名称仍保留 Config、Proxy、Direct。

操作路径:打开 Home,进入 Global Routing,核对当前选项。切换后返回 Home,确认所选服务器及连接开关,再重新发起一次访问。不要只看到姿态名称改变,就认定原有连接已经按新方式重新建立;测试时应关闭目标应用的旧连接或重新打开目标页面。

三姿态的用途与检查重点
界面选项处理方式适用场景注意事项
Config(配置)按当前启用的 Config 规则与策略处理。日常按域名、IP 等条件分流。检查规则顺序、策略名称和 FINAL,不能只检查服务器。
Proxy(代理)将接管的访问交给当前代理选择处理。与 Config 做对照,判断是否由分流规则造成差异。服务器不可用时,切换到 Proxy 并不能使其恢复。
Direct(直连)让接管的访问按直连方式处理。对照本地网络本身的连通情况。不等于关闭连接开关,也不是对所有应用路径的保证。

如何选择:如果同一目标在 Proxy 可访问、在 Config 不可访问,应优先检查该目标命中了什么规则,而不是立刻更换协议。如果 Direct 也无法访问原本应当直连的目标,先检查 Wi-Fi、蜂窝网络和目标服务本身。完成对照后恢复原来的 Config,避免把临时排查状态长期保留。

规则分流:匹配条件与执行策略

规则由“匹配什么”和“命中后怎么处理”两部分组成。DOMAIN、DOMAIN-SUFFIX 等是匹配类型;PROXY、DIRECT、REJECT 是策略。前者描述目标范围,后者决定处理结果,不应混为同一个设置。规则通常按顺序检查,较具体的例外放在较宽泛规则之前,FINAL 放在末尾承担未匹配流量的最终处理。

操作路径:进入 Config,先确认当前正在使用的配置文件,再打开其编辑入口检查规则。保存前保留一份可恢复的副本;保存后确认该文件仍被启用,并将 Global Routing 设为 Config。只修改一个未启用的文件,不会改变当前实际分流结果。

规则类型匹配对象使用边界
DOMAIN完整域名。适合只处理一个明确的主机名。
DOMAIN-SUFFIX指定域名及其子域名。检查后缀覆盖范围,避免影响无关业务。
DOMAIN-KEYWORD域名中的关键字。范围较宽,可能命中预期之外的域名。
IP-CIDR / IP-CIDR6IPv4 / IPv6 地址段。地址段匹配不等于域名匹配。
GEOIP按 IP 地理数据库分类。分类依赖数据库,不保证与服务归属完全一致。
USER-AGENT可被识别的 User-Agent 信息。受请求可见性限制,不能视作所有加密连接的应用识别方法。
FINAL前面规则均未匹配的流量。检查最终策略是否符合预期。

用最小片段理解规则顺序

DOMAIN-SUFFIX,example.com,PROXY
GEOIP,CN,DIRECT
FINAL,PROXY

这个片段仅用于说明语法:先匹配 example.com 及其子域名,命中后采用 PROXY;随后对符合 GEOIP 条件的地址采用 DIRECT;其余流量交给 FINAL。它不是完整配置,也不包含可用服务器。PROXY 的实际去向还取决于当前服务器或配置中对应的策略选择;REJECT 则表示拒绝匹配到的请求,并非另一种连接方式。

注意:目标服务可能使用多个域名、地址或连接协议。主页面能打开而部分资源失败时,应观察失败请求的实际目标,再补充针对性规则。不要为了修复一个域名,把宽泛的 DOMAIN-KEYWORD 提到全部规则之前;也不要把未知来源的整份规则直接覆盖到现有配置。

Subscribe 与服务器管理

Subscribe 用于导入并更新一组服务器信息,单个 Add Server 条目则保存某台服务器的协议与连接参数。两者都不同于 Config:导入订阅并不自动说明已使用某套规则,选中 Config 也不表示服务器参数已经具备。排查时应分别核对“当前服务器是什么”和“当前配置文件是什么”。

操作路径:在 Home 右上角点击 +,进入 Add Server,将 Type 选择为 Subscribe,粘贴从你的服务商处获取的链接并保存。更新完成后,返回 Home 的 SERVER 列表选择要使用的条目。若添加的是单个服务器,则选择对应的 Type,按已有信息填写地址、端口和认证参数;有现成二维码时可使用 Scan QR Code。

怎么设:协议必须与服务商给出的参数一致。Shadowsocks、VMess、VLESS、Trojan、HTTP、SOCKS5、WireGuard、Hysteria2 的字段并不相同,不能只改 Type 而沿用上一种协议的所有参数。涉及传输方式、TLS、服务器名称等信息时,应逐项核对已有说明,不根据端口号猜测配置。

订阅更新后,先确认列表是否确实刷新,再进行 Connectivity Test。更新失败与服务器连接失败是两个问题:前者可能是订阅链接无法访问或返回内容不符合预期,后者才涉及实际服务器连接。不要在尚未保留信息时反复删除整组条目,避免失去最后一份可供核对的参数。

注意:订阅链接、二维码和服务器详情可能包含认证信息,不适合公开分享。订阅刷新也可能覆盖对其条目的手动修改,因此应先明确数据由订阅维护还是由自己单独维护。分享故障描述时,只保留协议名称、报错类别和必要的设置状态,隐藏链接及认证字段。

On Demand:按条件发起连接

On Demand 用于让系统按已设置的条件发起连接。它管理的是连接时机,不替代 Config 中的分流规则,也不会改变服务器是否可用。建议先手动完成一次稳定连接,再启用按需行为,否则系统自动重连可能掩盖实际失败点,让排查变得不直观。

操作路径:在应用内进入 Settings,找到 On Demand 相关设置,先阅读当前显示的条件与行为,再按使用环境启用或调整。不同系统和应用界面的具体选项可能不同,应以当前页面提供的项目为准,不把其他设备上的选项名称当成本机必然存在的功能。

怎么设:先确定目标是日常自动发起连接,还是在特定网络条件下连接。设置完成后,分别在常用 Wi-Fi 和蜂窝网络中观察;切换网络后留出连接建立的时间,再核对应用的连接状态。若出现手动关闭后又连接的情况,先检查 On Demand 是否仍在生效,而不是连续重复切换开关。

注意:按需连接不意味着所有请求都通过代理,最终仍由 Global Routing 与 Config 决定。需要建立可重复的测试环境时,可以暂时关闭 On Demand,手动控制连接开关;排查完成后再恢复原有设置,并确认系统没有同时启用会影响结果的其他网络配置。

Data:观察流量,不替代计费记录

Data 提供客户端可观察到的流量统计,用来判断测试期间是否有数据传输、上传和下载是否发生变化。它适合辅助验证连接行为,但不能直接等同于服务商账户中的剩余流量,也不能仅凭总量推断每个目标命中了哪条规则。

操作路径:连接前进入 Data,记下当前显示的统计范围与读数;随后只执行一次明确的访问,再回到 Data 比较变化。若页面提供统计周期或重置入口,应先确认其含义。需要保留排查依据时,先记录读数再重置,避免丢掉对照基线。

怎么用:测试时尽量减少后台下载、云端同步和其他应用活动,否则新增流量未必来自正在检查的目标。即使页面加载失败,也可能已经产生 DNS、握手或重试流量;反过来,页面来自缓存时,读数变化可能很小。应将 Data 与实际请求、连接状态及诊断记录一起判断。

注意:客户端与服务商可能采用不同统计范围、更新时间及计量口径。核对额度应查看自己的服务商记录,不用 Data 的单个数字推断账单。若需要判断一次访问到底走了 PROXY 还是 DIRECT,应继续检查当前姿态与相关请求记录,而不是用流量增量代替规则证据。

Settings:常用项逐项检查

Settings 中的项目服务于不同目的:DNS 影响域名解析,Test Method 决定测试方式,Today Widget 提供系统侧快捷入口,iCloud 相关选项用于可支持内容的云端同步。它们不是提升连接效果的一组统一开关。修改前记录原值,修改后只验证与该项目相关的结果。

DNS:先分清解析与连接

是什么:DNS 将域名解析为地址。域名解析成功并不等于目标连接成功,地址连接正常也不意味着域名解析路径正确。在哪里:先在 Settings 检查 DNS 相关入口,再在当前 Config 中核对是否存在 DNS 设置;实际生效行为还需结合当前配置与连接模式判断。

怎么设:优先保留已验证可用的设置,仅在有明确解析错误时调整。使用已有配置提供的 DNS 参数时,检查地址格式和可达性,不随意混合多份配置中的选项。注意:域名请求与直接访问 IP 的差异只能提供线索;HTTPS 的证书、服务器名称和内容分发也会影响结果,不能把这种差异直接认定为 DNS 故障。

Test Method:保持同一种测试口径

是什么:Test Method 决定 Connectivity Test 采用的测试方式。在哪里:在 Settings 找到 Test Method,核对当前选项后,再回到 Home 执行 Connectivity Test。不同方法关注的连接阶段可能不同,结果不适合直接混在一起比较。

怎么设:在同一网络、同一服务器、同一种 Test Method 下重复测试,再进行真实访问。若调整测试相关参数,记录调整前后的条件。注意:测试通过只说明该测试条件成立,不保证所有网站和应用可用;测试失败也应结合所选方法判断,不能仅凭一次结果删除服务器。

Today Widget:快捷操作之后回到应用核对

是什么:Today Widget 是系统侧的快捷查看或操作入口,可用形式取决于系统及应用提供的支持。在哪里:在 Settings 核对相关设置,再到系统的小组件编辑位置查看是否提供对应入口。没有显示时,先确认本机可用项目,不按其他系统的截图强行寻找。

怎么设:按本机界面添加可用的小组件,并在首次操作后打开应用核对连接状态和所选服务器。注意:小组件展示可能存在刷新间隔,不能替代 Home 中的完整确认;快捷开启连接也不意味着 Global Routing 或 Config 已自动改成预期值。

iCloud:同步范围与设备配置分开确认

是什么:iCloud 相关功能用于在支持的设备环境中同步或保存应用提供的内容。在哪里:先检查系统中当前 Apple 账户及 iCloud 的应用权限,再进入 Shadowrocket 的 Settings 核对应用提供的同步选项;具体同步对象以应用内说明为准。

怎么设:同步前保留当前配置,确认希望以哪台设备上的内容为准,再在另一台设备检查实际到达的项目。注意:不要假定所有设置、认证信息和连接状态都会同步。iCloud 内容同步不等于 App Store 已购恢复,也不能据此推断 Windows、安卓或 Linux 会自动获得同一份数据。

Diagnostics:按层定位问题

Diagnostics 用于收集和查看排查线索,不是自动修复所有连接问题的开关。在 Settings 找到 Diagnostics 或相关诊断入口后,先明确要复现的现象,再产生一次新的测试记录。不同系统的诊断项目可能不同,保存内容前先阅读当前界面的说明。

  1. 记录网络与状态。写下正在使用 Wi-Fi 还是蜂窝网络,连接开关是否开启、Global Routing 是 Config、Proxy 还是 Direct,以及所选服务器的协议。无需记录或公开认证字段。
  2. 确认最小测试。先执行一次 Connectivity Test,再访问一个明确的目标。保留测试时间与错误提示,避免同时打开多个应用,让记录充满难以关联的后台请求。
  3. 只改变一个条件。例如先比较 Config 与 Proxy;若差异明确,再检查规则。若服务器连接本身失败,核对参数和本地网络,不同时修改 DNS、协议和传输设置。
  4. 结合记录判断。查找错误属于解析、连接、TLS 还是请求处理阶段。出现明确报错时保留原文;看到超时也应继续区分是测试目标不可达,还是服务器连接未建立。
  5. 恢复日常状态。完成排查后恢复需要的 Config 与 On Demand,关闭仅为诊断开启的额外记录,并确认当前选择没有停留在临时对照状态。

注意隐私:诊断内容可能包含访问域名、服务器地址或订阅信息。发送给他人前应隐藏认证参数、完整订阅链接及与问题无关的访问记录;不要直接公开完整导出文件。描述问题时,保留可复现的步骤、设置项名称和错误原文,通常比只说“无法连接”更有助于缩小范围。

常见设置问题

已经选择 Config,为什么流量没有按预期分流?

先确认 Config 页面中实际启用的文件,再检查目标对应的规则及其顺序。匹配到较早规则后,后面的规则可能不会再参与判断;同时检查 PROXY 或自定义策略对应的服务器选择。重新发起请求后再观察,避免用旧连接判断新配置。

关闭连接后又自动连上,应检查哪里?

优先检查 On Demand 和系统中的相关连接设置。暂时关闭按需行为后,再手动切换一次连接开关进行验证。Direct 是流量处理姿态,不是关闭连接,二者不要混淆。

Connectivity Test 成功,为什么目标页面仍然失败?

测试成功只对应所用 Test Method 的测试条件。继续检查目标域名解析、命中的规则、TLS 参数以及目标服务状态。用同一服务器比较 Config 与 Proxy 的结果,可以帮助区分规则问题与服务器连接问题。

订阅已更新,Config 是否也会一起改变?

不要把二者视为同一项数据。Subscribe 主要维护服务器信息,Config 管理配置与规则。更新订阅后,分别查看 SERVER 列表与当前 Config,确认各自实际变化;以页面显示和当前生效内容为准。