1. 传统单订阅痛点 vs Provider 解耦模型
传统客户端直接将机场下发的订阅文件作为主配置(Profile)使用,存在致命缺陷:
- 一旦用户购买了多家机场的套餐进行互备,旧架构完全无法直接将两家机场的节点混编进同一个自动测速策略组;
- 每次点击「更新订阅」,机场官方推送的规则会强行洗刷覆盖用户自己辛辛苦苦编写的内网直连或去广告规则。
**Proxy-Providers 彻底解决了多源管理难题**:
你可以将「光速云专线」、「飞猫云备用」分别定义为两个独立的 Provider。主配置中的策略组只需声明 `use: [provider_a, provider_b]`,即可实现多机场节点的跨源聚合与自动化主备故障切换!
💡 在机场维护跑路或网络中断时,多 Provider 架构能提供企业级的无感容灾保障。
2. 标准定义模板与 health-check 探活规范
在 `config.yaml` 的 `proxy-providers` 根节点下声明远程订阅源:
yaml
proxy-providers:
# 机场 A: 主力 IPLC 专线
airport-primary:
type: http
url: "https://subscribe.example.com/api/v1/client/subscribe?token=SecTokenA"
path: ./profiles/proxies/airport-primary.yaml
interval: 86400 # 每 24 小时自动更新一次订阅
health-check:
enable: true
url: "https://www.gstatic.com/generate_204"
interval: 300 # 每 5 分钟在后台探活一次
timeout: 5000 # 5秒无响应标记为离线
lazy: true # 仅在策略组被激活时才发起探活(节约电量与流量)
# 机场 B: 应急备用线路
airport-backup:
type: http
url: "https://subscribe.backup.com/sub?token=SecTokenB"
path: ./profiles/proxies/airport-backup.yaml
interval: 86400
health-check:
enable: true
url: "https://www.gstatic.com/generate_204"
interval: 300
lazy: true 3. 正则表达式筛选(filter)与剔除(exclude-filter)
很多机场订阅中夹杂了「官网提示」、「剩余流量」、「过期时间」等根本无法建立网络连接的公告节点,或者包含大量你从不需要的高延迟小众国家节点。
通过在 Provider 中配置正则表达式,可以让内核在载入阶段直接过滤这些废节点:
- **`filter`**:仅保留匹配正则的节点名称;
- **`exclude-filter`**:强制剔除匹配正则的节点。
yaml
# 仅提取香港和日本节点,同时剔除包含官网提示与剩余流量的无效条目
proxy-providers:
my-provider:
type: http
url: "https://example.com/sub"
path: ./proxies.yaml
interval: 86400
filter: "(?i)香港|HK|Hong Kong|日本|JP|Tokyo"
exclude-filter: "(?i)官网|剩余|到期|通知|群|重置" 4. 策略组中动态引用(use 指令)实战
定义好 proxy-providers 后,在策略组中通过 `use` 关键字动态调用:
yaml
proxy-groups:
# 自动选择延迟最低的香港专线(跨两家机场自动优选)
- name: "🇭🇰 聚合-香港全自动"
type: url-test
use:
- airport-primary
- airport-backup
# 策略组级别二次过滤(仅保留该策略组需要的区域)
filter: "(?i)香港|HK"
url: "https://www.gstatic.com/generate_204"
interval: 300
tolerance: 50
# 总代理出口
- name: "PROXY"
type: select
proxies:
- "🇭🇰 聚合-香港全自动"
- DIRECT ❓ 常见疑问与排查步骤
proxy-providers 和 proxies 字段可以同时存在吗?
完全可以。可以在 proxies 中放几台自己的自建 VPS,在 proxy-providers 中引入购买的机场订阅,然后在策略组中通过 `proxies:` 和 `use:` 混合编排。
lazy: true 参数的作用是什么?
表示懒惰探测。如果某个策略组当前没有任何实际流量在使用,内核就不会定期发起 HTTP 探测请求,能显著降低路由器 CPU 负担与节点无谓的流量消耗。
为什么更新订阅后新节点没有在 UI 界面出现?
检查是否配置了 `filter` 正则导致新节点被误过滤,或者在 Web UI 界面手动点击一下 Provider 右侧的刷新图标重新加载。