Shadowrocket(小火箭)显示超时,不等于已经确定远端故障。本文面向已有自己的服务商与订阅信息的用户,依次区分网络可达性、协议认证、TLS 校验与系统时间问题,再检查路由和订阅更新。每轮只改变一个条件,保留测试方式、网络类型与错误原文,才能判断改动是否有效。
一、先固定测试条件,区分测试与实际连接
先在 Home 对当前条目执行 Connectivity Test,再尝试一次实际访问。延迟数值只反映本次测试采用的路径和方式,不能单独证明协议认证、TLS 握手及目标网站访问都正常。TCP 连接能建立,也可能在随后认证时失败;某种测试超时,也不能直接推断所有流量都无法传输。
排查期间不要同时刷新订阅、切换配置、修改 DNS 和更换网络,否则即使恢复,也无法确认原因。先保存正在使用的配置副本,记录当前条目的名称、协议类型及 Global Routing 姿态;密码、UUID、私钥和完整订阅链接不应出现在公开记录里。
-
固定网络
留在同一个 Wi-Fi,先确认普通网络可用;若网络要求网页登录,先完成认证。暂时不切换蜂窝网络。
-
固定条目
在 Home 选中自己的一个条目,记录 Type、地址和 Port。先不要更换条目,也不要批量修改参数。
-
记录测试
在 Home 执行 Connectivity Test,记录测试方式、结果及时间。重复测试时保持同一种方式,不直接比较不同方式的数值。
-
核对触发
进入 Settings → On Demand,记录现有条件;若自动连接干扰手动复现,可暂时关闭 On Demand,完成后恢复原设置。
-
复现一次
回到 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。下列数字用于说明协议与端口的关系,不代表本文提供任何可连接的服务。
| Type | 重点核对 | 常见误判 |
|---|---|---|
| Shadowsocks | 地址、Port、加密方法与密码;有插件时同时核对插件参数。 | 只改密码,忽略加密方法与远端不一致。 |
| VMess / VLESS | UUID、传输方式,以及原始配置要求的 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 的大小写、前导斜线及附带参数都可能影响请求;不要自行补成一个看起来常见的路径。远端没有要求的字段也不要凭猜测添加。
- 在条目编辑页逐项对照 TLS、Server Name、传输方式、Host 和 Path,修改后保存,再对同一目标复测。
- 在 iPhone 或 iPad 打开系统“设置 → 通用 → 日期与时间”,检查“自动设置”,并确认当前日期、时间和时区合理。
- 如果“自动设置”不可调整,检查设备管理限制或系统设置条件,不用手动改到证书有效期内的旧日期绕过错误。
- 校时后重新建立连接。设备时间正确而证书仍过期或名称不符时,保留错误原文,向自己的服务商核对证书配置。
五、区分路由问题、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,并对同一目标复测。保留有效修改,撤回只为诊断添加的临时设置;不要留下跳过证书校验或未经确认的地址替换。