基于负载均衡组的高可用架构设计与实现方案

导读:

  1. 前置准备
  2. 设置步骤
  3. 关键参数详解
  4. 负载均衡策略类型
  5. 完整配置示例
  6. 注意事项
  7. 验证设置

Shadowrocket 的负载均衡(Load Balance)功能可以将流量分散到多个代理节点,提升连接稳定性和速度,以下是详细设置指南:

前置准备

  • 多个可用节点:至少准备 2-3 个代理节点(支持相同或不同协议)
  • 配置文件编辑权限:需要手动编辑配置或使用托管配置

设置步骤

方法 1:通过配置文件编辑(推荐)

  1. 进入配置页面

    • 打开 Shadowrocket → 点击底部「配置」
    • 选择当前使用的配置文件 → 点击「编辑纯文本」
  2. 添加代理组[Proxy Group][Proxy] 章节添加:

    [Proxy Group]
    # 基础负载均衡(轮询)
    Auto-Select = load-balance, 节点1, 节点2, 节点3
    # 带健康检查的负载均衡
    LoadBalance = load-balance, 香港节点, 新加坡节点, 美国节点, url=http://www.gstatic.com/generate_204, interval=300, tolerance=100
  3. 引用代理组[Rule] 部分将流量指向该组:

    [Rule]
    FINAL,LoadBalance

方法 2:通过 GUI 界面设置(部分版本支持)

  1. 首页 → 点击右上角「+」→ 选择「类型」为 Load Balance
  2. 添加需要参与的节点
  3. 设置健康检查 URL 和间隔

关键参数详解

参数 说明 推荐值
url 健康检查地址 http://www.gstatic.com/generate_204http://cp.cloudflare.com/generate_204
interval 检查间隔(秒) 300-600
tolerance 延迟容忍度(毫秒) 50-150
timeout 超时时间(秒) 5

负载均衡策略类型

Shadowrocket 支持以下策略(在策略名称后添加):

  1. 轮询(Round Robin)round-robin - 依次使用每个节点

    LoadBalance = round-robin, 节点1, 节点2, 节点3
  2. 最少连接(Least Load)least-load - 自动选择延迟最低的节点

    LoadBalance = least-load, 节点1, 节点2, 节点3, url=...
  3. 随机(Random)random - 随机选择节点

    LoadBalance = random, 节点1, 节点2, 节点3
  4. 哈希(Hash)hash - 根据源地址哈希分配,保持同一网站使用同一节点

完整配置示例

[Proxy]
香港1 = ss, 1.1.1.1, 8388, password=xxx, method=aes-256-gcm
香港2 = ss, 2.2.2.2, 8388, password=xxx, method=aes-256-gcm
新加坡 = vmess, 3.3.3.3, 443, username=xxx, tls=true
[Proxy Group]Auto-Balance = load-balance, 香港1, 香港2, 新加坡, url=http://www.gstatic.com/generate_204, interval=300, tolerance=100
# 故障转移组(备用)
Fallback = fallback, 香港1, 香港2, 新加坡, url=http://www.gstatic.com/generate_204, interval=600
[Rule]
DOMAIN-SUFFIX,google.com,Auto-Balance
DOMAIN-KEYWORD,ad,REJECT
FINAL,Auto-Balance

注意事项

  1. 节点命名:确保节点名称与 [Proxy] 中定义的一致
  2. 健康检查:建议开启,自动剔除失效节点
  3. 延迟测试:设置 tolerance 避免频繁切换节点(建议 50-100ms)
  4. 兼容性:部分旧版本 Shadowrocket 可能不支持 least-load 策略,请确保 App 为最新版

验证设置

设置完成后:

  1. 返回首页,查看节点列表中是否出现负载均衡组
  2. 点击该组可查看当前选中的节点
  3. 在「统计」页面观察流量是否分散到多个节点

提示:如果某个节点经常掉线,建议调整 interval 缩短检查间隔,或从组中移除该节点。

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