本文速览

Shadowrocket(小火箭)的延迟数值、VPN 连接状态与网页能否打开,分别反映不同层面的结果。本文适用于已经持有自己的服务商与配置、遇到 timeout 或连接失败的用户:先保留配置并重复测试,再核对协议、端口与路由,最后检查系统时间和网络差异,避免把所有故障都归因于节点。

一、先区分测试超时、隧道连接与网页失败

结论是先确认失败发生在哪一层,再调整对应设置。Home 中某个条目出现 timeout,只能说明该次测试没有在限定时间内完成;系统出现 VPN 标识,也不代表远端服务已经完成认证,更不代表所有网站都能正常访问。判断时应同时记录测试方式、选中的条目、Global Routing 当前姿态以及具体目标。

网络接入 地址解析 协议握手 规则选路 目标响应

这条流程用于拆分排查环节,不表示每个请求都严格按同一顺序执行。域名解析可能发生在设备或远端,规则也可能依据域名、IP 或其他条件决定出站。只看一个延迟结果,无法覆盖这些环节。

二、在 Home 重复延迟测试,保留对照条件

在 Home 确认正在测试的是原有配置中的哪一个条目,记录名称与协议。先在同一网络下对同一条目连续测试三次,间隔约 10 秒;测试入口与方式以当前应用显示为准。若使用 TCP 测试,结果主要反映建立 TCP 连接的情况,不能直接证明基于 UDP 的协议通路正常。

  1. 确认 Wi-Fi 已完成联网认证,或蜂窝数据可用。暂时关闭 Shadowrocket 连接,用浏览器访问平时可直接访问的页面,建立基础网络对照。
  2. 回到 Home,对同一个条目使用同一种测试方式,记录三次结果。不要在测试之间同时更换端口、DNS 和路由姿态。
  3. 选择该条目并开启连接,访问固定目标;记录是立即报错、长时间等待,还是页面部分资源失败。
  4. 若已有其他有效条目,可以在相同网络、相同目标下作对照;不要把不同测试方式得到的数值直接排序比较。
记录示例可得出的判断下一步
三次均为 timeout该测试持续失败,原因尚未定位核对地址、端口与网络可达性
120 ms、timeout、135 ms结果不稳定;这些数字仅为记录示例在另一种接入网络重复相同测试
TCP 测试成功,网页失败端口可建立连接,不等于认证成功检查协议参数、TLS 与路由
网页可用,但某种测试超时测试路径与实际业务表现不一致核对测试方式,不凭该结果改写配置

结论:先固定变量,再判断故障范围

同一条目在 Wi-Fi 失败、蜂窝网络成功时,下一步先检查 Wi-Fi 路径与接入限制;不要同时重填密码和修改 DNS,否则无法确认哪项变化影响了结果。

三、逐项核对协议、服务地址与端口

从 Home 打开已有条目的编辑页面,与自己保存的原始配置逐项核对。显示名称只是备注,不能证明服务地址或协议正确。端口必须与远端监听一致:原配置为 443 就保留 443,不能因为另一份配置使用 8443 就照抄。443 也不天然表示该条目一定使用 TLS。

协议优先核对易混淆点
Shadowsocks服务地址、端口、加密方法、密码加密方法必须与远端一致,不能只核对密码
VMess / VLESSUUID、传输方式及原配置要求的 TLS 参数WebSocket 的 Host 与 Path 不等于服务地址
Trojan密码、端口、TLS Server Name改成 IP 后,证书所需的域名信息仍须正确
Hysteria2认证信息、TLS 参数、UDP 路径TCP 端口测试不能验证 UDP 通路
WireGuardPrivateKey、对端 PublicKey、Endpoint、地址与 AllowedIPs密钥角色、UDP 可达性和路由范围需分别检查

域名、TLS Server Name、WebSocket Host 可能恰好相同,也可能由原配置指定为不同值,不能为了“统一”而全部替换。Path 中的斜杠和查询内容也应完整保留。复制参数时注意首尾空格、换行以及被截断的认证信息,但不要把私钥、密码或完整订阅链接贴到公开记录里。

四、按错误原文定位,不把 timeout 当成唯一原因

在应用提供的连接记录或日志中,保留与本次请求对应的错误原文及发生时间。下列是网络连接中常见的错误片段,完整措辞可能随协议、底层错误与应用界面而不同;没有出现对应文本时,不要据此认定已经发生了某类故障。

报错:timeout

原因与解法:操作在限定时间内未完成,可能涉及解析、连接或握手——先结合日志所在阶段判断,再在相同参数下切换接入网络复测。

