• Smart  policy 策略 / Smart 策略组是什么?
  • Smart  Policy 策略 / Smart 策略组怎么用?

1.设置 openclash 插件,如下图

  • 2.将现有配置文件中的 proxy-group 相关策略组 改为 smart 类型及其参数
  • 3. Smart 策略组范本参数解释
  • 4.尝鲜版配置范本

更多知识点

Smart  policy 策略 / Smart 策略组是什么?

“Smart” 策略 可以看作是 策略组类型 Load-balance的升级版。

它能将相同的 来源地址 和 目标地址 的请求分配给策略组内的同一个代理节点,缓存 10 分钟过期。

也会根据收集到数据,将不同的访问目标,更合理地分配到不同节点;更稳定,更智能。

根据LightGBM 模型自动选择节点的策略,它尝试根据节点质量和地区来优化网络连接。
Smart 策略组的核心是LightGBM 模型,OpenClash 默认启用了由OpenClash 作者提供的LightGBM 模型,
用户可以根据自己的需求调整参数或收集数据训练模型。
所以,建议在每个策略组中使用相同地区的节点,避免使用“自动智能”策略组,以免造成IP地址地区不稳定的情况。

什么是策略组/策略组类型?点击了解

Smart  Policy 策略 / Smart 策略组怎么用?

1.设置 openclash 插件,如下图

---> openclash 插件版本不低于 v0.46.120

---> 开启 Smart 内核 

---> 确认 clash 内核已切换至 “alpha-smart-g7c3be88” 或最新内核

---> 最后,一定记得点击“应用配置”

注意:只有启用smart 内核后

openclash 才会下载或者生成 所需的 “Model.bin” 和“ smart_weight_data.csv” 文件

 

2.将现有配置文件中的 proxy-group 相关策略组 改为 smart 类型及其参数

Smart 类型策略组范本

proxy-groups:
- name: Smart Group
  type: smart
  # policy-priority: <1 means lower priority, >1 means higher priority, the default is 1
  policy-priority: "Premium:0.9;SG:1.3" 
  # uselightgbm: use LightGBM model predict weight
  uselightgbm: false
  # collectdata: collect datas for model training
  collectdata: false
  # strategy: 'sticky-sessions' or 'round-robin', not support 'consistent-hashing'
  # the default is 'sticky-sessions' with more stable&smoothly nodes switch logic when datas collecting
  strategy: sticky-sessions

 

3. Smart 策略组范本参数解释

  • policy-priority: “Premium:0.9;SG:1.3” —-> “Premium:0.9”,筛选代理集中里包含 “Premium” 名称的节点,且优先级指数为 “0.9”;匹配代理集中里包含 “SG” 名称的节点,且优先级指数为 “1.3”;数值越低,则优先使用含有该“关键词”的节点。但个人建议,代理集只保留 常用地区/国家节点后,此字段可删除。
  • uselightgbm: false —-> “uselightgbm“是否使用 LightGBM 模型预测权重,“false”不使用此功能;建议开启
  • collectdata: false —-> “collectdata” 收集数据做AI模型训练,“false”不使用此功能;建议开启
  • strategy: sticky-sessions—-> “strategy” 设置是否把所有的请求分配给策略组内不同的代理节点。保持默认设置,即 “sticky-sessions” 即 将相同的 来源地址 和 目标地址 的请求分配给策略组内的同一个代理节点,缓存 10 分钟过期(更稳定,会根据收集到数据,将不同的访问目标,更合理地分配到不同节点)。 另外,如设置为“round-robin”,会把所有的请求分配给策略组内不同的代理节点。

 

4.尝鲜版配置范本

如果你在openclash中,已经成功使用了 proxy provider,在配置文件中找到 proxy-group ,按上述范本要求修改为smart策略参数并保存。

并按照上述教程, 设置 openclash 插件后,就能正常使用。

比如说,

proxy-groups:
- name: PROXY
  type: smart #修改类型为 smart
  uselightgbm: true
  collectdata: true 
  strategy: sticky-sessions

 

