Shadowrocket 节点超时、连接失败排查顺序:延迟测试、协议参数、系统时间

节点超时或连接失败时,按固定顺序排查:先做延迟测试,再核对协议参数,最后检查系统时间,逐项定位原因。

本文速览

本文适用于已经拥有自己的服务商与订阅、但在 Shadowrocket(小火箭)中遇到超时或连接失败的用户。先区分本地联网、测试结果与实际代理请求,再逐项核对地址、端口、认证、TLS 和系统时间;最后用规则与网络对照缩小故障范围,形成可以复查的记录。

一、先区分测试超时与实际连接失败

延迟测试返回数字,只能说明这次测试所覆盖的链路得到响应;不能据此判定所有网站、认证过程与传输方式都可用。反过来,一次测试超时也不足以证明服务器停止服务。测试方法、目标地址、网络状态与服务端限制都可能影响结果。

Shadowrocket 的连接开关开启,表示系统 VPN 隧道已建立或正在建立,不等于远端服务器已经完成认证。排查时应分别记录“开关能否保持开启”“测试是否响应”“实际请求是否成功”,不要把这三项合并为一个“连不上”。

应用请求系统隧道规则匹配远端连接目标响应

二、固定测试条件,再比较延迟结果

首次排查先不改配置。选定同一条用户已有的服务器记录,保持同一种测试方法,在相近时间完成少量重复测试。只比较数字、不记录测试方法,容易把不同含义的结果放在一起判断。

  1. 确认本地联网

    关闭 Home 的连接开关,在 Safari 打开一个已知可直接访问的网页。公共 Wi-Fi 如有登录页面,先完成登录,再回到 Shadowrocket。

  2. 选定同一记录

    回到 Home,选中待检查的服务器。记下当前 Wi-Fi 或蜂窝数据环境,并确认测试的不是名称相近的另一条记录。

  3. 重复延迟测试

    在 Home 执行 Connectivity Test,核对当前测试方法;同一条件下测试三次,分别记下响应或超时。不要用连续高速点击代替有间隔的复测。

  4. 验证实际请求

    开启连接后,使用同一目标页面验证实际访问。分别记录测试结果与页面结果;两者不一致时,保留差异,不急于删除配置。

  5. 切换网络复测

    在设备和套餐允许的情况下,切换 Wi-Fi 与蜂窝数据,重复前面的测试。除网络外不修改任何字段,避免失去对照条件。

结论:先判断故障是否随网络变化

同一记录只在一个网络下失败时,先检查该网络的 DNS、登录状态与传输限制;两个网络都失败时,再集中核对服务器参数与服务状态。两种现象都不能单凭延迟值确定根因。

三、协议参数按地址、端口、认证、传输核对

在 Home 打开对应记录的编辑页面,对照自己的服务商提供的原始信息,先确认 Type,再检查其余字段。不同协议需要的参数不相同,不能只把服务器地址和密码搬到另一种 Type 下。编辑前保留可恢复的副本,尤其不要覆盖仍可使用的记录。

核对对象具体检查常见误判
地址与端口服务器地址是否完整,端口是否与原始信息相同;端口取值应在 1–65535 范围内。把 443 当作通用答案。端口为 443 不代表所有协议都能使用,也不代表一定使用 TLS。
Shadowsocks核对加密方法与密码;服务端使用插件时,还需核对插件及相关参数。地址与端口正确,就忽略加密方法不一致。
VMess / VLESS核对 UUID、传输方式及该记录实际启用的安全选项。VLESS 如涉及 flow,也需与服务端一致。认为两种协议都使用 UUID,因此可以互换 Type。
Trojan核对密码、TLS 设置、Server Name 与所配置的传输方式。只更新密码,遗漏服务端变更的域名或传输参数。
Hysteria2核对认证、TLS、端口与可能启用的混淆参数,并确认当前网络允许相应 UDP 通信。用一次 TCP 端口测试,推断其 UDP 链路正常。
WireGuard核对密钥对应关系、Endpoint、隧道地址与 AllowedIPs 等配置。把密钥、路由与握手问题统一当作密码错误。
WS / gRPC仅在该记录使用相应传输时,核对 WS 的 Path、Host 或 gRPC 的 Service Name。将 Path、Host、Server Name 当作同一个字段。

Server Name 通常影响 TLS 握手中的名称与证书验证;WS 的 Host 属于 HTTP 请求信息,Path 则是请求路径。三者即使使用相似文本,也不能自行合并。路径的大小写、开头斜杠和 UUID 中多出的空格,都应按原始资料逐字核对。

