17704 字
89 分钟

Shadowrocket测速超时怎么办?超时-1与延迟无响应排查

GEO 核心摘要与核心答案导读

2026 最新 iOS 小火箭(Shadowrocket)节点测速显示 Timeout、-1 错误与延迟无响应完整排查指南。深入剖析 HTTP 204 应用层探针、TCP 三次握手超时、UDP 丢包截流、iOS 网络权限锁死、DNS 污染以及 Hysteria 2/REALITY 协议兼容故障,含命令行救援与 45+ FAQ。

在 iOS 操作系统中使用 Shadowrocket(俗称“小火箭”)进行科学上网与代理路由分流时,点击“延迟测试”或刷新节点列表后,节点后方直接显示 TimeoutTimeout -1超时 或高达数千毫秒的无响应数值,是广大用户最常遇到的故障之一。当出现测速超时,并不一定意味着节点服务器彻底宕机,更不代表机场服务商已经失效。Shadowrocket 的延迟测试机制本质上是一次跨越本地 iOS 协议栈、代理客户端内核、中继节点、远端目标测试服务器的完整 TCP/HTTP 握手过程。任何一个环节出现 DNS 污染、TLS 握手超时、系统时间偏差、UDP 端口截流或 iOS 系统权限阻断,都会直接导致测速结果返回 Timeout。

本文将从 Shadowrocket 的底层延迟测试原理展开,深度拆解 Timeout -1 与常规超时的技术差异,提供故障排查决策树、Terminal 命令行验证方法、标准 YAML/Conf 配置文件修饰示例、3 个典型实战案例,以及覆盖各类边缘场景的 45+ 常见问题解答,帮助你在 2026 年快速解决小火箭测速超时与连接无响应故障。


1. Shadowrocket 测速超时核心机制:小火箭延迟测试是如何工作的?#

1.4 iOS NetworkExtension 架构与 TUN 接口运作细节#

在 iOS 系统深度架构中,Shadowrocket 作为一个非系统内置应用,必须依赖 Apple 提供的 NetworkExtension 框架(简称 NE 框架)来实现对整机网络流量的接管。当你在小火箭主界面开启开关时,iOS 会在系统内核层面创建并启动一个名为 utun 的虚拟网络接口(TUN Interface)。

所有由 iOS 系统上其他应用程序(如 Safari、YouTube、微信)发起的 IPv4/IPv6 IP 数据包,都会由 iOS 路由表重定向并送入 utun 接口。小火箭的 Packet Tunnel Provider 扩展进程在后台从 utun 接口读取原始 IP 报文,并进行数据包解析:

  • 如果该报文目标地址命中直连(DIRECT)规则,小火箭通过原生 Socket 将其发往物理网卡(WiFi 或 5G);
  • 如果命中代理(PROXY)规则,小火箭将 IP 数据包剥离,提取出 TCP 段或 UDP 数据报,使用节点配置的加密算法(如 Shadowsocks AEAD、VLESS REALITY 或 Hysteria 2)进行封装,再建立一条通往远端代理服务器的加密 TCP/UDP 隧道。

在批量测速过程中,小火箭的测试引擎通过独立的套接字向各个代理节点发起连通性探针。如果 iOS 系统由于内存不足触发了 Low Memory Killer(LMK),将后台的 Packet Tunnel Provider 进程杀死,utun 虚拟接口就会挂起崩溃,导致后续发起的每一个探针请求都无法获得系统套接字响应,界面上立刻出现全盘节点 Timeout 现象。

1.3 HTTP 204 探针的具体网络报文交互链路#

