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

按固定顺序排查连接失败:先看延迟测试结果,再逐项核对协议参数与 TLS 设置,最后检查系统时间与自动校时。

本文速览

Shadowrocket(小火箭)显示超时,不等于已经确定远端故障。本文面向已有自己的服务商与订阅信息的用户,依次区分网络可达性、协议认证、TLS 校验与系统时间问题,再检查路由和订阅更新。每轮只改变一个条件,保留测试方式、网络类型与错误原文,才能判断改动是否有效。

一、先固定测试条件,区分测试与实际连接

先在 Home 对当前条目执行 Connectivity Test,再尝试一次实际访问。延迟数值只反映本次测试采用的路径和方式,不能单独证明协议认证、TLS 握手及目标网站访问都正常。TCP 连接能建立,也可能在随后认证时失败;某种测试超时,也不能直接推断所有流量都无法传输。

排查期间不要同时刷新订阅、切换配置、修改 DNS 和更换网络,否则即使恢复,也无法确认原因。先保存正在使用的配置副本,记录当前条目的名称、协议类型及 Global Routing 姿态;密码、UUID、私钥和完整订阅链接不应出现在公开记录里。

  1. 固定网络

    留在同一个 Wi-Fi,先确认普通网络可用;若网络要求网页登录,先完成认证。暂时不切换蜂窝网络。

  2. 固定条目

    在 Home 选中自己的一个条目,记录 Type、地址和 Port。先不要更换条目,也不要批量修改参数。

  3. 记录测试

    在 Home 执行 Connectivity Test,记录测试方式、结果及时间。重复测试时保持同一种方式,不直接比较不同方式的数值。

  4. 核对触发

    进入 Settings → On Demand,记录现有条件;若自动连接干扰手动复现,可暂时关闭 On Demand,完成后恢复原设置。

  5. 复现一次

    回到 Home,开启连接并访问同一个目标。区分开关能否保持开启、是否立即报错,以及是否只有某一个网站失败。

二、根据延迟与错误原文判断故障层级

如果延迟测试持续超时,优先核对地址、端口和网络路径。如果测试有结果,但实际访问立即断开,再重点检查协议参数和 TLS。只有单个网站失败时,应先确认该请求命中的策略,不要直接重建所有条目。下面列的是常见网络错误原文;应用中的完整提示可能带有地址、端口或上下文前缀。

报错:Connection timed out

原因:当前操作在等待期限内没有完成,可能涉及网络路径、远端响应或握手,单凭这句话不能定位故障端。

解法:先核对地址和 Port,保持参数不变切换一次 Wi-Fi 与蜂窝网络,再比较相同测试的结果。

报错:Connection refused

原因:连接请求被主动拒绝,常见于目标端口未监听或网络设备拒绝连接,并非密码错误的直接证据。

解法:将 Port 与自己的服务商提供的信息逐项对照;一致时,请其确认该地址与端口是否仍在使用。

报错:certificate has expired

原因:证书有效期校验未通过,可能是远端证书过期,也可能是设备日期明显偏离实际时间。

解法:先核对系统自动校时;时间正确仍报错时,交由自己的服务商检查证书,不以关闭证书校验代替修复。

切换网络后恢复,只能说明故障与网络路径有关,不能直接归因于某个运营方。两种网络都失败,也不能排除参数错误。可将“一种网络失败”“两种网络均失败”“仅特定目标失败”作为记录分类,再进入下一步。

  • 所有条目同时失败:先看设备基础联网、网络认证、当前路由姿态和时间。
  • 只有一个条目失败:优先核对该条目的地址、端口、凭据及远端状态。
  • 只有某类应用失败:检查实际请求使用的 TCP 或 UDP,以及是否命中预期策略。

三、逐项核对 Type、Port 与协议专用参数

在 Home 打开当前条目的编辑页,以自己的原始接入信息为准核对。Type 必须与远端一致,不能为了排错随意把 VMess 改为 VLESS。地址栏只填写对应字段要求的地址,不把整段分享文本、网页路径或额外空格混入其中。

Port 是远端实际监听的端口,不是可凭经验统一替换的值。比如原始配置写的是 8443,就不能因为启用了 TLS 而擅自改成 443。下列数字用于说明协议与端口的关系,不代表本文提供任何可连接的服务。

1–65535
远端服务端口取值范围,实际值以已有配置为准
443
常见 HTTPS 端口,但不代表该端口一定提供所选协议
UDP
Hysteria2 与 WireGuard 的传输依赖,不能只凭 TCP 测试判断
Type重点核对常见误判
Shadowsocks地址、Port、加密方法与密码;有插件时同时核对插件参数。只改密码,忽略加密方法与远端不一致。
VMess / VLESSUUID、传输方式,以及原始配置要求的 TLS、Host、Path 等字段。认为 UUID 正确就足够,漏掉传输层配置。
Trojan密码、TLS 与 Server Name,以及原始配置指定的传输方式。将密码填入其他认证字段,或遗漏证书对应域名。
Hysteria2认证信息、TLS、Server Name 与 UDP 路径。TCP 测试成功后,认为 UDP 路径也一定可用。
WireGuard本地私钥、对端公钥、Endpoint、地址与路由相关参数。把密钥角色填反,或仅检查 Endpoint 而忽略路由。