或者使用如下尝鲜版配置范本,先将clash订阅链接替换成 “只包含某个地区/国家节点” 机场 clash 订阅链接。

如何筛选机场节点:点击跳转 

##避免前期使用时,造成 IP地址地区不稳定的情况

 

尝鲜版配置文件范本

mixed-port: 7890
#---------------------------------------------------#
allow-lan: false
mode: Rule
log-level: silent
external-controller: 127.0.0.1:60000

# 节点配置文件统一存放在 ./profiles/proxies/ 目录中

proxy-providers:
# 从链接导入的配置文件(支持多个Clash 订阅链接)
 foo:
   type: http
   path: ./profiles/proxies/foo.yaml
   url: https://example-url (某个地区/国家节点 clash 订阅链接)
   interval: 3600
   health-check:
     enable: true
     url: http://www.gstatic.com/generate_204
     interval: 300

proxy-groups:
- name: PROXY
  type: smart
  include-all: true
  uselightgbm: true
  collectdata: true
  strategy: sticky-sessions

# clash-rules项目提供的规则集
rule-providers:
  reject:
    type: http
    behavior: domain
    url: "https://cdn.jsdelivr.net/gh/Loyalsoldier/clash-rules@release/reject.txt"
    path: ./ruleset/reject.yaml
    interval: 86400
  icloud:
    type: http
    behavior: domain
    url: "https://cdn.jsdelivr.net/gh/Loyalsoldier/clash-rules@release/icloud.txt"
    path: ./ruleset/icloud.yaml
    interval: 86400
  apple:
    type: http
    behavior: domain
    url: "https://cdn.jsdelivr.net/gh/Loyalsoldier/clash-rules@release/apple.txt"
    path: ./ruleset/apple.yaml
    interval: 86400
  google:
    type: http
    behavior: domain
    url: "https://cdn.jsdelivr.net/gh/Loyalsoldier/clash-rules@release/google.txt"
    path: ./ruleset/google.yaml
    interval: 86400
  proxy:
    type: http
    behavior: domain
    url: "https://cdn.jsdelivr.net/gh/Loyalsoldier/clash-rules@release/proxy.txt"
    path: ./ruleset/proxy.yaml
    interval: 86400
  direct:
    type: http
    behavior: domain
    url: "https://cdn.jsdelivr.net/gh/Loyalsoldier/clash-rules@release/direct.txt"
    path: ./ruleset/direct.yaml
    interval: 86400
  private:
    type: http
    behavior: domain
    url: "https://cdn.jsdelivr.net/gh/Loyalsoldier/clash-rules@release/private.txt"
    path: ./ruleset/private.yaml
    interval: 86400
  gfw:
    type: http
    behavior: domain
    url: "https://cdn.jsdelivr.net/gh/Loyalsoldier/clash-rules@release/gfw.txt"
    path: ./ruleset/gfw.yaml
    interval: 86400
  greatfire:
    type: http
    behavior: domain
    url: "https://cdn.jsdelivr.net/gh/Loyalsoldier/clash-rules@release/greatfire.txt"
    path: ./ruleset/greatfire.yaml
    interval: 86400
  tld-not-cn:
    type: http
    behavior: domain
    url: "https://cdn.jsdelivr.net/gh/Loyalsoldier/clash-rules@release/tld-not-cn.txt"
    path: ./ruleset/tld-not-cn.yaml
    interval: 86400
  telegramcidr:
    type: http
    behavior: ipcidr
    url: "https://cdn.jsdelivr.net/gh/Loyalsoldier/clash-rules@release/telegramcidr.txt"
    path: ./ruleset/telegramcidr.yaml
    interval: 86400
  cncidr:
    type: http
    behavior: ipcidr
    url: "https://cdn.jsdelivr.net/gh/Loyalsoldier/clash-rules@release/cncidr.txt"
    path: ./ruleset/cncidr.yaml
    interval: 86400
  lancidr:
     type: http
     behavior: ipcidr
     url: "https://cdn.jsdelivr.net/gh/Loyalsoldier/clash-rules@release/lancidr.txt"
     path: ./ruleset/lancidr.yaml
     interval: 86400

