本文适用于已经拥有自己的服务商、服务器信息或订阅的用户。先区分测试超时与实际请求失败,再按网络、协议参数、系统时间、分流配置逐层检查。每次只改一项,并保留原值,避免把可恢复的问题变成配置混乱。Shadowrocket(小火箭)的连接开关状态、测试结果与网页能否访问,需要分别验证。
一、先做延迟测试,区分失败发生在哪一层
timeout 表示某次操作没有在等待期限内完成,并不直接说明密码错误、服务器停用或客户端异常。Home 中的 Connectivity Test 是诊断入口;测试方法不同,验证的环节也不同。记录当前测试方法,再对比同一个条目,不要把不同测试方法的数值混在一起比较。
端口层面的连接成功,不等于代理认证通过,也不等于目标网页能够返回内容。反过来,某种测试失败,也不足以证明所有实际请求都失败。先在关闭连接开关的情况下确认当前 Wi-Fi 或蜂窝网络可以正常访问,再选中已有条目进行测试,最后开启连接并访问自己平时可用的目标页面。
-
记录现状
在 Home 记录选中的条目、Global Routing 当前选项、Connectivity Test 测试方法以及失败文字。记录测试时间,方便与服务端日志对照。
-
确认联网
关闭 Home 连接开关,检查本地网络是否需要先完成登录认证。基础联网未恢复前,不修改服务器协议参数。
-
重复测试
保持同一条目和测试方法,连续测试三次。分别记下成功、timeout 或其他错误,观察是持续失败还是间歇失败。
-
切换网络
在条件允许时分别使用 Wi-Fi 与蜂窝网络重测。只切换网络,不同时更换条目、协议或 Global Routing。
-
验证请求
开启 Home 连接开关后访问同一个目标页面。把“测试失败但页面可用”与“测试、页面都失败”分开记录,再进入参数检查。
二、核对服务器地址、端口与协议参数
从 Home 打开对应条目的编辑页,先确认 Type 与自己已有的原始配置一致,再检查地址、端口和认证字段。不要因为连接失败就把 VLESS 改成 VMess,或把 Hysteria2 改成 Trojan;客户端与服务端必须使用相匹配的协议。
| 检查对象 | 逐项核对 | 容易误判的地方 |
|---|---|---|
| 地址与端口 | 域名拼写、IP 地址、端口数字 | 端口 443 仅是示例,并不自动代表协议、TLS 或认证配置正确。 |
| Shadowsocks | 服务端指定的加密方法与密码 | 只核对密码不够;加密方法也必须匹配。 |
| VMess / VLESS | UUID、传输方式,以及配置要求的 TLS、Host、Path 等字段 | UUID 正确不能抵消传输路径或握手参数错误。 |
| Trojan | 密码、TLS 设置与服务器名称 | 连接地址与证书所验证的名称不一定相同,应以原始配置为准。 |
| Hysteria2 | 认证信息、TLS 参数及 UDP 路径是否可达 | TCP 端口探测不能替代基于 UDP 的协议验证。 |
| WireGuard | 密钥、Endpoint、端口及地址和路由参数 | 不要用 TCP 握手结果判断 WireGuard 的 UDP 通道状态。 |
复制字段时留意首尾空格、漏掉的字符以及全角标点。若原始配置指定端口 8443,不能自行改成 443 试图“修复”。如果服务端没有在新端口提供同样的服务,这种修改只会引入另一处不匹配。TLS 相关失败也不应通过关闭证书验证来掩盖,应继续核对名称、时间与证书配置。
结论:按失败层次选下一步
只有某个条目持续失败时,优先核对该条目的原始参数;同一批条目只在一种网络失败时,先检查该网络的访问条件。不要在两种现象下都直接重写规则。
三、根据错误文字决定检查方向
测试列表可能只显示简短状态,详细错误也可能来自连接记录或自己的服务端日志。下面是网络诊断中常见的原文片段,并不保证每次都会在 Shadowrocket 的同一位置显示。排查时保留实际看到的完整文字,不要把所有失败统称为“节点超时”。
报错:timeout
原因与解法:本次等待超过期限,单凭这一项无法确定失败层次。先重测同一条目,再对比另一种本地网络,随后核对地址、端口与协议要求。
报错:connection refused
原因与解法:通常表示目标端口被主动拒绝,可能是服务未监听或访问被拒绝。核对端口是否与原始配置一致,再向自己的服务商或服务器管理员确认服务状态。
报错:no such host
原因与解法:目标名称未能解析。先检查服务器域名拼写与本地联网状态;若是自己管理的域名,再确认相应解析记录是否存在。
报错:TLS handshake timeout
原因与解法:TLS 握手未在期限内完成。核对 TLS 是否符合服务端要求、服务器名称是否正确,并对比网络路径;不要直接把问题归因于密码。
向自己的服务商反馈时,提供时间与时区、网络类型、协议、测试方法、错误原文,以及故障是持续还是偶发即可。密码、UUID、私钥和完整订阅地址属于敏感信息,不应放入公开截图或公开记录。
四、检查系统日期、时区与自动连接
系统时间偏差可能影响证书有效期判断和部分协议的认证过程,但不是所有 timeout 的共同原因。在 iPhone 或 iPad 的系统 Settings → General → Date & Time 中检查 Set Automatically;如果设备受管理,相关选项可能受限制,应按设备管理要求处理。
- 先核对实际日期与时间:确认年份、日期、小时和分钟没有明显偏差。只看状态栏上的小时数不足以完成检查。
- 再核对时区:时区影响本地显示与日志对照;仅显示时区不同,不等于设备的绝对时间错误。反馈日志时一并注明时区。
- 恢复后重新连接:时间修正完成后,关闭再开启 Home 连接开关,然后用相同方法重测,避免拿修正前的结果继续判断。
- 控制自动连接变量:若手动断开后又出现连接尝试,在 Shadowrocket 的 Settings → On Demand 检查现有设置,记录原状态,必要时暂时停用以完成手动测试。
五、最后检查 Global Routing 与规则命中
当连接测试成功而页面仍打不开时,再检查 Home → Global Routing。这里的 Proxy、Direct、Config、Scene 是不同的路由姿态,不是不同协议。Proxy 按全局代理方式处理可代理流量,Direct 按直连方式处理;Config 使用所选配置的分流规则,Scene 则需要核对当前场景及其关联设置,不能直接当成 Config 的另一个名称。
为隔离分流影响,可先记录原选项,短暂切到 Proxy,用同一条已选服务器访问同一目标;完成后恢复原姿态。若 Proxy 可用而 Config 不可用,优先检查 Config 中当前使用的配置、规则顺序与策略指向。这只能缩小排查范围,不代表所有 DNS 或目标站点问题都已排除。
[Rule]
DOMAIN-SUFFIX,example.com,PROXY
IP-CIDR,192.0.2.0/24,DIRECT,no-resolve
GEOIP,CN,DIRECT
FINAL,PROXY
上面仅用于说明匹配关系,不是供整份替换的配置。DOMAIN-SUFFIX 匹配指定域名及其子域名;IP-CIDR 匹配目标 IP 网段,示例中的 192.0.2.0/24 是文档示例网段;no-resolve 表示该条 IP 规则不为匹配而主动解析域名。GEOIP 按 IP 地理归属匹配,FINAL 处理前面未命中的请求。
- 规则自上而下检查,先命中的规则决定对应策略;应把需要优先处理的条目放在更前面。
DIRECT、PROXY、REJECT分别用于直连、代理和拒绝;如果目标被命中为 REJECT,不应继续按服务器超时排查。- 使用自定义策略组时,检查规则引用的名称与组内选择。测试通过的服务器,不一定就是该规则最终使用的出站。
- 只有个别域名失败时,记录该目标对应的命中规则与策略,避免通过随意移动 FINAL 影响其他请求。
六、订阅更新与连接失败的常见追问
订阅更新超时,是不是现有条目全都失效了?
不一定。订阅更新是获取配置数据,已有条目的连接测试是另一条请求路径。先测试 Home 中已保存的条目,再核对自己已有订阅的有效性。需要通过现有代理更新时,先确认该连接可用,再检查 Settings → Subscribe → Update via Proxy;全部条目都不可用时,启用这一项本身不能恢复连接。
延迟有数值,为什么打开网页仍然失败?
先确认 Connectivity Test 使用的测试方法。端口可达不代表认证、TLS、目标解析和目标响应全部成功。按顺序核对协议参数,再对比 Proxy 与 Config 下同一目标的表现,不要只根据一个毫秒数判断完整链路。
只有 Wi-Fi 超时,蜂窝网络正常,应该改密码吗?
先保持密码与其他字段不变,重复对比同一个条目。检查 Wi-Fi 是否有登录认证要求,以及网络是否限制了所用端口或 UDP。将网络差异反馈给自己的管理员;盲目改密码会破坏原本可用的配置。
更新订阅后超时,要不要立即删除并重新添加?
先对照更新前后的地址、端口、Type 与传输参数,并确认当前选中的条目是否发生变化。保留原始信息后,再向自己的服务商核实变更。直接删除会丢失对照依据,也不能解决远端服务未响应的问题。
结论:留下可复现的最小记录
完成排查后,保留“同一条目、同一测试方法、两种网络、一个目标、一次只改一项”的结果。这样可以明确下一步是修正本地配置、检查网络条件,还是请自己的服务商核查服务端。