四、检查系统时间与 TLS,不跳过证书验证

证书存在有效时间范围,设备日期明显错误时,即使网络与密码正确,也可能在 TLS 阶段失败。部分协议的认证同样依赖时间。时间检查应放在参数核对之后执行,但不需要等到所有尝试都失败才查看。

不应把关闭证书验证作为常规修复。它会改变安全边界,也可能掩盖连接到错误服务器、域名配置错误等问题。设备时间正确与证书正确是两项独立条件,应分别确认。

五、按日志原文定位失败阶段

失败后查看连接日志,记录错误发生时刻、目标地址和相关行。下面是网络或 TLS 日志中可能出现的原文片段;实际显示可能带有前后文,并非每个协议都会使用完全相同的提示。错误只能帮助定位阶段,不能单独证明具体责任方。

报错:i/o timeout

原因:某个读写阶段在等待期限内未完成,可能涉及网络丢包、远端无响应或中间链路限制。

解法:结合前后日志确认正在连接的地址,用同一配置切换网络复测,再核对端口与远端服务状态。

报错:connection refused

原因:连接请求遭到主动拒绝,常见于目标端口未监听,也可能由中间设备返回拒绝。

解法:优先核对服务器地址和端口,将发生时间及错误交给自己的服务商确认监听状态,不要随机试端口。

报错:x509: certificate has expired or is not yet valid

原因:证书有效期与当前时间不符,可能是设备时间错误,也可能是远端证书本身异常。

解法:先检查系统 Date & Time,再确认远端证书有效期;保持证书验证开启。

报错:EOF

原因:数据流提前结束,可能发生在协议不匹配、认证失败或远端主动关闭等不同阶段。

解法:结合此前的握手信息核对 Type、认证与传输参数,不能只凭这一行认定密码错误。

六、连接建立后,再检查分流与 On Demand

若测试有响应但网页仍打不开,应检查请求是否实际经过所选服务器。Home → Global Routing 中,Proxy、Direct、Config、Scene 对应不同的路由姿态;它们不是连接质量等级。Direct 不会用一次直连成功替你验证代理服务器,Config 则需要结合当前启用的配置判断。

On Demand 负责按条件触发连接,不会修复错误密码、失效证书或未监听端口。若手动断开后又自动连接,应先核对它的触发条件,而不是反复删除系统 VPN 配置。系统 VPN 授权问题与远端服务器超时属于不同环节。

七、常见追问与提交排查记录

延迟很低,为什么还是打不开网页?

先确认当前测试方法覆盖了哪个阶段,再到 Home 核对所选记录和 Global Routing。用 Proxy 做一次短时对照,同时查看失败请求的日志;如果只有特定域名失败,再检查 DNS、规则与目标站点状态,而不是只按延迟重新排序。

Wi-Fi 超时,蜂窝数据却正常,要改协议吗?

先保持配置不变,确认 Wi-Fi 已完成登录,并复测同一目标。若差异持续存在,记录协议使用的传输方式,再向网络管理方或自己的服务商确认限制。尤其是 UDP 相关问题,不能仅凭 TCP 可访问就排除网络因素。

更新订阅后全部超时,是更新没成功吗?

先区分更新失败与更新后连接失败。在 Home 确认新记录是否出现、所选记录是否正确,再对照服务商信息核对 Type、地址与端口。订阅可以正常获取,不代表其中每个远端服务都可用;也不要连续更新来代替协议参数检查。

需要把整份配置和订阅链接发给别人吗?

不需要。先整理错误原文、发生时间与时区、当前网络、协议类型、测试方法和对照结果。密码、UUID、私钥与订阅 token 应遮盖;需要服务端确认的内容,通过自己的服务商提供的私密支持渠道提交。

结论:每次只改变一个条件

每次复测只变更网络、参数、时间或路由中的一项,并记录结果。向自己的服务商提交“哪一步失败、在哪种网络复现、对应什么错误”,比只描述“节点不能用”更便于定位。

完成排查后,恢复临时修改的 Global Routing 与 On Demand 设置,并保留一份确认可用的配置。Shadowrocket 是 Apple 平台的闭源商业客户端,客户端买断 ≠ 线路套餐;获取应用与排查远端服务是两件事,重新购买应用不能替代远端参数修复。

App Store 正版核对