分流规则

rules:
  - PROCESS-NAME,xray,DIRECT
  - PROCESS-NAME,v2ray,DIRECT
  - PROCESS-NAME,naive,DIRECT
  - PROCESS-NAME,trojan,DIRECT
  - PROCESS-NAME,trojan-go,DIRECT
  - PROCESS-NAME,ss-local,DIRECT
  - PROCESS-NAME,privoxy,DIRECT
  - PROCESS-NAME,leaf,DIRECT
  - PROCESS-NAME,v2ray.exe,DIRECT
  - PROCESS-NAME,xray.exe,DIRECT
  - PROCESS-NAME,naive.exe,DIRECT
  - PROCESS-NAME,trojan.exe,DIRECT
  - PROCESS-NAME,trojan-go.exe,DIRECT
  - PROCESS-NAME,ss-local.exe,DIRECT
  - PROCESS-NAME,privoxy.exe,DIRECT
  - PROCESS-NAME,leaf.exe,DIRECT
  - PROCESS-NAME,Surge,DIRECT
  - PROCESS-NAME,Surge 2,DIRECT
  - PROCESS-NAME,Surge 3,DIRECT
  - PROCESS-NAME,Surge 4,DIRECT
  - PROCESS-NAME,Surge%202,DIRECT
  - PROCESS-NAME,Surge%203,DIRECT
  - PROCESS-NAME,Surge%204,DIRECT
  - PROCESS-NAME,Thunder,DIRECT
  - PROCESS-NAME,DownloadService,DIRECT
  - PROCESS-NAME,qBittorrent,DIRECT
  - PROCESS-NAME,Transmission,DIRECT
  - PROCESS-NAME,fdm,DIRECT
  - PROCESS-NAME,aria2c,DIRECT
  - PROCESS-NAME,Folx,DIRECT
  - PROCESS-NAME,NetTransport,DIRECT
  - PROCESS-NAME,uTorrent,DIRECT
  - PROCESS-NAME,WebTorrent,DIRECT
  - PROCESS-NAME,aria2c.exe,DIRECT
  - PROCESS-NAME,BitComet.exe,DIRECT
  - PROCESS-NAME,fdm.exe,DIRECT
  - PROCESS-NAME,NetTransport.exe,DIRECT
  - PROCESS-NAME,qbittorrent.exe,DIRECT
  - PROCESS-NAME,Thunder.exe,DIRECT
  - PROCESS-NAME,ThunderVIP.exe,DIRECT
  - PROCESS-NAME,transmission-daemon.exe,DIRECT
  - PROCESS-NAME,transmission-qt.exe,DIRECT
  - PROCESS-NAME,uTorrent.exe,DIRECT
  - PROCESS-NAME,WebTorrent.exe,DIRECT
  - DOMAIN,clash.razord.top,DIRECT
  - DOMAIN,yacd.haishan.me,DIRECT
  - RULE-SET,private,DIRECT
  - RULE-SET,reject,REJECT
  - RULE-SET,icloud,DIRECT
  - RULE-SET,apple,DIRECT
  - RULE-SET,google,DIRECT
  - RULE-SET,proxy,PROXY
  - RULE-SET,direct,DIRECT
  - RULE-SET,telegramcidr,PROXY
  - GEOIP,LAN,DIRECT
  - GEOIP,CN,DIRECT
  - MATCH,PROXY

更多知识点

1、 smart节点选择的逻辑基本都和surge描述的类似,策略组内针对每个顶级域名或者ip都会计算出一个最高权重的节点
2、前期会存在ip乱跳的情况,因为要收集样本数据,等样本数足够节点就会固定下来,所以不建议嵌套使用
3、建议在每个策略组中使用相同地区/国家的节点,避免使用“自动智能”策略组,以免造成IP地址地区不稳定的情况。
4、目前没有新增的参数,使用只需要把策略组类型修改为smart就行
5、只能改善连接质量,没法解决403等类似问题
6、策略组只负责选节点,不会涉及协议连接问题,除非连接失败会触发节点重新选择

-特别感谢大佬们的分享: 点击跳转