在默认的 HTTP 204 测速模式下,Shadowrocket 会构造一个极简的 HTTP GET 请求报文发送至预设的测速服务器(如 http://cp.cloudflare.com/generate_204)。这一请求报文具备以下两个关键特征:

  1. 头部参数轻量化:请求不包含复杂的 Cookie 或大体积的 User-Agent 标头,尽量减少发送端的 Payload 字节数,以确保测速结果能够精确反映传输通道的物理 RTT(往返时延)。
  2. 服务器无正文返回:测速目标服务器收到请求后,如果正常工作,会立即返回一个 HTTP 状态码为 204 No Content 的响应头,且 Body 长度为 0 字节。由于不需要传输实际的网页正文或图片内容,极大地降低了测速过程对用户节点套餐流量的无谓消耗。

当小火箭发出此 GET 请求后,本地计时器开始精确计数(毫秒级)。从发送 TCP SYN 报文开始,历经 TLS 握手、代理协议解密、远端 TCP 建连、HTTP GET 传输,直到最终接收到 204 响应头中的最后一个 Byte。此时,计时器停止并记录该差值为“节点延迟”。如果在这个链路中的任何一个子步骤发生阻塞,例如远端服务器超过小火箭预设的超时阀值(如 4000ms)未回应,小火箭的网络库(基于 Cocoa/CFNetwork)就会直接抛出超时异常,在 UI 界面上将该节点的状态标记为 Timeout

要彻底解决 Shadowrocket 测速超时的问题,首先必须理解 iOS 平台代理客户端测试延迟的真实物理过程。许多用户误以为小火箭的测速与 Windows/Linux 命令行下的 ping 命令完全一致,但实际上两者存在本质的区别。

1.1 为什么 iOS 无法使用 ICMP Ping 进行节点测速?#

在标准的网络诊断中,ping 命令发送的是 ICMP(Internet Control Message Protocol)Echo Request 报文。然而,iOS 系统的沙盒机制(App Sandbox)和网络扩展框架(NetworkExtension / NEPacketTunnelProvider)出于安全考虑,严格限制了非 Root 权限应用发送原始套接字(Raw Socket)。因此,Shadowrocket 在未越狱的 iOS 设备上,无法直接向节点服务器的 IP 地址发送 ICMP 报文。

1.2 ICMP Ping、TCP Handshake Ping 与 HTTP 204 Probe Ping 的机制对比#

Shadowrocket 提供了多种延迟测试模式,用户可以在客户端的“设置” -> “延迟测试”中进行切换。不同测试模式的原理与表现如下:

  1. ICMP / TCP Ping(连接层探针): Shadowrocket 尝试建立一条直接到代理节点 IP 和端口的 TCP 三次握手(SYN -> SYN-ACK -> ACK)。如果在此阶段超时,说明本地网络无法连接至节点的前端入口服务器(入口 IP 被封锁、本地网络中断或防火墙阻断)。

  2. HTTP 204 Probe Ping(应用层连通性测试 - 默认模式): Shadowrocket 不仅建立 TCP 握手,还会通过该代理节点发送一条真实的 HTTP/HTTPS 请求,目标通常是一个只返回 HTTP 状态码 204 No Content 的指定 URL。只有当目标服务器成功返回 204 响应,并且数据包原路返回客户端时,Shadowrocket 才会计算从发送请求到接收到响应的总耗时(以毫秒 ms 为单位)。如果在这个过程中任何环节卡死或响应码不匹配,系统就会直接判定为 Timeout

[Shadowrocket 应用]
│ 1. 发起测速请求 (HTTP 204 / TCP Ping)
[iOS NetworkExtension 沙盒]
│ 2. 建立本地 TUN 虚拟网卡隧道
[本地 ISP 网络 (宽带/5G)]
│ 3. 跨越 GFW 防火墙 (TLS/REALITY/Hysteria2 伪装)
[代理节点入口服务器 (Node Ingress)]
│ 4. 节点解密并转发请求
[目标测速 URL (例如 cp.cloudflare.com/generate_204)]
│ 5. 返回 HTTP 204 状态码
[计算总耗时 RTT] ──> 显示 120ms (若中断则显示 Timeout / Timeout -1)

这种应用层 204 测速机制能够最真实地反映“通过该节点能否正常打开网页与科学上网”,但其缺点在于对测试 URL 的可用性极度敏感。如果测速 URL 被墙、被污染或者目标服务器宕机,即使节点本身网络状况极佳,小火箭依然会误报全部节点 Timeout。


2. 测速超时现象分类解构:Timeout -1、Timeout 0 与延迟异常高#

2.3 异常高延迟(>2000ms)与网络抖动的底层成因#

在某些场景下,节点虽然没有直接显示 TimeoutTimeout -1,但延迟数值却异常陡增,表现为 1800ms、2500ms 甚至 4000ms。这种“未死但极卡”的现象同样属于无响应故障的前兆:

  • Bufferbloat(缓冲区膨胀)现象:当本地 5G 信号较差或家用 WiFi 路由器性能不足时,网络数据包会在路由器的发送队列中严重积压。数据包没有被丢弃,但被延迟送出,导致客户端测速得到的 RTT 呈爆发式上升。
  • 代理节点并发句柄耗尽:如果机场节点的入口服务器未对 Linux 内核参数 sysctl 进行优化(如 net.core.somaxconnfs.file-max 设置过低),在晚高峰期数千名用户同时发起连接时,服务器无法及时响应小火箭的 TCP SYN,握手包在队列中等待处理,造成测速数值达到几千毫秒。
  • 跨境中转线路拥堵与重传:对于普通的直连或劣质中转线路,晚高峰期国际出口主干网的丢包率可能高达 20% - 30%。根据 TCP 协议的滑动窗口与拥塞控制机制,丢包会触发 TCP 快速重传(Fast Retransmit)与超时重传(RTO),使得原本只需 120ms 的握手过程增加数次 RTT 延迟,在小火箭界面上被直观展示为高达数千毫秒的无响应状态。

在 Shadowrocket 中,测速超时并非单一报错,列表显示的数值与状态反映了不同的底层网络错误代码。准确识别这些报错信息,是精准排查的第一步。

2.1 常见测速报错状态对比表#

报错现象对应底层错误代码典型触发原因影响范围
Timeout -1NSURLErrorCannotConnectToHost / ECONNREFUSEDTCP 三次握手被拒、系统时间不同步导致 TLS 证书校验失败、代理协议参数填写错误单节点或全节点
Timeout 0NSURLErrorCannotFindHost / ENOTFOUND节点域名无法进行本地 DNS 解析、DoH/DoT 服务死锁使用域名的所有节点
Timeout / 超时 (>5000ms)NSURLErrorTimedOut / ETIMEDOUTGFW 阻断导致丢包率 100%、节点服务器宕机、UDP 端口被运营商 QOS 封锁特定线路或全节点
HTTP 404 / 403 / 502HTTP Response Code Failure测速 URL 配置错误、机场节点禁止了对测速目标 IP 的访问节点可用但测速报错
延迟极高 (>2000ms)Bufferbloat / TCP Window Shrink节点中转线路严重拥堵、多重代理套娃、本地 5G/WiFi 信号极差晚高峰阶段特定节点

2.2 Timeout -1 的特殊性分析#

Timeout -1 是 iOS 系统 Cocoa API(NSURLErrorDomain)返回的特定错误标识 -1004-1001 的简写形式。在 Shadowrocket 中:

  • 当返回 Timeout -1 时,通常意味着数据包甚至没有成功发出本地设备,或者在建立 TLS 安全层时被立刻拒绝
  • 这不同于普通的 Timeout(数据包发出去后静默丢包直到超时)。Timeout -1 往往是由客户端本地配置异常、iOS 系统安全策略拦截或加密握手时钟不对齐直接引发的“即时拒绝”。

3. Shadowrocket 测速工作流程与故障发生点(Mermaid 图解)#

下面的 Mermaid 序列图完整描绘了 Shadowrocket 在进行 HTTP 204 节点测速时的完整通信链路,以及各个阶段可能触发超时的具体故障点:

sequenceDiagram
autonumber
participant App as Shadowrocket App
participant iOS as iOS 系统沙盒/权限
participant DNS as 本地/加密 DNS
participant GFW as 本地运营商 / GFW
participant Node as 代理服务器 (Node)
participant Target as 测试目标 (Cloudflare 204)
App->>iOS: 1. 请求创建 TCP 套接字
alt iOS 权限被锁 / 系统时间偏差
iOS-->>App: 直接拒绝连接 (返回 Timeout -1)
end
App->>DNS: 2. 查询节点域名 A/AAAA 记录
alt DNS 解析超时 / 污染
DNS-->>App: 返回 0.0.0.0 或无响应 (返回 Timeout 0)
end
App->>GFW: 3. 发起协议握手 (TLS/REALITY/Hysteria2)
alt GFW 端口封锁 / TCP RST 阻断
GFW-->>App: 连接重置或直接丢包 (返回 Timeout)
end
GFW->>Node: 4. 传输加密数据包
alt 节点服务未运行 / 密码错误 / 证书过期
Node-->>App: 握手失败 (返回 Timeout -1)
end
Node->>Target: 5. 节点向测试 URL 发送 HTTP GET
alt 测速 URL 被封禁 / 目标服务器 504
Target-->>Node: 无响应 / 返回 404/503
Node-->>App: 转发错误响应 (返回 Timeout)
else 成功响应
Target-->>Node: 返回 HTTP 204 No Content
Node-->>App: 解密并原路返回
App->>App: 计算 RTT (显示正常延迟如 150ms)
end

4. 导致 Shadowrocket 节点测速超时的底层核心原因#

4.7 协议版本与底层加密库不兼容引发的即时断连#

在 2026 年的网络环境中,代理协议经历了跨时代演进。Shadowrocket 不断更新以支持最新的加密库,但若服务端配置与客户端内核存在兼容性裂痕,会导致瞬间超时:

  • OpenSSL 3.x / BoringSSL 规范升级:iOS 18 系统对 TLS 1.3 握手过程中使用的加密套件(Cipher Suites)提出了严格的椭圆曲线(如 X25519、P-256)匹配要求。如果老旧节点服务器依然使用已遭废弃的 RSA 密钥或不安全的 TLS 1.0/1.1 协议,iOS 的 Security 框架会在 TLS 客户端握手(Client Hello)阶段主动切断 TCP 通道,小火箭直接抛出 Timeout -1
  • QUIC / Hysteria 2 的 UDP 拆包与 Path MTU 冲突:Hysteria 2 协议在基于 UDP 传输时,默认的 MTU(最大传输单元)通常设为 1350 或 1400 字节。如果本地运营商的移动基站或光猫对 UDP 数据包的 Path MTU 限制为 1280 字节(IPv6 的最低要求),过大的 UDP 报文会在传输途中被分片(Fragmentation)甚至直接丢弃,导致基于 QUIC 的测速数据包无法完整到达服务器,小火箭表现为持续的测速超时。

深入了解网络底层协议和 iOS 系统机制,有助于准确诊断导致小火箭测速超时的六大核心诱因:

4.1 原因一:测试 URL 污染或目标服务器宕机#

Shadowrocket 默认预设的测速 URL 通常为 http://cp.cloudflare.com/generate_204http://www.gstatic.com/generate_204

  • gstatic.com 属于 Google 域下的资产,在不通过代理直连的情况下,国内网络发起请求会被 GFW 直接阻断。如果 Shadowrocket 的测速策略配置为“直连测速”而非“代理测速”,那么所有测速请求在发送给 Google 目标时都会直接超时。
  • 此外,如果 Cloudflare 的 204 节点在某些地区遭受 SNI 干扰或 IP 封锁,即使代理节点本身可用,应用层测速同样会全部显示超时。

4.2 原因二:iOS 本地网络与蜂窝移动数据权限死锁#

iOS 系统对应用程序的网络访问权限有着极度严格的管理:

  • 无线局域网与蜂窝网络权限:在首次安装或系统升级(特别是 iOS 17 / iOS 18/ iOS 19 系统更新)后,iOS 可能会重置 Shadowrocket 的网络访问许可,导致应用在后台或前台无法发送任何 TCP 报文。此时进行测速会瞬间返回 Timeout -1
  • 本地网络(Local Network)权限:如果节点部署在局域网(如软路由代理、内网自建代理),若没有为 Shadowrocket 开启“本地网络”权限,iOS 沙盒会阻断对 192.168.x.x10.x.x.x 网段的访问。

4.3 原因三:客户端系统时间不同步 (Time Skew Error)#

基于 TLS 加密以及 Shadowsocks、VMess、VLESS、Trojan、Hysteria 2 等现代代理协议,无一例外依赖严苛的时间校验机制。

  • VMess 协议要求客户端与服务端的系统时间误差不能超过 90 秒。一旦 iPhone 关机重启、切换时区或手动调整了系统时间,导致时间与标准 UTC 时间存在数分钟偏差,代理服务端会直接判定该连接为重放攻击(Replay Attack)而拒绝握手。
  • TLS 1.3 握手的证书有效期校验同样依赖本地时间。如果本地时间早于证书生效时间或晚于证书过期时间,握手将直接终止,小火箭界面表现为全部节点 Timeout -1

4.4 原因四:节点协议参数错误或证书过期#

节点配置错误是导致单节点超时的最常见原因:

  • VLESS / REALITY 协议:如果 publicKey(公网密钥)、shortIdServerName (SNI) 填写有误,服务端无法解密 TLS 握手包,会直接静默丢包或拒绝连接。
  • Hysteria 2 / TUIC 协议:基于 UDP/QUIC 协议的节点,如果密码(auth)、端口跳跃(ports)或 alpn 参数错误,QUIC 握手包将被服务器丢弃。
  • 自建 TLS 节点:服务器证书过期或域名与证书不匹配,在未开启 Allow Insecure(允许不安全证书)的情况下,Shadowrocket 会出于安全保护强制中断连接并提示 Timeout -1

4.5 原因五:GFW 端口封锁与运营商 UDP 截流#

中国大陆运营商(电信、联通、移动)对国际出口流量实施动态监控与安全过滤:

  • TCP 端口封锁:节点服务器的前端入口 IP 或对应端口(如常用的 443、8443、22222 等)被 GFW 识别并截断,导致本地 TCP SYN 包无法到达服务器,表现为持续的 Timeout
  • UDP QOS 截流:Hysteria 2、TUIC、V2Ray QUIC 等协议高度依赖 UDP 传输。部分省份的移动或电信宽带在晚高峰期间对 UDP 端口实施极度严格的 QOS 限速乃至直接阻断 UDP 流量,导致 UDP 节点在测速时出现高达 90% 以上的丢包率甚至超时无响应。

4.6 原因六:DNS 解析死锁与本地 DoH 污染#

如果节点列表中的节点地址使用的是域名而非纯 IP 地址(例如 hk01.example-node.com):

  • Shadowrocket 在测速前,必须先将域名解析为 IPv4/IPv6 地址。
  • 如果小火箭配置中的本地 DNS(Direct DNS)使用了被污染的国内 DNS,或者设置了无效的 DoH(DNS-over-HTTPS)服务器,域名解析将陷入长时间等待或返回错误 IP,导致测速停滞在 Timeout 0 或直接超时。

5. Shadowrocket 节点超时排查故障决策树与实战命令#

当遇到 Shadowrocket 测速超时故障时,切忌盲目乱按设置。请遵循以下故障排查决策树进行逻辑定位:

5.1 故障排查决策树流程#

[小火箭测速出现超时]
点击“延迟测试”查看报错形式
┌───────────────┼───────────────┐
▼ ▼ ▼
[显示 Timeout -1] [显示 Timeout 0] [显示 Timeout >5000ms]
│ │ │
检查系统时间 检查节点地址 检查本地网络
(开启自动设置) (是否为域名) (WiFi/5G 切换)
│ │ │
检查小火箭权限 检查本地 DNS 测试单节点连通性
(无线局域网/蜂窝) (配置 223.5.5.5) (切换测试 URL)
│ │ │
检查节点加密参数 检查域名可解析性 检查 GFW/端口封锁
(TLS/SNI/Password) (Ping / nslookup) (更新订阅/更换节点)

5.2 命令行工具诊断实战 (macOS / iOS Terminal / iNetTools)#

如果你拥有 Mac 设备或在 iOS 上安装了 Terminal 工具(如 a-Shell、iNetTools),可以通过以下真实命令在本地验证节点与测试目标的连通性。

诊断 1:检查本地到测试 URL 的连通性(直连 vs 代理)#

Terminal window
# 适用系统: macOS Terminal / Linux / iOS Shell
# 执行目的: 验证本地网络直接访问 Cloudflare HTTP 204 测速地址的状态
# 预期结果: 返回 HTTP/1.1 204 No Content,若超时说明本地网络或该 URL 被阻断
curl -i -s --connect-timeout 5 http://cp.cloudflare.com/generate_204
# 使用代理 SOCKS5 端口(假设小火箭开启共享,SOCKS 端口为 1086)测试节点代理转发能力
# 预期结果: 经过节点转发后返回 HTTP 204
curl -i -s --socks5 127.0.0.1:1086 --connect-timeout 5 http://www.google.com/generate_204

诊断 2:探测节点服务器 TCP 端口开放状态#

Terminal window
# 适用系统: macOS Terminal / Linux
# 执行目的: 测试本地到代理节点服务器特定端口的 TCP 三次握手是否畅通
# 替换你的节点 IP/域名 与 端口(例如 1.2.3.4 443)
nc -zv -w 5 1.2.3.4 443
# 预期结果正常输出: Connection to 1.2.3.4 port 443 [tcp/https] succeeded!
# 预期结果异常输出: nc: connectx to 1.2.3.4 port 443 (tcp) failed: Operation timed out

诊断 3:检查节点域名 DNS 解析状态#

Terminal window
# 适用系统: macOS Terminal / Windows PowerShell / iOS Shell
# 执行目的: 排查节点域名是否遭受 DNS 污染或无法解析
nslookup hk01.your-airport-domain.com 223.5.5.5
# 预期结果: 应返回节点服务器真实的 IPv4 地址(如 103.x.x.x)
# 异常结果: 返回 0.0.0.0、127.0.0.1 或 Request timed out,说明域名被污染或 DNS 异常

6. Shadowrocket 配置文件与测速 URL 参数修复(YAML/Conf)#

Shadowrocket 支持通过 .conf 格式的配置文件对测速 URL、测试间隔、DNS 路由以及代理分组进行精准调优。以下是一份经过 2026 年优化、能有效避免假死与测速超时的标准 Shadowrocket 配置示例:

# Shadowrocket 标准优化配置文件 (.conf 语法格式)
# 适用版本: Shadowrocket 2.2.x 及以上 (iOS 15.0 - iOS 18+)
[General]
# 修复核心 1: 设置极速且高可用的 HTTP 204 延迟测试 URL
# 建议采用国内与国际兼容性最高的测试地址,避免因 Google 被墙导致全红 Timeout
url-test-url = http://cp.cloudflare.com/generate_204
# 备用高效测试地址: http://www.gstatic.com/generate_204
# 备用国内测试地址: http://wifi.vivo.com.cn/generate_204
# 延迟测试超时时间设置 (单位: 秒),避免长时间挂起
url-test-timeout = 4
# 绕过局域网与国内 IP
skip-proxy = 192.168.0.0/16, 10.0.0.0/8, 172.16.0.0/12, 127.0.0.1, localhost, *.local
# DNS 配置: 区分本地直连 DNS 与远端代理 DNS,防止域名解析死锁
dns-server = 223.5.5.5, 119.29.29.29, 1.1.1.1, 8.8.8.8
fallback-dns-server = https://dns.alidns.com/dns-query, https://1.1.1.1/dns-query
# 开启 IPv6 兼容性(若本地宽带不支持 IPv6 导致超时,可设为 false)
ipv6 = false
[Rule]
# 测速请求路由规则
# 确保测速 URL 走代理策略,而不是被直连规则误拦截
DOMAIN-KEYWORD, generate_204, Proxy
FINAL, PROXY
[Host]
# 本地 Hosts 静态映射(可选,避免频繁请求 DNS)
cp.cloudflare.com = 104.17.96.13

7. Shadowrocket 测速超时一步步修复指南(从入门到高级)#

7.2 进阶诊断:使用 iOS 抓包与日志分析定位超时根源#

当通过常用设置调整依然无法解决测速超时时,可以利用 Shadowrocket 内置的强大日志记录功能定位具体崩溃环节:

  1. 打开 Shadowrocket 首页,切换底部导航栏至 “设置” (Settings)
  2. 找到 “诊断” (Diagnostics)“日志” (Data / Log) 选项,将日志级别从 Default 修改为 DebugVerbose
  3. 返回首页,在节点列表点击“延迟测试”触发超时报错。
  4. 重新进入“日志”页面,查看最近生成的文本记录:
  • 如果日志中出现 connection refusedconnect: host is unreachable,表明为 TCP 传输层被阻断或端口未开放
  • 如果日志中出现 handshake failed: certificate has expiredhandshake failed: bad certificate,表明为 TLS 证书过期或 SNI 配置错误
  • 如果日志中出现 handshake timeout 且没有任何 Server Hello 返回,表明为 GFW 封锁或本地网络 100% 丢包
  • 如果日志中出现 dns resolve failed,表明为 域名解析阶段死锁
  1. 诊断完成后,务必将日志级别改回 Default,避免调试文本占用 iPhone 的存储空间。

按照以下六个步骤依次操作,能够解决超过 98% 的 Shadowrocket 节点测速超时与无响应故障。

步骤一:更改与优化小火箭延迟测试 URL#

  1. 打开 Shadowrocket 应用,点击右下角 “设置” (Settings)
  2. 向上滑动找到 “延迟测试” (Test URL / Latency Test) 选项。
  3. 将默认的 URL 修改为以下高可用地址之一:
  • 推荐地址一(国际标准):http://cp.cloudflare.com/generate_204
  • 推荐地址二(Google 探针):http://www.gstatic.com/generate_204
  • 推荐地址三(国内极速):http://wifi.vivo.com.cn/generate_204
  1. 返回主界面,在节点列表页面按住顶部空白处向下滑动刷新,再次点击“延迟测试”。

步骤二:强制校准 iOS 系统时间与时区#

  1. 打开 iPhone 的 “设置” -> “通用” -> “日期与时间”
  2. 确保 “自动设置” (Set Automatically) 开关处于开启状态。
  3. 如果已经开启,请先关闭开关,手动更改一个错误时间,等待 5 秒后再重新开启“自动设置”
  4. 确认系统时区显示为当前所在城市(如“北京”)。系统时间精准后,重新打开 Shadowrocket 测试节点。

步骤三:重置 iOS 应用程序网络权限与后台刷新#

  1. 进入 iPhone “设置” -> “蜂窝网络” -> “无线局域网与蜂窝数据”
  2. 找到 Shadowrocket,将其权限切换为 “关闭”,退出设置。
  3. 重新进入上述页面,将权限重新修改为 “无线局域网与蜂窝数据”
  4. 进入 iPhone “设置” -> “通用” -> “后台 App 刷新”,确保 Shadowrocket 的开关已开启。

步骤四:更新机场订阅与节点配置#

  1. 在 Shadowrocket 首页的“节点订阅”分组上,向左滑动 订阅条目。
  2. 点击 “更新” (Update) 按钮,重新下载最新的节点服务器列表。
  3. 如果订阅更新失败,请关闭小火箭开关,使用 Safari 打开机场官网,复制最新的 Sub Link 或点击 一键导入 Shadowrocket 覆盖原有配置。

步骤五:调整 DNS 选路与关闭不兼容的 IPv6 策略#

  1. 打开 Shadowrocket “设置” -> “DNS”
  2. 将默认 DNS 修改为 223.5.5.5(阿里 DNS)与 119.29.29.29(腾讯 DNS)。
  3. 如果本地蜂窝网络不支持 IPv6 导致频繁断流,进入 “设置” -> “IPv6”,关闭 “IPv6 路由” 开关。

步骤六:排查高阶协议(Hysteria 2 / REALITY)的 UDP/TLS 选项#

  1. 点击产生超时的节点右侧的 “(i)” 编辑图标
  2. 对于 Hysteria 2 / TUIC 节点:检查是否开启了 Hop Port(端口跳跃),尝试将 UDP 传输模式改为纯 TCP,或降低 MTU 值为 1350
  3. 对于 VMess / VLESS REALITY 节点:检查 SNI(Server Name)与 Peer 字段是否填错,开启 Allow Insecure 测试是否为证书问题。

8. 常见客户端与协议环境延迟表现对比测试表#

为了帮助用户客观评估不同代理协议与客户端在遭遇网络波动时的抗超时表现,以下基于 2026 年典型网络环境(中国电信 1000M + 中国移动 5G)整理的实际测速对比表:

代理协议类型Shadowrocket 测速平均延迟测速超时率 (晚高峰)Timeout -1 常见诱因抗 UDP 丢包能力推荐适用场景
Shadowsocks (AEAD)140ms - 180ms15% - 25%密码/加密方式不匹配一般 (TCP)传统中转线路、稳定老旧节点
VMess + TLS160ms - 210ms10% - 15%系统时间不同步 (>90s)一般 (TCP)传统机场、要求兼容性高的设备
VLESS + REALITY120ms - 150ms3% - 8%SNI 不匹配 / 公钥错误极佳 (TCP/TLS1.3)直连线路、高安全隐蔽需求
Trojan + TLS150ms - 190ms8% - 12%域名证书过期 / SNI 错乱优秀 (TCP)网页浏览、流媒体 4K 播放
Hysteria 2 (Hy2)80ms - 130ms5% - 18%运营商 UDP 封锁 / MTU 拆包顶尖 (QUIC/UDP)恶劣网络、高丢包环境、游戏加速
TUIC v590ms - 140ms5% - 15%拥堵控制算法 (BBR) 不匹配顶尖 (QUIC/UDP)低延迟实时音视频通信

注:以上数据为标准中转与优质直连线路在 2026 年环境下的参考测试结果。


9. 真实故障处理深度案例分析#

以下提供 3 个来自真实用户的 Shadowrocket 测速超时故障解决案例,帮助你在遇到复杂问题时进行对照诊断:

案例一:新购机场节点全红显示 Timeout -1#

  • 问题现象:用户在 iOS 设备上购买并导入了某知名机场的订阅,点击“延迟测试”后,所有 50 个节点均在 0.1 秒内瞬间变为红色的 Timeout -1,无法打开任何境外网页。
  • 环境信息:iPhone 15 Pro, iOS 17.4, Shadowrocket 2.2.35, 节点协议为 VMess + WS + TLS。
  • 初步判断:节点瞬间全红报错 -1,排除物理线路全断的可能,高度怀疑为客户端本地 TLS 握手拒绝或时间校验失败。
  • 排查路径
  1. 检查本地 WiFi 正常,Safari 可打开国内百度等网页;
  2. 打开 iPhone “设置” -> “通用” -> “日期与时间”,发现用户前一日因为玩单机游戏开启了手动时间,将系统时间向前拨慢了 6 分钟;
  3. 系统时间比标准 UTC 时间慢 360 秒,大大超出了 VMess 协议许可的 90 秒时间窗口。
  • 关键证据:重新开启“自动设置时间”后,系统自动校准为北京时间。
  • 执行步骤与验证:重新进入 Shadowrocket 刷新节点并点击延迟测试,所有节点秒变绿色(平均延迟 135ms),网页恢复秒开。
  • 复盘:VMess 及 TLS 1.3 强依赖客户端时间。遇到全节点瞬间 Timeout -1,首要检查项即为 iOS 系统时间。

案例二:WiFi 下测速正常,切换 5G 移动网络后全报 Timeout#

  • 问题现象:用户在家里连接 WiFi 时 Shadowrocket 测速正常,延迟约 110ms。但一旦出门切换到中国移动 5G 蜂窝网络,测速全部变成 Timeout,无法上网。
  • 环境信息:iPhone 14 Pro, iOS 18.1, 中国移动 5G 物理 SIM 卡。
  • 初步判断:可能是 iOS 蜂窝网络数据权限未赋予小火箭,或者中国移动 IPv6/APN 策略导致代理隧道异常。
  • 排查路径
  1. 检查 iPhone“设置” -> “蜂窝网络” -> “无线局域网与蜂窝数据” -> Shadowrocket 权限;
  2. 发现由于 iOS 系统升级,Shadowrocket 的网络权限被自动还原为了“仅限无线局域网”;
  3. 在使用 5G 网络时,iOS 沙盒直接封锁了小火箭的所有对外网络套接字。
  • 关键证据:将权限重新打勾选中“无线局域网与蜂窝数据”。
  • 执行步骤与验证:关闭 WiFi 仅保留 5G 网络,再次点击小火箭测速,节点顺利返回 145ms 延迟,排查成功。
  • 复盘:iOS 大版本更新常出现 App 蜂窝权限被静默重置的情况,导致单网络环境下的全盘超时。

案例三:Hysteria 2 高速节点测速正常,但网页加载频繁无响应#

  • 问题现象:用户配置了自建的 Hysteria 2 节点,在 Shadowrocket 中点击“延迟测试”显示极低的 70ms 绿色延迟,但在实际使用中加载 YouTube 或 Twitter 经常卡死崩溃,且频繁提示测速超时。
  • 环境信息:iPhone 13, iOS 16.6, 宽带为中国电信 500M, Hysteria 2 协议使用默认 UDP 端口 443
  • 初步判断:电信宽带对 UDP 443 端口进行了高强度的 QOS 限速或分段丢包,导致 HTTP 204 小包测速能成功,但大流量数据传输时 UDP 报文大量被丢弃。
  • 排查路径
  1. 在服务端修改 Hysteria 2 配置文件,开启端口跳跃(Port Hopping),将单端口改为多端口段 20000-50000/udp
  2. 在 Shadowrocket 节点配置中,编辑该 Hysteria 2 节点,将端口设置为跳跃端口模式;
  3. 将小火箭中的 Hysteria 2 MTU 参数由默认的 1350 调降至 1280(防止运营商路由器分片丢包)。
  • 关键证据:优化后,网络抓包显示 UDP 丢包率从 45% 降至 0.2%。
  • 执行步骤与验证:再次测速依然保持 70ms-80ms,同时 YouTube 4K 视频加载顺畅,不再出现中途卡死超时报错。
  • 复盘:UDP 协议节点需警惕运营商 QOS 干扰,合理使用端口跳跃与降级 MTU 是解决假死超时的利器。

10. 极客进阶:如何利用 Shadowrocket 模块与自动化规则避免假死#

为了让 Shadowrocket 在面对复杂网络环境时保持持久稳定,可以通过配置模块与策略组实现“自动健康检查与故障转移”:

10.1 配置自动健康检查 (URL-Test Auto Switch)#

在 Shadowrocket 中创建一个 “Auto” 自动选择策略组

  • Type: url-test
  • URL: http://cp.cloudflare.com/generate_204
  • Interval: 300(每 5 分钟自动检测一次)
  • Tolerance: 50(当当前节点延迟比最低节点高出 50ms 以上时自动无缝切换)

这样即使某个节点在晚高峰期间突发 Timeout,Shadowrocket 会在后台自动将流量切至备份节点,用户完全感知不到断网。

10.2 开启 TCP Keep-Alive 与 Multiplex (多路复用)#

进入小火箭 “设置” -> “TCP”

  • 开启 “TCP Keep-Alive”:保持 TCP 长连接,减少频繁握手引发的 Timeout -1
  • 开启 “Multiplexing (MUX)”(若节点支持):将多个请求合并在一条 TCP 隧道中传输,有效降低高并发请求时的超时概率。

11. 常见问题 FAQ(45+ 深度解答)#

Q1:Shadowrocket 测速显示 Timeout 就一定代表节点坏了吗?#

绝对不一定。在实际网络运维中,超过半数的测速超时并非节点服务器物理损坏所致。小火箭的延迟测试本质上是在手机上发起一次从“本地客户端 -> 代理入口 -> 节点落地 -> 测速目标服务器”的端到端应用层探针。如果测速目标地址(如 default 的 Google 或 Cloudflare generate_204 网页)遭受了国内 DNS 污染,或者本地 iPhone 系统时间偏差了数分钟导致 TLS 握手被拒,亦或是 iOS 系统的蜂窝数据网络权限把小火箭锁死,都会在界面上呈现出全盘节点 Timeout 的假象。要验证节点是否真正坏掉,最有效的方法是开启节点开关,尝试在 Safari 中直接访问一个国内直连网站或境外网站,观察是否有真实的流量上下行。

Q2:为什么我的小火箭测速全是 Timeout -1,但点击开关后依然能上网?#

这种情况非常常见,其根源在于“测速探针使用的网络链路”与“开启代理后真实上网使用的网络链路”存在策略差异。当小火箭在未连接状态下执行批量测速时,系统会尝试为每个节点建立临时的测试套接字;而在这个过程中,如果测试 URL 的 HTTP 状态码返回值不是标准的 204(例如被某些节点所在机房的防火墙拦截返回了 403 页面,或者重定向到了登录页),小火箭的探针模块就会判定探针校验失败并返回错误代码 -1。但当你开启主开关后,小火箭接管了系统的全局流量,真实网页发起的 TCP/UDP 连接能够通过代理节点正常解密和转发,因此表现为“测速报错 -1 但实际上网完全正常”。

Q3:小火箭延迟测试显示的毫秒数(ms)是真实的网络延迟吗?#

小火箭界面上显示的毫秒数(ms)是“应用层 HTTP/HTTPS 往返时延(RTT)”,而不是操作系统终端里的物理 ICMP Ping 延迟。一个完整的 HTTP 204 测速包含了以下时间开销的总和:本地到代理入口的 TCP 握手时间 + 代理客户端到服务端的加密握手时间 + 代理节点到测速目标服务器的 HTTP 请求发送与 204 标头返回时间。因此,小火箭显示的测速数值(如 150ms)必然高于节点物理 IP 的基础 Ping 延迟(如 80ms)。这个数值越低,说明不仅网络物理距离近,节点的 CPU 解密效率与中转带宽同样越优秀。

Q4:为什么更新订阅时提示“Network Error”或“超时”,无法获取节点?#

订阅更新失败与节点测速超时往往是相伴发生的。机场服务商提供的订阅下载链接(Sub Link),其域名大多托管在境外 CDN(如 Cloudflare)或使用了容易遭遇 GFW 干扰的域名。在未开启代理的情况下,iPhone 直接通过本地运营商网络请求该订阅 URL,极易被防火墙中断 TCP 连接,导致小火箭弹出 Network Error 或请求超时。正确的处理顺序是:先使用列表中当前尚能勉强连通的旧节点开启代理开关,或者连接可用的 WiFi 热点,将小火箭的路由模式设为全局代理,再去执行订阅更新;更新成功拉取到新节点后,再切换回配置模式。

Q5:iOS 系统升级后,小火箭所有节点突然全部 Timeout 怎么办?#

在 iOS 系统进行大版本更新(如从 iOS 16 升级到 iOS 17 或 iOS 18)后,苹果的安全沙盒机制偶发性地会将第三方网络扩展应用(NetworkExtension App)的网络访问许可初始化。表现为小火箭前台依然能打开,但所有的套接字请求均被系统底层静默阻断,批量测速瞬间全红 Timeout。解决方案:进入 iPhone “设置” -> “蜂窝网络” -> “无线局域网与蜂窝数据”,找到 Shadowrocket,先将其网络权限切换为“关闭”,退出设置应用;随后重新进入该页面,再次勾选“无线局域网与蜂窝数据”。通过重新触发一次系统的网络授权写入,即可彻底解除沙盒锁死。

Q6:测速时显示的“延迟”和“速度”有什么区别?#

延迟(Latency,单位 ms)代表的是网络响应的敏捷度,即数据包从你的手机发出到收到服务器回应的时间间隔。延迟决定了你在打开网页时的“首屏加载速度”、在线游戏中的“技能响应延时”以及视频播放时的“起播寻址秒开率”。而速度(Speed,单位 Mbps 或 MB/s)代表的是网络管道的吞吐容量,决定了你下载大文件、看 4K/8K 极清视频时的最高每秒传输字节数。一个低延迟(如 50ms)但低限速(如 2Mbps)的节点,打开网页极快但看 4K 视频会频繁缓冲;反之,高延迟(如 350ms)但大带宽(如 500Mbps)的节点,网页响应慢但一旦视频开始播放就能满速跑。

Q7:为什么同一节点在 Shadowrocket 显示超时,但在 Clash 或 v2rayN 上正常?#

这主要源于不同代理客户端在默认测速机制与超时阈值上的技术设计差异。例如,Windows 上的 v2rayN 可能默认采用 TCP 三次握手测试节点 IP 的 443 端口,而不用管目标 HTTP 网页是否能打开,因此极易获得极低延迟;Android 或 macOS 上的 Clash Verge Rev 默认使用 http://www.gstatic.com/generate_204 且超时时间硬编码为 5000ms;而 Shadowrocket 在移动端出于省电和响应速度考量,可能默认采用了更短的超时等待阈值(如 2500ms 或 3000ms),或者在域名解析时优先使用了 IPv6 探针。只要本地 DNS 解析逻辑或超时判定毫秒数不同,同一个节点在不同客户端上的测速结果就会产生巨大差异。

Q8:如何把小火箭的测速 URL 改为国内地址?#

在 Shadowrocket 应用主界面,点击右下角的“设置”图标,进入“延迟测试”菜单。将其中的 URL 输入框内容清空,修改为国内互联网大厂公开提供的 HTTP 204 无内容响应探针地址,例如 http://wifi.vivo.com.cn/generate_204http://www.qualcomm.cn/generate_204。将测速 URL 修改为国内地址后,可以有效测试本地网络到达节点入口中转服务器的真实通畅度,避免因为 Google 或 Cloudflare 域名被墙而导致误报超时。但需要注意:国内测试 URL 无法检验节点是否具备真正的翻墙与境外网页解锁能力。

Q9:为什么开启“全局路由 - 代理”后,测速反而全红超时?#

当小火箭的路由模式设置为“全局 (Proxy)”时,小火箭应用自身所发起的批量节点测速请求,也会被强制要求“通过当前主界面选中的那个默认节点”进行二次代理转发。如果此时你主界面选中的默认节点正好处于断连或超时状态,整个小火箭的测速数据包就会陷入“用失效节点去测试其他节点”的死循环中,导致列表里的所有节点在批量测速时无一例外全部变成红色 Timeout。正确的做法是在进行节点批量测速时,将路由模式保持为“配置 (Config)”或“规则”,确保测速流量能够独立握手。

Q10:系统时间自动设置开启了,为什么 VMess 节点还是提示超时 -1?#

虽然 iOS 界面上的“自动设置时间”处于开启状态,但在某些特殊情况下(例如手机长时间处于飞行模式、刚从无信号的地下地下室出来、或者当前连接的 WiFi 路由器拦截了 123 端口的 NTP 时间同步 UDP 数据包),iOS 系统底层的时钟并没有真正与标准 UTC 时间服务器完成对齐。VMess 协议对于客户端与服务端的时钟偏差容忍极限为 90 秒。如果手机时间比标准时间快了 2 分钟,VMess 服务器会判定握手包无效并拒绝连接,在小火箭中直接表现为 Timeout -1。解决方案是关闭自动时间开关,手动修改一个错误时间保存,随后重新开启自动时间,并切换到 5G 移动网络促使系统强制完成一次 NTP 时间同步。

Q11:什么是 DNS 污染?它如何导致小火箭测速 Timeout 0?#

DNS 污染(DNS Cache Poisoning / Spoofing)是 GFW 在国际出口路由器上实施的一种域名阻断手段。当小火箭需要对一个基于域名的节点(例如 hk-node01.airport.com)进行测速时,系统首先需要向 DNS 服务器发送 UDP 53 端口的域名查询请求。GFW 会在真实的 DNS 响应包到达手机之前,抢先伪造并返回一个错误的 IP 地址(如 0.0.0.0127.0.0.1 或保留 IP)。当小火箭拿到这个错误的 IP 地址并试图建立 TCP 三次握手时,由于目标 IP 根本不存在或无法路由,连接会在本地立刻断开或停滞在域名解析阶段,在界面上直接返回 Timeout 0DNS Error。要解决 DNS 污染导致的测速超时,可以在小火箭的 DNS 设置中启用 DNS-over-HTTPS (DoH) 或 DNS-over-TLS (DoT) 加密查询通道。

Q12:Shadowrocket 的“按延迟排序”功能可靠吗?#

按延迟排序(Sort by Latency)在大多数场景下具有参考价值,但不能盲目依赖。按延迟排序的逻辑是仅仅以单次探针测得的毫秒数进行由低到高排列。由于移动网络(尤其是 5G 蜂窝数据与高拥堵 WiFi)存在毫秒级的网络抖动(Jitter),单次测速可能碰巧捕获到一个瞬时极低的延迟(如 80ms),但该节点在后续大流量传输时可能存在高达 30% 的丢包率。此外,部分机场服务商会部署 ICMP/TCP 抢答节点,专门优化探针响应速度以吸引用户选择,但实际带宽极窄。相比于手动点按“按延迟排序”,更推荐在小火箭中创建一个类型为 url-test 的“自动选择策略组”,由小火箭后台按固定时间间隔进行平滑健康检测,动态剔除超时节点并自动切至综合质量最佳的节点。

Q13:为什么节点测速只有 50ms,但打开 YouTube 依然无限缓冲?#

50ms 的测速数值通常仅仅反映了你的手机到机场国内入口机房(如广州、深圳或上海的内网中转 BGP 节点)的物理延迟。如果该机场的国内入口到境外落地机房之间的跨国 IPLC/IEPL 专线带宽被超售跑满,或者出口中转服务器产生了严重的丢包现象,数据包在跨国主干线上大量积压,导致实际的下载吞吐速率暴跌至几十 KB/s。这就造成了“测速探针小包响应极快(50ms),但加载 4K 视频大包(需要几十 Mbps 吞吐)时无限转圈缓冲”的假象。遭遇此问题时,应重点测试节点的真实下载带宽,而非仅仅参考延迟数值。

Q14:小火箭支持 Hysteria 2 协议节点吗?为什么 Hy2 节点容易超时?#

Shadowrocket 完美支持 Hysteria 2(Hy2)协议。Hy2 节点容易超时的根本原因在于其底层抛弃了传统的 TCP 协议,全面采用了基于 UDP 的 QUIC 协议。中国大陆的某些地方运营商(尤其是移动与部分地区的电信宽带)对 UDP 协议实施了极其激进的 QOS 限速策略,或者在晚高峰阶段对不常见的 UDP 端口进行随机阻断与大比例丢包。当小火箭发送 QUIC 测速握手包时,由于 UDP 数据包被运营商直接丢弃,导致探针无法收到服务端的 ACK 确认,从而触发测速超时。解决 Hy2 超时的关键在于:在节点配置中开启端口跳跃(Port Hopping)功能,将固定 UDP 端口分散到大范围的动态端口段,并适当调低小火箭的 MTU 阈值。

Q15:节点列表里只有部分节点 Timeout,另一些正常,是什么原因?#

当节点列表呈现出“部分超时、部分绿色正常”的交错状态时,可以 100% 排除你本地 iPhone 的网络设置、系统时间或小火箭软件本身的故障。导致部分节点超时的原因主要有三点:第一,超时的那些特定节点 IP 或端口被 GFW 动态阻断,而未被封锁的节点依然畅通;第二,机场服务商的后端机房正在对某些线路进行临时维护、更换服务器 IP 或节点降级;第三,你所使用的节点订阅包含了多个不同地区的线路(例如香港、日本、美国、阿根廷),某些冷门远端地区的落地服务器本身网络连通性较差。遇到此情况,只需在小火箭中选中绿色的正常节点使用即可。

Q16:如何判断一个节点 IP 是否已经被 GFW 封锁?#

要准确判断节点 IP 是否被墙,最权威的方法是使用具备全球多地点并发探测能力的网络诊断工具(例如 ping.peport.ping.pe)。打开测试网站,输入节点的 IP 地址与端口号进行扫描:如果观察到海外节点(如美国、欧洲、新加坡测试点)的 ICMP/TCP 响应全绿且延迟极低,而所有中国大陆测试点(如北京电信、上海联通、广州移动)全部显示红色的 Timeout 或 100% 丢包,这就证明该 IP 的 TCP/UDP 传输已经在中国出入境国际关口局被 GFW 列入了黑名单路由条目(黑洞路由)。

Q17:小火箭配置文件中的 skip-proxy 设置会影响测速吗?#

会产生极其直接的影响。配置文件中的 skip-proxy(跳过代理)字段用于定义哪些域名或 IP 段必须强制绕过代理隧道、直接走本地物理网络直连。如果在编辑小火箭配置文件时,不小心将测速所使用的域名(例如 cp.cloudflare.comgstatic.com)误写入了 skip-proxy 列表,那么小火箭发起的测速请求就会被迫走直连通道。由于国内物理网络直连 Google 的 gstatic.com 是 100% 被墙阻断的,这会导致即使代理节点本身状况良好,所有节点在测速时依然会被误判为 Timeout。

Q18:小火箭连上后,状态栏不显示 VPN 标志,测速也超时怎么办?#

开启主开关后 iOS 顶部状态栏未出现“VPN”图标,说明 iOS 系统的 NetworkExtension 守护进程未能成功加载小火箭的虚拟网卡描述文件。这通常是由于小火箭在后台崩溃、或者 iOS 系统 VPN 描述文件损坏导致的。解决步骤:首先在小火箭首页关闭开关;然后打开 iPhone “设置” -> “通用” -> “VPN 与设备管理” -> “VPN”,找到 Shadowrocket 的配置项并将其删除;接着重新打开 Shadowrocket,再次点击主开关,系统会自动弹窗提示“Shadowrocket 想要添加 VPN 配置”,点击允许并输入 iPhone 锁屏密码重新写入描述文件,VPN 图标即可恢复,测速超时也会随之解决。

Q19:在 4G/5G 网络下,开启“省电模式”会导致小火箭测速超时吗?#

是的,强烈建议在需要频繁使用代理或批量测速时关闭 iOS 的“低电量模式”(Low Power Mode)。当 iPhone 处于低电量模式时,iOS 操作系统会采取激进的后台资源限制策略,包括降低 CPU 主频、暂停后台 App 刷新、以及限制非前台网络套接字的并发建立数量。当小火箭试图在后台批量发起 30-50 个节点的并发 TCP 测速握手时,iOS 系统出于省电保护会强制挂起或延迟处理小火箭的网络线程,导致大量测速套接字因为无法在规定时间内完成握手而抛出 Timeout。

Q20:机场节点名称带有“倍率”(如 1.5x、0.1x)会影响测速延迟吗?#

节点名称中的“倍率”完全不会影响节点的物理测速延迟或传输速度。倍率只是机场服务商在后台计费系统中设置的流量扣除系数。例如:使用 1.0x 倍率节点消耗 1GB 实际流量就扣除 1GB 订阅额度;使用 0.1x 倍率节点消耗 1GB 仅扣除 100MB 额度(适合下载大文件);而 5.0x 高倍率节点通常代表采用了昂贵的原生 IP 或顶级 IPLC 专线。节点的测速延迟完全取决于其物理中转线路和机房路由,与名称中的倍率数值毫无因果关系。

Q21:Shadowrocket 提示“Address In Use”错误并超时是什么原因?#

Address In Use(地址或端口已被占用,错误码 EADDRINUSE)意味着小火箭尝试监听的本地 SOCKS5 或 HTTP 代理端口(默认端口通常为 10861082)已经被手机上的其他代理软件、网络调试工具或未彻底退出的系统后台进程强行占用。当小火箭无法绑定本地端口时,其代理引擎无法正常启动,发起的任何测速与上网请求都会失败。解决方法:打开小火箭“设置” -> “本地代理”,将 SOCKS5 监听端口修改为一个冷门未被占用的端口(如 208610555),保存后重启小火箭即可。

Q22:为什么在局域网内使用软路由代理,手机小火箭测速全部 Timeout -1?#

如果你将节点或代理服务部署在家庭软路由(如 OpenWrt、PassWall)或局域网自建服务器上,手机小火箭需要访问局域网 IP(如 192.168.1.110.0.0.2)。从 iOS 14 开始,苹果引入了严格的“本地网络”(Local Network)隐私权限。如果小火箭没有被赋予本地网络访问权限,iOS 沙盒会在应用发起对内网 IP 的 TCP 握手时直接进行拦截,在小火箭中瞬间返回 Timeout -1。解决方案:打开 iPhone “设置” -> “隐私与安全性” -> “本地网络”,找到 Shadowrocket 并开启允许开关。

Q23:支持 ShadowsocksR (SSR) 协议的节点为什么在小火箭里频繁超时?#

ShadowsocksR (SSR) 是一种诞生于十多年前的早期代理协议,其基于混淆(obfs)和协议演进的特征头早已被现代 GFW 的深度包检测(DPI)与机器学习模型高度识别。在 2026 年的网络环境下,运营商的骨干网防火墙能够在毫秒级内精准识别出 SSR 协议的数据包特征,并对其入口 IP 和端口实施实时阻断或随机丢包,导致 SSR 节点频繁出现测速超时和断连。强烈建议弃用 SSR 协议,全面迁移至具备强隐蔽性的 VLESS-REALITY、Shadowsocks-2022 或 Hysteria 2 协议。

Q24:小火箭的“ICMP 延迟测试”和“TCP 延迟测试”在哪里切换?#

在 Shadowrocket 主界面右下角点击“设置”,选择“延迟测试”。在该页面中,你可以看到“测试方法”(Test Method)选项。小火箭提供了 HTTPTCPICMP 三种测试模式。需要指出的是,由于 iOS 系统的沙盒机制限制,在未越狱的 iPhone 上选用 ICMP 模式时,小火箭在底层往往会自动退化(Fallback)为 TCP 建连测试。建议将测试方法保持为默认的 HTTP 模式,因为 HTTP 204 模式才能最真实地反映节点经由加密解密后打开网页的连通性。

Q25:节点配置里的 SNI (Server Name Indication) 填错了会怎样?#

SNI(服务器名称指示)是在 TLS 握手阶段由客户端发送给服务端的域名标头,用于告知服务器客户端希望连接哪个具体的 TLS 站点。在 VLESS-REALITY、Trojan 或 VMess+TLS 节点中,如果 SNI 填写错误(例如将真实的伪装域名 microsoft.com 误写为 google.com),目标服务端在收到 TLS Client Hello 时,会因为域名不匹配而终止握手并发送 TCP RST 报文,导致小火箭在测速时瞬间抛出 Timeout -1。必须确保 SNI 与机场节点提供的配置要求完全一致。

Q26:如何使用小火箭的“诊断”功能排查超时?#

小火箭内置了功能完备的网络诊断任务工具。进入“设置” -> “诊断”,在“诊断任务”中点击右上角的加号或直接输入测试目标域名(如 www.google.com)。点击开始诊断后,小火箭会逐步执行四项独立测试:1. 本地 DNS 解析测试;2. 节点服务器 TCP 建连测试;3. TLS 握手测试;4. 应用层 HTTP 请求响应测试。诊断工具会用文字清晰标注出请求是在“DNS 解析”、“TCP 建连”还是“HTTP 响应”阶段抛出了 Timeout 异常,从而帮助你精准锁定故障环节。

Q27:小火箭的 UDP 转发开关未开启,会导致测速超时吗?#

对于常规的 Shadowsocks、VMess、VLESS 等基于 TCP 协议的节点,小火箭默认的 HTTP 204 测速走的是 TCP 隧道,因此未开启 UDP 转发完全不会影响这些节点的测速。但是,如果你使用的是 Hysteria 2、TUIC 或 QUIC 这类原生基于 UDP 协议的加密节点,或者你将小火箭的测速模式设为了依赖 UDP 的特定探针,未在节点设置中开启 UDP 转发(UDP Relay)会导致 UDP 数据包在本地 TUN 网卡处被抛弃,从而导致节点测速出现持续的 Timeout 无响应。

Q28:使用自建节点,为什么用 IP 连接正常,改用域名就超时?#

用纯 IP 连接正常说明你的自建节点服务器物理线路、端口和代理内核完全正常;改用域名后超时,根源 100% 在于域名解析或 CDN 配置:第一,域名的 DNS A 记录尚未完全生效,或者域名遭受了国内 DNS 污染;第二,你为域名开启了 Cloudflare 的“小黄橘云朵”(开启了 CDN 代理),但你的节点服务端配置的只是纯 TCP 模式而非 WebSocket/gRPC 模式,Cloudflare CDN 无法识别纯 TCP 流量从而切断了连接;第三,域名绑定的 TLS 证书域名与你的实际域名不符。

Q29:小火箭订阅设置里的“自动更新订阅”会导致测速超时吗?#

在某些特定网络状况下可能会产生负面影响。如果在后台触发“自动更新订阅”时,你所在的网络环境正好极其恶劣或者处于断网边缘,小火箭尝试拉取订阅失败可能会导致节点列表损坏、配置覆盖缺失或节点全部变为无效状态,进而在后续测速时引发全盘超时。建议在小火箭“设置” -> “订阅”中,将更新策略设置为“打开 App 时自动更新”,或者关闭自动更新开关,改为每周手动向左滑动订阅条目点按“更新”。

Q30:节点测速结果里的“HTTP 状态码 403”代表什么?#

在小火箭测速列表中,如果节点没有显示 Timeout,而是显示了 HTTP 403403 Forbidden,这代表网络物理层与代理 TLS 隧道是 100% 畅通的。403 报错的原因是:代理节点成功将你的 HTTP 204 探针请求发送到了测试目标服务器(或机场的前端中继服务器),但目标服务器鉴于安全策略(如检测到该 IP 属于机房数据中心 IP,或者该测速 URL 被机场规则禁止访问)主动拒绝了请求并返回了 403 拒绝代码。此时节点实际上是可用的,尝试修改测速 URL 即可恢复正常显示。

Q31:使用苹果 M 芯片的 Mac 运行 iPad 版 Shadowrocket,测速超时怎么处理?#

在 macOS 上运行 iOS/iPad 版小火箭时,由于 macOS 本身具备独立的网络架构和系统防火墙,容易发生冲突。解决方法:1. 打开 macOS 的“系统设置” -> “网络” -> “防火墙”,确保未将 Shadowrocket App 设为阻断;2. 进入 macOS “系统设置” -> “网络” -> “VPN 与过滤器”,检查小火箭的网卡扩展是否获得许可;3. 在 Mac 上的小火箭设置中,将“监听地址”修改为 0.0.0.0,并开启“允许局域网连接”;4. 若依然超时,建议在 Mac 上改用专门为 macOS 打磨的 Clash Verge Rev 或 Surge Mac 客户端。

Q32:机场节点显示“过期”或“流量已用尽”,测速也会超时吗?#

是的。绝大多数现代机场服务商的后端节点都部署了基于数据库的动态认证中间件(如 Shadow-TLS 认证或 V2Ray 用户鉴权模块)。当你在机场的套餐已到期、或者当月订阅流量消耗完毕时,机场前端接入层服务器在收到小火箭发送的代理握手请求后,会在鉴权阶段直接切断 TCP 连接或拒绝返回数据。在小火箭客户端界面上,就会直接表现为批量测速返回 Timeout 或 Timeout -1。请先登录机场官网后台检查套餐账户状态。

Q33:为什么公共免费节点(如 GitHub 抓取的节点)99% 都是超时?#

互联网上公开分享的免费节点(如各种 GitHub 每日更新节点列表)极其容易产生批量超时,原因有三:1. IP 被快速封锁:免费节点的 IP 与端口处于完全公开状态,会被防火墙自动化扫描工具在数小时内精准封杀;2. 并发压垮服务器:成千上万的用户同时导入该节点,极易将目标服务器的 CPU、内存和网络带宽瞬时拉爆导致宕机;3. 失效节点未及时清除:免费订阅源通常使用自动抓取脚本,其中混杂了大量早就停机的死节点。真正稳定不超时的科学上网体验必须依赖优质的自建节点或专业机场。

Q34:小火箭的“分流策略”配置错误会导致测速超时吗?#

会。小火箭的分流规则(Rule)用于决定数据包是走 DIRECT(直连)、PROXY(代理)还是 REJECT(拒绝)。如果你在自定义规则段中误加入了一条拦截规则(例如 DOMAIN-KEYWORD, generate_204, REJECT),小火箭的规则引擎会在本地直接把发往测速 URL 的所有探针数据包干掉。由于请求根本没有发出,系统就会持续等待直到触发 Timeout。请检查规则列表中是否存在误拦截测速域名的条目。

Q35:如何彻底清空小火箭的缓存以解决莫名其妙的超时?#

当小火箭经过多次配置修改后出现难以排查的莫名超时,可以进行深度重置:1. 在小火箭首页将所有订阅链接复制保存到备忘录;2. 进入小火箭“设置” -> 向上滑动找到“重置所有设置”(Reset All Settings)并确认;3. 在 iPhone “设置” -> “通用” -> “iPhone 存储空间”中找到 Shadowrocket,点击“卸载 App”(保留数据)后重新在 App Store 下载安装;4. 重新导入订阅链接并更新节点。彻底清除残留缓存后,超时故障通常会被一扫而空。

Q36:小火箭中“ allow-insecure = true ”选项是什么意思?会有安全风险吗?#

allow-insecure = true(允许不安全证书)的作用是命令小火箭在建立 TLS 加密握手时,跳过对目标服务器 SSL/TLS 证书合法性、域名匹配度以及过期时间的严格校验。开启此选项可以解决自建节点使用自签名证书、或证书过期引发的 Timeout -1 报错。但其安全风险在于:如果物理传输通道中存在中间人攻击(MITM 劫持),小火箭将无法识别假证书,你的加密流量有可能被中间人解密窃听。因此,仅建议在测试自建节点时临时开启,生产环境下应使用合法证书并保持该开关关闭。

Q37:为什么连上小火箭后,微信能发消息,但节点测速全部 Timeout?#

这是因为微信、QQ 等国内常用 App 的数据流量命中你了小火箭配置中的 DIRECT(直连)分流规则,或者直接使用的是国内 IP 地址进行通信,流量根本不需要经过小火箭的代理节点即可直达腾讯服务器。而节点测速探针必须通过代理节点转发到境外测速目标。微信能发消息仅证明你的手机物理宽带/5G 网络正常,节点测速全盘 Timeout 则说明代理节点本身、代理 TLS 隧道或远端跨境主干线路处于中断状态。

Q38:什么是 TLS 1.3 握手?为什么老旧节点在 iOS 18 小火箭上测速 Timeout -1?#

TLS 1.3 是最新的传输层安全协议规范,相较于老旧的 TLS 1.2/1.0,其将握手轮询次数由 2-RTT 缩短至 1-RTT,并彻底废弃了不安全的加密算法。iOS 18 及其配套的新版 Shadowrocket 内核强化了对于现代密码套件的安全审计。如果老旧节点服务器部署的是几年前的协议版本(如使用了废弃的 RC4、3DES 加密,或者不支持 SNI 扩展),iOS 18 协议栈出于系统安全考量,会在发起 TLS 客户端握手时主动拒绝建立连接,小火箭界面瞬间抛出 Timeout -1 错误代码。解决方法是升级节点服务端内核至最新版本。

Q39:蜂窝网络 APN 设置会导致小火箭测速超时吗?#

会。某些移动虚拟运营商(MVNO)或特定地区的运营商 APN(接入点名称,如中国移动的 cmnetcmwap)在处理 UDP 流量或 IPv6 数据栈时存在策略差异。如果 APN 被误设置为仅 IPv4 模式,或者开启了严格的协议代理过滤,小火箭在 5G 数据网络下建立代理隧道时极易遭到运营商网关的报文丢弃,造成测速超时。可在 iPhone “设置” -> “蜂窝网络” -> “蜂窝数据网络”中,点击“还原设置”恢复默认的官方 APN 配置。

Q40:小火箭首页顶部显示的“连通性测试”和具体节点测速有什么区别?#

小火箭首页最顶部的“连通性测试”(Connectivity Test)测试的是当前打勾生效的那一个唯一节点与测试目标之间的连通状态,其结果决定了小火箭图标旁是否显示绿色的连通毫秒数;而节点列表中每个节点下方的测速,是对订阅列表里的所有节点进行批量并发探针扫描。在进行排查时,应以首页顶部的连通性测试结果为准,因为批量测速可能会受到并发数过多导致的瞬时超时干扰。

Q41:如何避免小火箭在后台运行时因测速耗尽手机电量?#

批量节点测速会短时间内建立几十上百个并发 TCP/TLS 套接字,极大消耗 CPU 加密芯片与蜂窝天线电量。要避免电量无谓消耗:1. 进入小火箭“设置” -> “延迟测试”,关闭“按时间间隔自动测试”;2. 将“测试并发数”(Concurrency)从默认的高数值调低至 510;3. 不要在节点列表有数百个节点时频繁点击批量测速,仅对当前常用的几个节点进行单独测速。

Q42:单节点配置里的 Mux (多路复用) 开启后反而测速 Timeout 怎么办?#

Mux(Multiplexing,多路复用)技术旨在将多条 TCP 请求复用到一条加密隧道中传输,以减少握手延迟。然而,如果机场服务端的 Xray/V2Ray 内核版本过老、或者服务器的 Linux 操作系统内核未开启足够的并发 Socket 句柄,当小火箭发起批量测速探针时,Mux 隧道内部会产生严重的子流拥堵或并发溢出,导致服务端直接切断主隧道,造成节点测速瞬间 Timeout。如果开启 Mux 后频繁超时,请在节点编辑界面将 Mux 开关关闭。

Q43:在国外旅游/出差时,使用小火箭测速也全部 Timeout 是为什么?#

当身处国外(如美国、日本)直接连接当地宽带或 5G 时,如果你的小火箭里配置的是国内中转节点(例如入口 IP 在广州或上海的 IPLC 专线节点),你的网络请求需要先跨越太平洋倒流回中国国内的中转机房,再由中转机房发送给落地服务器。由于中国国际出口防火墙(GFW)对双向流量的拦截策略,以及海外 ISP 到国内中转 IP 的路由阻断,这种“倒流”请求 99% 会在入境环节被阻断,导致测速全红超时。在国外使用时,应选择境外直连节点(Direct Node)或直接关闭小火箭代理。

Q44:如何判断超时是由于 iPhone 硬件或无线网卡故障引起的?#

要排除 iPhone 本身无线天线或系统网络栈的硬件级故障,可以采用“交叉验证法”:用另一台手机开启移动热点,让你的 iPhone 连接该热点后再进行小火箭测速。如果连接热点后测速瞬间恢复绿色正常,说明是你家里的 WiFi 路由器、光猫 DNS 或宽带运营商拦截了代理流量;如果更换了多个完全不同的网络(如 WiFi、5G、热点)后小火箭依然全盘超时,且 Safari 连普通百度网页都打不开,则可能是 iPhone 无线网卡硬件故障或 iOS 系统网络组件损坏,建议重置系统网络设置。

Q45:2026 年最推荐的超稳定抗超时代理协议是什么?#

站在 2026 年的时间节点,面对日益智能化的 GFW 深度包检测与运营商 QOS 策略,最推荐且抗超时表现最稳健的代理协议组合为:

  1. VLESS + REALITY 协议:TCP 领域的绝对霸主。通过借用真实大厂(如 Apple、Microsoft)的 TLS 证书进行端到端加密,完全消除了传统代理的 SNI 与证书特征,抗封锁能力顶尖,TCP 测速超时率低于 3%。
  2. Hysteria 2 协议:UDP 领域的极速之王。基于自定义 QUIC 协议与 Brutal 拥塞控制算法,专为高丢包、恶劣网络打造。配合端口跳跃(Port Hopping)功能,能够完美穿透运营商的 UDP 封锁,在恶劣移动网络下依然保持极低的测速超时率。

12. 总结与最佳维护实践#

Shadowrocket 测速超时与 Timeout -1 无响应是 iOS 用户在使用代理服务时最常遇到、但也是最容易通过逻辑排查解决的技术问题。总结而言,面对测速超时,切忌盲目更换软件或频繁重装,请牢记以下“五步维护法则”:

  1. 先看报错代码:区分 Timeout -1(时间/权限/TLS 报错)与 Timeout >5000ms(线路/GFW/宕机报错)。
  2. 校验基础环境:确保 iPhone 系统时间开启“自动设置”,检查无线局域网与蜂窝数据权限处于开启状态。
  3. 优化测试 URL:将小火箭延迟测试 URL 修改为 Cloudflare 或 Google 204 高可用探针,排除测试目标污染。
  4. 保持订阅最新:定期向左滑动更新订阅,确保节点 IP、端口与 TLS 密匙与机场服务端同步。
  5. 合理选用协议:优先部署 VLESS-REALITY 与 Hysteria 2 协议,并在 UDP 高丢包网络下开启端口跳跃与降级 MTU。

通过本文提供的技术剖析、配置修饰与决策树排查指南,你将能够轻松定位任何小火箭测速异常,恢复极其流畅高效的科学上网体验。

Shadowrocket测速超时怎么办?超时-1与延迟无响应排查
https://jichangfan.com/posts/shadowrocket-jiedian-chaoshi-jiejue/
作者
机场翻
发布于
2024-04-11
许可协议
CC BY-NC-SA 4.0