Shadowrocket 节点超时与连接失败:延迟测试、协议参数、系统时间逐项核对

节点显示超时或连不上时的排查顺序:先看延迟测试含义,再核对地址端口与加密参数,最后检查 iPhone 系统时间与 TLS 设置。

本文速览

本文适用于已经在 Shadowrocket(小火箭)中导入自己已有配置,却遇到延迟测试超时、连接开关已打开但请求失败的用户。按测试含义、本地网络、协议字段、系统时间与 TLS 的顺序核对,每次只改变一个条件;最后用相同请求复测,区分服务器不可达、参数不匹配与规则未命中。

一、先区分延迟测试与实际连接

“超时”只说明某一步没有在等待期限内完成,不直接等于密码错误或服务器停机。延迟测试使用的探测方式不同,覆盖的链路也不同:TCP 握手成功,只能说明当时可以建立到目标地址与端口的 TCP 连接;通过代理执行的 HTTP 请求,还会涉及协议协商、目标站访问与响应返回。两者不能相互替代。

先在 Home 记录选中的配置名称、测试方式和结果,再用浏览器访问一个自己平常能够访问的 HTTPS 页面。这里的访问是诊断动作,不需要提供任何账号信息。不要把一次测试结果当作长期状态,也不要只凭 VPN 标识判断代理链路已经可用:系统隧道建立与远端认证成功是不同环节。

本地网络 地址解析 传输连接 协议认证 目标响应
观察结果可以判断什么下一步
TCP 测试成功,网页失败端口可建立连接,不代表协议认证或 TLS 成功核对 Type、凭据与 TLS 字段
延迟测试超时,网页能打开测试方式、测试目标或探测路径可能有差异记录测试方式,重复同一实际请求
Wi-Fi 失败,蜂窝网络成功故障与接入网络相关,但尚不能定位具体设备检查 Wi-Fi 登录、DNS 与网络限制
只有一个网站失败不宜直接归因于整条连接不可用查看该请求的规则命中与目标响应

结论:保留一项实际访问验证

如果延迟数字与网页结果冲突,先保留当前配置,记录测试方式和实际请求结果,再按失败环节排查,不要立即批量替换协议或重置所有设置。

二、用六步固定测试条件

排查期间使用一个已有配置和同一个测试页面。切换网络、更新订阅、改变路由模式都可能影响结果;一次同时修改多个条件,会丢失因果关系。以下步骤用于建立可重复的基线,不是建议长期保持某一种路由姿态。

  1. 记录原设置

    在 Home 记下选中的配置与 Global Routing 当前姿态;到 Settings → On Demand 查看按需连接状态。若它在测试期间自动重连,先记录原条件,再暂时停用,结束后恢复。

  2. 验证本地网

    暂时关闭连接,确认当前 Wi-Fi 或蜂窝网络可以正常访问日常页面。公共 Wi-Fi 若有网页登录认证,先完成认证,再打开 Shadowrocket 的连接开关。

  3. 固定配置

    回到 Home 选择需要检查的配置,确认不是同名的另一条记录。暂时不要反复更新订阅,以免地址、端口或凭据在测试中途发生变化。

  4. 隔离规则

    在 Home → Global Routing 临时选择 Proxy,使用同一测试页面验证代理路径。Proxy 用于隔离规则影响,不保证任意页面都可访问;Direct 会直接连接,不能用于证明所选代理可用。

  5. 切换网络

    保持配置与页面不变,分别在 Wi-Fi、蜂窝网络重复测试。可各测试三次,记下成功或超时及发生时间;这是建议的记录方法,不是预设的测试结论。

  6. 恢复姿态

    测试结束后把 Global Routing 恢复为原来的 Config、Scene 或其他姿态,并恢复 On Demand 条件。若 Proxy 可用而 Config 不可用,再检查 Config 中的活动配置与规则。

如果切换到蜂窝网络后恢复,优先检查原 Wi-Fi,而不是马上修改密码。反过来,两个网络都在同一个阶段失败,也只说明需要继续查共享条件,例如地址、端口、认证参数或服务器状态,并不能单凭这一点断定是哪一项错误。

三、逐项核对地址、端口与协议字段

在 Home 打开该配置的编辑页面,与自己的服务商提供的原始资料逐项比对。Type 决定客户端使用的协议,不能只因地址相同就随意改选。地址字段通常填写主机名或 IP,不应把整段订阅 URL 当成服务器地址,也不要把网页路径填进主机名字段。

设置项或协议核对内容常见误判
地址与端口检查主机名拼写、端口数字及首尾空格;以原始配置为准443 只是常见端口示例,不代表任何服务都应改成 443
Shadowsocks加密方法、密码与服务端一致;有插件时同时核对插件配置只验证端口可达,忽略加密方法不匹配
VMess / VLESS核对 UUID、传输方式,以及配置使用的 TLS、Host、Path 等参数把 UUID 当成普通密码,或遗漏传输层字段
Trojan核对密码、TLS 与 SNI,确认与服务端证书和配置相符认为端口通畅就说明 TLS 和密码都正确
Hysteria2核对认证信息、TLS 及已有配置中的混淆参数,并确认网络允许所需 UDP 通信使用 TCP 探测结果判断基于 QUIC 的连接状态
WireGuard核对密钥、Endpoint、隧道地址和路由范围,检查 UDP 可达性把没有 TLS 证书的协议也按 SNI 问题处理

例如,原资料明确写明端口为 8443 时,就应检查编辑页是否仍为 8443,而不是因为它使用 TLS 就改成 443。类似地,TLS 的 SNI 用于握手中的服务器名称,传输层的 Host 用于对应传输的主机信息;即使两者在某份配置中相同,也不能推定所有配置都必须相同。

四、检查 iPhone 系统时间与 TLS 证书

TLS 校验不仅检查证书对应的名称,还会检查有效期。iPhone 的时间明显偏离实际时间,可能让尚未生效或已经过期的判断出现偏差。进入 iPhone 的“设置 → 通用 → 日期与时间”,检查“自动设置”以及当前显示时间;如果选项受管理策略限制,应先确认设备管理要求。

时间修正后,重新建立连接再测试。若仍出现证书错误,需要区分是设备时间问题、服务端证书过期,还是 SNI 与证书名称不符。设备时间正确,并不能修复服务端已经过期的证书;把连接地址改成 IP,也不会自动解决证书名称匹配问题。

不要用 Allow Insecure 掩盖证书问题

Allow Insecure(允许不安全)会削弱证书验证,不应作为常规修复办法。保留验证,核对 SNI 与原始资料,并让自己的服务商确认服务端证书。不要为消除一条报错随意开启它。

五、按日志报错定位失败阶段

同样是“网页打不开”,底层可能分别发生在名称解析、连接建立、TLS 握手或认证阶段。复现一次后,在应用可用的诊断日志中查找对应时间的记录,保留完整错误文本。下面列出的是常见底层错误片段;具体大小写、前缀及展示位置可能随协议实现而不同,不代表每次都会出现同一文案。

报错:i/o timeout

原因与解法:某次读写操作超过等待期限,单独这一句不能确定是哪一层失败;结合前后日志确认目标地址和阶段,再保持配置不变切换 Wi-Fi 与蜂窝网络复测。

报错:connection refused

原因与解法:目标或中间设备明确拒绝了连接,可能与端口未监听或访问策略有关;先核对端口及协议,仍一致则让自己的服务商确认该端口的服务状态。

报错:no such host

原因与解法:解析阶段未能取得可用主机地址,可能是拼写或 DNS 响应问题;核对服务器主机名,并在另一接入网络复测,不要直接改动认证参数。

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

原因与解法:证书有效期与当前时间不匹配;先检查 iPhone 自动时间,时间正确则向自己的服务商确认服务端证书,不以关闭验证作为长期处理方式。

记录时应写清“哪个请求、哪个网络、何时失败”,而不是只提交一张红色超时截图。日志如果只显示连接被关闭,也不能直接推断密码错误:服务端策略、传输参数不匹配或网络中断都可能提前关闭连接,需要结合前面的字段核对。

结论:围绕最早失败环节修改

若同一次请求最早失败在主机名解析,就先处理地址与 DNS;只有连接已经进入 TLS 或认证阶段,才继续核对相应字段,避免在尚未到达的环节反复改参数。

六、连接恢复后的规则与订阅复查

如果 Proxy 姿态下可以访问,而恢复 Config 后失败,应检查活动配置的规则和策略目标。DOMAIN-SUFFIX 按域名后缀匹配,IP-CIDR 按 IP 网段匹配,GEOIP 使用地理 IP 条件,FINAL 负责最终兜底;不能把这些条件当作完全相同的域名判断。规则顺序、实际请求域名及最终命中的策略都需要一起看。

例如,用户已有配置中的 FINAL,DIRECT 表示未匹配前面规则的连接直接出站;某个页面能打开,不足以证明它通过代理。反过来,站点主页面与资源域名可能不同,仅匹配主域名也不代表所有资源走相同路径。先看请求记录中的实际域名与命中规则,再决定是否修改 Config。

为什么延迟测试有数字,网页还是打不开?

先确认测试方式。TCP 可达不等于协议认证成功;在 Home 核对选中的记录与 Global Routing,临时用 Proxy 复测,再检查协议字段和 TLS 日志。测试结束恢复原姿态。

订阅更新超时,是所有配置都失效了吗?

不是。订阅更新访问的是订阅地址,与已保存配置的连接是两条不同请求。在 Home 核对订阅记录,确认自己的订阅仍有效,并检查 Settings → Subscribe → Update via Proxy 是否符合当前可用路径;不要在代理本身不可用时反复依赖它更新。

切到 Direct 后网页能打开,算修好了吗?

只能证明该页面可以直接访问,不能证明代理配置恢复。回到 Home → Global Routing,以 Proxy 验证所选配置,再恢复 Config 检查规则;如果原来使用 Scene,还需检查对应场景的实际路由设置。

为什么手动断开后又自动连上?

到 Settings → On Demand 检查按需连接条件。为了固定测试环境,可记录条件后暂时停用,完成排查再恢复;自动重新建立系统连接不代表远端认证已经成功。

七、整理可复现记录再提交问题

完成上述检查后,仍然失败就把结果整理成最小记录,向自己的服务商确认服务端状态。不要在公开反馈中粘贴完整订阅地址;订阅链接中的 token 通常具有访问权限,截图也应遮盖二维码和凭据。客户端购买信息与连接服务配置分开处理,购买应用不会补齐缺失的服务器参数。

当地址与端口、协议字段、设备时间均已核对,且不同网络仍在同一阶段稳定失败时,再让自己的服务商检查监听状态、认证资料和证书,通常比继续随机修改本地设置更有针对性。最后恢复原来的规则与 On Demand 条件,确认日常访问也按预期运行。

App Store 下载先核对正版三要素