Shadowrocket(小火箭)出现节点超时,先确认测试方式与当前网络,再核对已有连接资料,最后检查系统时间与证书有效期。本文适合已经拥有自己的服务商与连接资料、但无法正常连接的用户;按顺序操作,可以把故障缩小到网络可达性、协议配置或 TLS 校验环节,避免同时改动多个设置。
排查准备:区分测试超时与实际请求失败
延迟测试超时,只表示这次测试没有在规定时间内得到预期响应,不能单凭这一项判定服务器停止服务。不同测试方式检查的环节不同:TCP 测试主要观察端口连接,应用层连通性测试还可能涉及协议握手、TLS 与测试目标。先记录正在使用的测试方式,再比较结果。
同样,系统显示 VPN 已连接,说明隧道已建立,不代表远端认证、域名解析和目标网站请求都已成功。排查应沿着请求经过的环节逐步缩小范围,而不是看到开关开启就跳过连接资料核对。
- 测试失败,网页也失败:先查网络、地址和端口,随后核对协议参数。
- 测试失败,网页能打开:优先检查测试方式与测试目标,不要立即重建节点。
- 测试成功,网页失败:继续查认证、TLS、DNS、规则和目标站点;端口可达不等于完整代理请求可用。
第一步:固定节点与测试方式,比较两种网络
从 Home 确认当前选中的节点。先不要更新全部连接资料,也不要切换协议;用同一节点、同一测试方式,在当前网络重复测试并记录结果。偶发失败与持续失败的处理方向不同,重复测试的作用是确认现象能否复现,而不是把某一次延迟值当作线路质量结论。
-
确认测试对象
打开 Home,记录当前节点名称、服务器地址、端口和测试方式。检查选中的是否为预期节点,避免把另一个节点的测试结果与当前网页访问混在一起。
-
隔离规则影响
进入 Home → Global Routing → Proxy,使用当前选中的节点测试普通网页。此步骤只用于暂时排除 Config 中的分流影响;测试结束后恢复原来的 Global Routing 选择。
-
更换接入网络
在设备支持且已获允许的情况下,将 Wi-Fi 换为蜂窝网络,或换到另一个可信 Wi-Fi。等待网络稳定后,保持节点和参数不变,再执行同一种测试。
-
检查自动连接
若手动断开后又自动连接,进入 Settings → On Demand,记录并检查已有规则。需要暂停时先关闭 On Demand,再进行手动连接测试;完成后恢复原设置。
结论:先保留能区分网络的证据
同一节点在一种网络持续失败、另一种网络正常时,先检查失败网络的登录认证、出口限制和到服务器的路径;不要先改密码或证书设置。两种网络都失败,也只能缩小范围,仍需继续核对参数和服务端状态。
对于 Hysteria2、WireGuard 等依赖 UDP 的连接,不要用 TCP 测试结果代替协议是否可用的判断。网络允许 TCP 通信,并不意味着同一地址的 UDP 通信也能通过。比较时应保留协议不变,以实际连接和请求结果为依据。
第二步:按协议核对地址、端口与认证参数
进入 Home → 对应节点的编辑页面,以自己的服务商提供的原始资料为准逐项核对。不要根据节点名称猜测协议,也不要把另一条连接的参数复制过来。端口必须与服务端监听端口一致:资料写的是 8443,就不能因为启用了 TLS 而自行改为 443;这两个数字仅用于说明核对方法,并非通用配置。
先检查服务器地址中是否误带空格、协议前缀或路径,再检查端口和认证字段。服务器地址、TLS 的 Server Name 与 WebSocket 的 Host 可能具有不同用途,只有服务商资料明确要求相同时,才应填写相同内容。
| 协议 | 优先核对 | 容易漏查的区别 |
|---|---|---|
| Shadowsocks | 服务器地址、端口、Password、Method | Method 与 Password 都必须匹配;不能只确认端口可达。 |
| VMess / VLESS | 服务器地址、端口、UUID、传输方式及对应参数 | 使用 WebSocket 时核对 Path 与 Host;TLS 和其他安全参数按原始资料填写。 |
| Trojan | 服务器地址、端口、Password、TLS Server Name | 地址能连接不代表证书域名匹配,Server Name 不应随意替换。 |
| Hysteria2 | 服务器地址、端口、认证信息及 TLS 参数 | 依赖 UDP;使用混淆时,还需匹配相应类型和密码。 |
| WireGuard | Endpoint、密钥、接口地址及路由范围 | 通过 UDP 通信;对端密钥错误也会导致无法正常握手。 |
使用订阅时,先区分更新失败与节点失败
订阅更新是获取连接资料,节点连接是使用这些资料访问远端,两者不是同一过程。在 Home 找到自己的订阅分组并执行更新后,应核对该节点的地址、端口或认证信息是否发生变化。更新成功不代表其中每个节点都可用;更新失败,也不代表已经保存的连接资料一定失效。
- 若服务商确认已轮换参数,先更新自己的订阅,再重新选中需要测试的节点。
- 若更新本身失败,先确认当前网络能够访问订阅地址,并向自己的服务商核对链接有效性。
- 保留原有记录后再修改,每次只改一类字段,保存并复测,避免丢失可比较的基线。
- 不要将完整订阅链接、Password、UUID 或私钥放入公开截图;反馈时只保留必要的错误和网络信息。
第三步:校准系统时间,检查 TLS 错误
TLS 证书包含有效期,设备时间明显错误时,原本有效的证书也可能被判断为尚未生效或已经过期。在 iPhone 或 iPad 打开系统“设置”→“通用”→“日期与时间”,检查“自动设置”是否开启,并确认显示的日期与时间正确。若选项受设备管理限制,应由设备管理方处理。
校准后重新连接并复测。若时间正确但证书错误仍然存在,应继续检查 Server Name 与证书域名是否对应,或请自己的服务商核对服务端证书及证书链。不要用关闭证书校验来代替这些检查;时间校准也不能修复服务端已经过期的证书。
报错:i/o timeout
原因:某个网络读写环节在时限内没有完成,单凭此行无法确定失败发生在哪一层。
解法:结合前后的目标地址和握手信息,先做同一节点的跨网络复测,再核对地址、端口及协议参数。
报错:connection refused
原因:连接请求被目标端或路径中的设备明确拒绝,可能是端口没有对应服务监听或存在拒绝策略。
解法:核对服务商提供的端口,请服务商确认监听状态与访问策略,不要只重复增加等待时间。
报错:x509: certificate has expired or is not yet valid
原因:证书有效期校验失败,可能来自设备时间异常,也可能是服务端证书本身的问题。
解法:先校准系统日期与时间;仍失败时,将脱敏后的证书错误交给自己的服务商核查。
以上为可能出现在日志中的错误片段,不是固定弹窗文案;不同协议与连接阶段的完整内容可能不同。保留完整错误上下文比只记录“超时”两个字更有助于定位,但分享前仍应移除认证信息。
连接恢复后:核对 Config 与实际分流
如果临时使用 Proxy 可以访问,而恢复 Config 后只有部分网站失败,排查重点应转向生效配置,而不是重新修改已经验证可用的节点。进入 Config,核对当前选中的配置文件,再回到 Home → Global Routing → Config 复测。
规则按顺序匹配。DOMAIN-SUFFIX 匹配指定域名及其子域名,IP-CIDR 匹配 IP 网段,GEOIP 根据 IP 地理归属匹配,FINAL 接收此前没有命中的请求。下面只演示语法与顺序,不是需要整体替换的故障修复配置:
[Rule]
DOMAIN-SUFFIX,example.com,PROXY
IP-CIDR,192.168.0.0/16,DIRECT
GEOIP,CN,DIRECT
FINAL,DIRECT
example.com是示例域名,应检查自己的真实目标域名命中了哪条规则,而不是直接照抄示例。- 若目标命中
DIRECT,这次请求不能用来证明代理节点可用或不可用。 - 若只有一个站点异常,检查该站点涉及的其他域名、DNS 结果与目标端响应,不要直接归因于整个节点失效。
- 如果原先使用 Scene,应核对实际触发的场景及其配置,测试完恢复原姿态,避免遗留临时 Proxy 设置。
结论:把“节点失败”与“请求走错路径”分开
Proxy 下请求正常、Config 下相同请求失败时,先记录命中的规则和实际出站,再调整对应配置。只有确认请求确实经过待测节点,测试结果才能用于判断该节点的连接状态。
仍然失败:整理可复现的反馈记录
完成三步仍不能恢复时,应向自己的服务商提供可核对的现象,而不是只发送节点名称。测试结果能帮助区分问题范围,但无法在缺少服务端信息时证明故障一定属于客户端或服务器。下面这些记录已经足以支持下一轮检查,不需要提供完整认证资料。
- 测试时间与网络:注明本地时间、时区,以及 Wi-Fi 或蜂窝网络;说明另一网络能否复现。
- 协议与测试方式:写明 Shadowsocks、Trojan 等实际协议,以及使用的是端口测试还是完整请求测试。
- 客户端状态:记录 Global Routing 选择、当前节点、系统时间是否已校准,以及是否已核对 On Demand。
- 失败阶段:说明是无法建立连接、认证失败、TLS 校验失败,还是连接后仅特定网站失败。
- 脱敏证据:提供必要的错误上下文;删除订阅令牌、密码、UUID、私钥和包含这些内容的二维码。
不要把重新购买客户端作为处理节点超时的步骤。客户端买断 ≠ 线路套餐:Shadowrocket 是闭源商业应用,App Store 购买与用户已有服务商的连接服务是两件事。Shadowrocket 仅在 Apple 平台发行,以 iPhone、iPad 为主要使用设备;系统要求以 App Store 页面标注为准。