带故障转移的自动选路(推荐)

在 Shadowrocket(小火箭)中实现按延迟自动选路(URL Test),可以让客户端自动测试节点延迟,并始终选择延迟最低的节点使用,以下是详细配置方法:

通过图形界面配置

创建策略组

  1. 打开 Shadowrocket → 配置 → 选择当前使用的配置文件 → 编辑配置
  2. 点击 添加策略组(或编辑现有策略组)
  3. 名称:自定义(如 Auto-Select自动选择
  4. 类型:选择 URL 测试(URL-Test)
  5. 策略:勾选需要参与测试的节点(建议选择同类型、质量相近的节点)

设置测试参数

  • 测试 URL:推荐使用以下地址之一

    • http://www.gstatic.com/generate_204(Google,国内环境可能不稳定)
    • http://cp.cloudflare.com/generate_204(Cloudflare,推荐)
    • http://www.google.com/generate_204
  • 间隔:测试间隔时间(秒),建议 300-600(5-10分钟)

    • 注意:不要太短(如<60秒),频繁探测可能触发风控
  • 容差(Tolerance):防止频繁切换的缓冲值(毫秒)

    • 建议设置 50-100,表示新节点必须比当前节点快超过此值才会切换

应用策略组

  • 规则 中,将需要代理的流量指向该策略组(如 Auto-Select
  • 或在 全局路由代理 中选择该策略组

手动编辑配置(文本模式)

在配置文件中添加:

[Proxy Group]
Auto-Select = url-test, 节点1, 节点2, 节点3, 节点4, url=http://cp.cloudflare.com/generate_204, interval=300, tolerance=50
Auto-Failover = fallback, 节点1, 节点2, 节点3, url=http://cp.cloudflare.com/generate_204, interval=300

参数说明:

  • url-test:按延迟自动选择最低延迟节点
  • fallback:故障转移(按顺序选择第一个可用节点,不比较延迟)
  • interval:测试间隔(秒)
  • tolerance:容差,防止抖动导致频繁切换

进阶配置建议

分层策略(推荐架构)

规则匹配 → 地区策略组 → 自动选择组 → 具体节点
示例:
香港自动 = url-test, 香港1, 香港2, 香港3, url=..., interval=300
美国自动 = url-test, 美国1, 美国2, 美国3, url=..., interval=300
自动选择 = select, 香港自动, 美国自动, 日本自动, 手动选择

混合策略(自动+故障转移)

[Proxy Group]
Auto-Best = url-test, 节点A, 节点B, 节点C, url=http://cp.cloudflare.com/generate_204, interval=300, tolerance=100
Final = fallback, Auto-Best, 直连, url=http://www.apple.com, interval=600

注意事项

  • 节点数量:建议每个 URL-Test 组不超过 5-8 个节点,过多会增加测试时间
  • 节点类型:不要将延迟差异过大的节点(如香港和美国)放在同一组,建议按地区分组
  • 测试 URL:如果主要访问国内资源,可改为 http://www.baidu.com;访问国外用 Cloudflare 或 Google
  • 省电考虑:iOS 后台运行时,过于频繁的测试会增加耗电

快捷操作

配置完成后,在主界面长按该策略组,可以:

  • 立即测试:手动触发一次延迟测试
  • 查看结果:看到每个节点的具体延迟数值

常见问题

Q: 为什么自动选择的节点延迟不是最低的? A: 检查是否设置了 tolerance(容差),以及上次测试时间是否过久(节点可能已失效)。

Q: 测试全部超时怎么办? A: 更换测试 URL,或检查节点是否真可用,建议配合 fallback 策略作为保底。

Q: 能否按下载速度而不是延迟选择? A: Shadowrocket 原生不支持基于速度的自动选择,只能基于延迟(TCP 握手时间)。

配置完成后,小火箭会自动在后台定期测试,始终为你选择当前网络环境下延迟最低的节点。

您可以还会对下面的文章感兴趣: