本文用于排查 Shadowrocket(小火箭)中已有服务器的超时与连接失败,前提是用户已有自己的服务商与订阅。按“基础网络、测试含义、协议参数、TLS 与时间、DNS、路由与日志”的顺序逐项验证,每次只改变一个设置,最终区分本地网络问题、配置问题与服务端问题。测试结果不是线路质量承诺,连接开关开启也不等于目标请求已成功。
一、固定测试条件与基础网络
连接失败是一次请求未完成的结果,不是单一故障名称。默认配置、测试方式和连接超时时间以当前应用显示为准;排查时建议先记录原值,不同时改动服务器、DNS 和 Global Routing。否则即使恢复访问,也无法确认是哪项修改生效。
基础网络检查用于确认设备本身能够联网。先关闭 Home 的连接开关,访问一个平时能够直接访问的页面;若仍失败,应先完成 Wi-Fi 登录认证或检查蜂窝数据权限,再继续检查 Shadowrocket。VPN 状态图标仅说明系统隧道已建立,不能证明远端服务器接受了连接。
-
记录原值
在 Home 记录所选服务器与 Global Routing 的当前值,在 Config 确认正在使用的配置文件。保存故障发生时间和网络类型,不记录明文密码或订阅凭据。
-
验证直连
关闭 Home 连接开关,用浏览器验证基础网络。公共 Wi-Fi 若有登录页面,先完成网络认证;不要把认证未完成误判为服务器超时。
-
暂停自动触发
检查 Settings → On Demand,记录现有设置后临时停用按需触发,避免手动关闭连接后又被系统自动连接。排查结束再恢复原设置。
-
单点复测
回到 Home,只选一个已有服务器,开启连接并访问同一个目标。随后仅切换 Wi-Fi 或蜂窝网络复测,保持服务器和配置不变。
二、延迟测试与实际请求的区别
延迟测试是特定探测方式的耗时,不是完整应用访问结果。Home → Connectivity Test 的测试方式及相关选项以当前应用显示为准;建议先确认正在使用的探测类型,再解释数值。只探测 TCP 建连时,不会完整验证代理认证、TLS 握手、目标网站响应或 UDP 数据传输。
测试超时也需要结合探测对象判断。如果探测依赖某个测试地址,该地址暂时不可达就可能使多个服务器一起显示失败。若实际访问正常而探测失败,应先核对测试地址和测试方式,不要直接删除已有配置。
- TCP 探测成功、网页失败:优先核对认证、TLS、传输参数及实际命中的策略,而不是只看延迟数值。
- 单个服务器失败、其余正常:优先核对该服务器地址、端口和服务端状态,不要先重置全部设置。
- 同一配置仅在一个网络失败:检查该网络的 DNS、端口与 UDP 可达性,并记录切换网络后的差异。
- 多个服务器与直连同时失败:先处理设备基础网络,反复更新订阅通常不能解决这一层的问题。
三、地址、端口与协议参数核对
服务器参数是客户端与服务端之间的约定,没有跨协议通用的正确值。Home 中打开对应服务器的编辑页面,逐项与自己的服务商提供的原始配置核对;推荐保留原始地址、端口及认证字段,不凭经验把端口统一改成 443。地址字段也不应额外混入网址路径或多余空格。
| 协议 | 优先核对 | 容易误判的情况 |
|---|---|---|
| Shadowsocks | 地址、端口、密码、加密方式,以及原配置要求的附加参数 | 端口可达但密码或加密方式不同,实际代理请求仍会失败。 |
| VMess | UUID、加密设置、传输方式,以及对应 TLS 与传输参数 | UUID 正确并不代表 WebSocket 路径或 Host 正确,系统时间也应核对。 |
| VLESS | UUID、传输方式,以及原配置使用的 TLS、REALITY 或 Flow 参数 | 不要把其他服务器的安全设置直接套用到当前配置。 |
| Trojan | 密码、TLS、Server Name 与证书验证 | 地址能连接,但证书名称或认证信息不匹配,仍不能完成请求。 |
| Hysteria2 | 认证、TLS、端口及 UDP 可达性 | 基于 QUIC,不能用 TCP 端口探测成功来证明其链路可用。 |
| WireGuard | 密钥、Peer、Endpoint、Allowed IPs 与隧道地址 | 需要检查 UDP 通信及握手情况,单看 TCP 探测没有判断意义。 |
订阅更新用于同步服务商发布的配置,不等于修复所有连接错误。确认订阅仍有效后,再对 Home 中对应订阅执行更新,并检查更新后是否仍选择原来的失效条目。手工修改订阅生成的条目前先保留记录,因为后续更新可能覆盖修改;不要把同一订阅重复添加多次作为排错方法。
四、TLS、Server Name 与系统时间
TLS 验证用于核对服务端证书及连接身份,涉及证书名称、有效期和信任链。Server Name 通常用于 TLS 的服务器名称指示及名称验证,具体填写以已有配置为准;它与 WebSocket 的 Host 不是可以任意互换的字段。推荐保留证书验证,不将跳过验证当作常规修复。
系统时间会影响证书有效期判断,也可能影响部分协议的认证。iPhone 或 iPad 可在系统“设置 → 通用 → 日期与时间”检查自动设置与实际时间;若设备受到管理策略限制,先确认管理要求。校时后重新建立连接,不必同时更换协议或 DNS。
确认设备时间正确后,若仍出现证书过期或名称不匹配,应向自己的服务商核对证书与 Server Name。把域名地址改成 IP 并不能自动修复证书;连接到 IP 时,原配置要求的 Server Name 仍可能必须保留。
- 核对系统日期、时间和时区,确认不是手动设置造成明显偏差。
- 核对服务器编辑页中 TLS 与 Server Name 是否符合原始配置,不借用其他条目的值。
- 若使用 WebSocket,单独核对 Host 与路径;路径中的大小写和前导斜杠应与服务端一致。
- 重新连接并查看本次错误,判断是否从 TLS 错误变成认证错误或目标请求错误。
五、DNS 与 Global Routing 分层检查
DNS 用于把域名解析为地址,既可能影响代理服务器地址解析,也可能影响目标网站解析。默认 DNS 行为以当前 Config 和应用设置为准;建议先保留原配置,仅在日志显示解析错误时检查 DNS。随意叠加多个解析地址会增加变量,不能证明超时原因已经排除。
Global Routing 决定请求使用哪种路由姿态。Proxy 可用于临时验证当前所选代理路径,Direct 用于直接连接,Config 按当前配置规则处理,Scene 按已配置的场景处理;当前值以 Home 显示为准。短时切换 Proxy 后恢复访问,通常提示应检查 Config 中的策略或规则,但不能据此认定所有 DNS 与协议参数都正确。
- 服务器域名解析失败:先在直连状态验证基础网络,检查当前 DNS 配置与日志中的查询错误,再与服务商核对地址是否仍有效。
- 只有部分网站失败:确认 Home → Global Routing 的当前值,再检查 Config 中所用文件的匹配规则和策略指向。
- Config 失败、Proxy 正常:优先检查规则顺序。
DOMAIN-SUFFIX、IP-CIDR、GEOIP的命中结果不同,FINAL应放在规则末尾作为最终策略。 - 切换场景后才失败:检查 Scene 对应的场景条件与实际使用的策略,避免只核对 Home 中服务器名称。
排错完成后应恢复原来的 Global Routing,并用实际目标复测。临时 Proxy 只能作为对照条件,不能代替对 Config 中 DIRECT、PROXY、REJECT 策略的核对;请求被规则明确拒绝时,换服务器也不会改变拒绝结果。
六、根据日志错误缩小范围
日志用于定位失败发生的阶段。到 Settings → Log 查看相关记录;记录开关与详细程度以当前应用显示为准,推荐仅在复现期间启用所需记录。先记下时间,再发起一次请求,避免把旧记录当作当前结果。以下是网络底层可能返回的错误原文片段,并非固定弹窗文案,实际前后缀以日志为准。
报错: i/o timeout
原因与解法:连接或读写未在规定时间内完成,单凭该文本不能区分丢包、阻断与服务端无响应;先根据日志阶段核对地址、端口,再用同一配置切换网络复测。
报错: connection refused
原因与解法:连接被目标或中间设备明确拒绝,可能是端口未监听或拒绝策略;核对端口与协议,并让自己的服务商确认对应服务正在运行。
报错: no such host
原因与解法:域名解析未获得可用结果,可能是地址拼写或解析链路问题;先核对服务器地址,再检查当前 DNS 配置与网络下的解析情况。
报错: certificate has expired or is not yet valid
原因与解法:证书有效期与当前时间不匹配;先检查系统自动校时,时间正确后仍失败则由服务商核对证书,不通过关闭验证绕过。
错误从“解析失败”变为“认证失败”说明请求到达了不同阶段,不等于问题变严重。每轮都应记录修改项和新的错误阶段。如果连接仅在长时间空闲后失败,还应记录前后台切换、网络切换和重新连接后的表现,再检查 On Demand 等自动连接设置,而不是直接延长所有超时值。
七、复测结果与提交信息
有效复测是对相同目标、相同配置和明确网络条件的重复验证。推荐至少保留一次故障记录与一次对照记录,注明是否开启连接、Global Routing 的取值以及错误出现的阶段。不要凭单次延迟数字判断长期可用性,也不要将未经处理的完整配置直接发给他人。
延迟有数字,为什么还是打不开?
先确认 Home → Connectivity Test 的探测方式,再实际访问同一目标。若只通过了 TCP 探测,继续核对协议认证、TLS 与 Config 中的策略;数字不代表完整请求成功。
Wi-Fi 超时,蜂窝网络正常,要改密码吗?
先保持密码与协议参数不变,记录两种网络下的结果。检查 Wi-Fi 登录状态、DNS 与 UDP 可达性;尤其使用 Hysteria2 或 WireGuard 时,应让网络管理方核对 UDP 通信限制。
更新订阅后还是连不上,下一步做什么?
在 Home 确认已选中更新后的有效条目,再核对地址、端口和协议。若仅一个条目持续失败,将发生时间、网络类型和脱敏错误交给自己的服务商确认,不反复添加同一订阅。
提交排查信息时哪些内容要隐藏?
保留协议名称、网络类型、错误原文和复现步骤;隐藏密码、UUID、密钥、订阅完整地址及其中的 token。提交日志前同时检查服务器地址、访问域名等是否涉及个人信息。
- 本地已排除:直连正常、系统时间正确,且已完成一次 Wi-Fi 与蜂窝网络对照。
- 配置已核对:地址、端口、认证、TLS 与传输参数均按已有服务配置检查,没有混用其他条目的值。
- 证据可复现:提供具体时间、错误阶段、所用路由姿态与脱敏日志,不只描述“连不上”。
- 设置已恢复:排查后恢复 On Demand、Global Routing 与临时日志选项,再验证日常访问。