在 Shadowrocket(小火箭)中实现按延迟自动选路(URL Test),可以让客户端自动测试节点延迟,并始终选择延迟最低的节点使用,以下是详细配置方法:
通过图形界面配置
创建策略组
- 打开 Shadowrocket → 配置 → 选择当前使用的配置文件 → 编辑配置
- 点击 添加策略组(或编辑现有策略组)
- 名称:自定义(如
Auto-Select、自动选择) - 类型:选择 URL 测试(URL-Test)
- 策略:勾选需要参与测试的节点(建议选择同类型、质量相近的节点)
设置测试参数
-
测试 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 握手时间)。
配置完成后,小火箭会自动在后台定期测试,始终为你选择当前网络环境下延迟最低的节点。