并非每种协议都使用表中的全部字段。只核对当前 Type 实际出现、且原始信息明确要求的项目。若条目来自自己的订阅,更新前先记录本地改动;更新后再次查看编辑页,确认修正没有被订阅中的旧值覆盖。

四、核对 TLS、Server Name 与系统时间

TLS 出错时,先检查条目编辑页中的 TLS 设置和 Server Name(SNI)。连接地址可以是 IP,但证书可能签发给一个域名;此时需要按原始配置填写 Server Name,而不是机械地复制地址栏。证书校验使用的名称与网络请求中的 Host 也不是可以任意互换的字段。

若使用 WebSocket,Path 与 Host 必须符合远端要求。Path 的大小写、前导斜线及附带参数都可能影响请求;不要自行补成一个看起来常见的路径。远端没有要求的字段也不要凭猜测添加。

  1. 在条目编辑页逐项对照 TLS、Server Name、传输方式、Host 和 Path,修改后保存,再对同一目标复测。
  2. 在 iPhone 或 iPad 打开系统“设置 → 通用 → 日期与时间”,检查“自动设置”,并确认当前日期、时间和时区合理。
  3. 如果“自动设置”不可调整,检查设备管理限制或系统设置条件,不用手动改到证书有效期内的旧日期绕过错误。
  4. 校时后重新建立连接。设备时间正确而证书仍过期或名称不符时,保留错误原文,向自己的服务商核对证书配置。

五、区分路由问题、DNS 问题与订阅更新失败

参数和 TLS 核对完成后,再检查 Home → Global Routing。Proxy、Direct、Config、Scene 不是四种延迟测试方式,而是不同的流量处理姿态。排错时可短暂使用 Proxy 验证所选代理路径;完成测试后恢复原姿态,不把临时切换当作永久修复。

  • Proxy:用于验证代理路径时,确认实际选中的条目或策略组成员,避免测试对象与预期不同。
  • Direct:主要验证直接连接路径;在此姿态下访问成功,不能证明代理条目正确。
  • Config:到 Config 核对正在使用的配置,检查请求是否被较早的规则匹配。
  • Scene:检查所选 Scene 的具体设置,不假定它与 Proxy 或 Config 的结果相同。

在 Config 下,DOMAIN-SUFFIX、IP-CIDR、GEOIP 等规则的命中条件不同,FINAL 则用于前面的规则均未匹配时兜底。规则按顺序检查:某个域名已经被前面的 DIRECT 或 REJECT 规则处理,修改后面的 FINAL 并不能改变该次命中。先看实际请求记录,再改规则,不应因单个网站打不开就删除整份配置。

DNS 也要单独看待。用域名连接失败、改成 IP 后出现不同结果,只能作为解析路径的线索,不能直接把 IP 当作永久替代;TLS 仍可能需要原来的 Server Name。不要同时更改 DNS、SNI 和地址,否则无法区分是哪一项造成差异。

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

先记录 Connectivity Test 的方式,再用同一目标实际访问。检查 Global Routing 和命中策略;测试成功可能只证明某一阶段可达,并没有覆盖认证、TLS 与目标响应全过程。

已有条目能用,为什么订阅更新超时?

订阅更新访问的是订阅地址,不是已有条目的服务端口。在 Home 刷新自己的订阅,核对链接是否仍有效;若已有代理连接可用且订阅地址需要该路径,可在 Settings → Subscribe 检查 Update via Proxy,再重试一次。

Wi-Fi 超时,蜂窝网络正常,要重填密码吗?

先不改密码。固定同一条目和测试方式,检查 Wi-Fi 网页认证、网络限制及 UDP 可达性;仅某个网络失败时,优先保留参数,继续定位网络路径差异。

每次手动关闭后又连上,怎么稳定复测?

到 Settings → On Demand 检查自动连接条件。记录后暂时关闭 On Demand,回到 Home 手动复测;排查结束再恢复需要的条件,避免自动触发改变测试状态。

六、仍然失败时,提交最小排错记录

完成前述检查仍失败时,向自己的服务商提供能够复现的最小记录,比只描述“连不上”更便于定位。区分错误来自订阅更新、Connectivity Test 还是实际访问,并说明最后一次只修改了什么。日志仅截取对应时间附近的必要部分,不直接公开整份配置。

  • 环境:设备类型、系统中显示的版本、Wi-Fi 或蜂窝网络,以及自动校时是否正常。
  • 对象:协议 Type、脱敏后的条目标识、使用的 Port;不附密码、UUID、私钥或订阅令牌。
  • 现象:错误原文、发生时间、测试方式,以及切换网络前后的差异。
  • 路由:Global Routing 姿态、当前配置或 Scene,以及已确认的命中策略。
  • 已做操作:参数核对结果、TLS 与 Server Name 是否一致、校时后是否重连。

恢复后,再启用原来的 On Demand 条件,恢复日常使用的 Global Routing,并对同一目标复测。保留有效修改,撤回只为诊断添加的临时设置;不要留下跳过证书校验或未经确认的地址替换。

App Store 正版核对