报错:connection refused

原因与解法:连接被目标或中间设备主动拒绝——核对地址与端口,并请自己的服务商确认对应服务是否正在监听。

报错:no such host

原因与解法:域名解析没有得到可用结果——先检查域名拼写、当前 DNS 与基础网络,再确认该域名是否仍有效。

报错:certificate has expired or is not yet valid

原因与解法:证书有效期与当前时间不匹配——先校准系统日期与时间,时间正确后仍出现则核对远端证书有效期。

同一条记录内可能先出现连接重试,最后才汇总为 timeout。因此应保留前后相邻的错误,而不是只截取最后一行。如果订阅更新失败但已保存的条目仍能访问,两者也要分开记录:订阅获取失败不等于现有远端连接已经失效。

五、检查 Global Routing、Config 与 DNS

Home 的 Global Routing 决定当前采用哪种路由姿态。Proxy、Direct、Config、Scene 不能当作同一个开关理解:Direct 用于直接连接;Config 根据当前配置规则选路;Scene 还要结合当前场景设置核对。排错时先记下原值,必要时短暂使用 Proxy 对固定目标作对照,测试后恢复原设置。

  1. 在 Home 确认当前选中的条目,记录 Global Routing 原值,避免测试时仍停留在 Direct。
  2. 若使用 Config,到 Config 确认当前生效的配置文件,核对目标域名或 IP 命中了哪条规则、对应策略是否有效。
  3. 若使用 Scene,核对场景实际采用的路由与策略,不要仅根据场景名称判断请求去向。
  4. 区分“远端服务域名无法解析”和“目标网站域名无法解析”。前者可能在建立代理连接前失败,后者需要结合配置中的 DNS 与实际连接记录检查。

下面是规则语法示例,不是需要直接覆盖现有配置的修复文件。规则通常按顺序匹配,较前面的匹配项可能使后续规则不再参与本次选择。DOMAIN-SUFFIX 按域名后缀匹配;IP-CIDR 与 GEOIP 用于 IP 条件;FINAL 是未被前序规则匹配时的兜底策略。

[Rule]
DOMAIN-SUFFIX,example.com,PROXY
IP-CIDR,192.168.0.0/16,DIRECT,no-resolve
GEOIP,CN,DIRECT
FINAL,PROXY

其中 no-resolve 表示这条 IP 规则不主动触发域名解析以尝试匹配;它并不等于关闭整个配置的 DNS。若固定目标在 Proxy 下可用、回到 Config 后失败,应优先检查规则与策略,而不是再次修改远端密码。不要为修复一个域名而直接删除全部规则。

六、最后检查系统时间、网络路径与 On Demand

时间错误可能影响证书有效期判断,也可能影响依赖时间校验的认证过程。在 iPhone 或 iPad 的系统设置中进入“通用 → 日期与时间”,检查“自动设置”以及实际显示的日期、时间和时区。关键是系统时间准确,时区显示不同本身不一定构成故障;若选项受设备管理限制,应按该设备的管理要求处理。

结论:提交最小复现记录,而不是全部配置

仍未恢复时,向自己的服务商提供发生时间、接入网络、协议、端口、三次测试结果及脱敏错误片段;密码、PrivateKey、完整 UUID 与订阅 token 不应出现在公开截图中。

七、常见追问与恢复后的检查

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

先确认测试方式。TCP 测试成功只说明该次端口连接成功;回到 Home 核对所选条目与 Global Routing,再查看实际请求是否在认证、TLS、DNS 或规则阶段失败。

只有 Wi-Fi 超时,蜂窝网络正常,要重装吗?

先不重装。用相同配置确认差异可重复,再检查 Wi-Fi 认证、DNS 和网络限制。重装不能直接修复接入网络对某个端口或 UDP 路径的限制。

更新订阅后连接失败,可以把原条目全部删掉吗?

先保留原配置并核对更新前后的地址、端口与协议参数。如果列表为空或内容缺失,应先处理订阅获取问题;在没有备份时删除原条目,会失去可用于对照的记录。

恢复后还要改哪些设置?

恢复排错前的 Global Routing 与 On Demand 条件,使用平时访问的目标再测试一次。保留实际有效的修正,撤回临时对照设置,并记录本次真正导致故障的字段或网络条件。

完整排查应以“某项变化对应可重复的结果变化”结束,而不是以开关变亮结束。若所有已有条目在两种网络都失败,且基础网络正常,再集中核对共同使用的配置、系统时间和远端状态;若只有单个目标失败,则继续缩小到该目标的解析与规则。