clashX 自定义配置文件管理

date
Oct 14, 2022
slug
clashx-custom-configuration
status
Published
tags
Network
summary
机场订阅一般都包含必要的规则集, 但是实际使用中往往需要自定义一些规则. 直接在机场提供的规则中修改, 订阅更新时这些修改也会被覆盖. 好在还有一些方法可以对自定义配置进行分离管理
type
Post

概述

Clash 内核支持通过 proxy-providerrule-provider 从其他文件导入, 因此可以将机场提供的节点和自己的配置文件分别写入不同的文件, 在一个总的配置文件中引用它们, 这样就可以做到这些配置内容分别管理. 如果有多个机场订阅, 还可以通过这种方式将它们聚合.
注意: 仅 Premium 版本内核支持 rule-provider 特性.

配置

获取节点配置

首先从你的机场获取订阅链接, 并通过一些订阅转换工具转换为 rule-provider 格式, 示例如:
proxy-groups:
  - name: UseProvider
    type: select
    use:
      - test1
    proxies:
      - Proxy
      - DIRECT

proxy-providers:
  test1:
    type: http
    url: your-url
    interval: 3600
    path: ./test1.yaml
    health-check:
      enable: true
      interval: 600
      # lazy: true
      url: http://www.gstatic.com/generate_204
我自己托管在 Vercel 上的订阅转换工具:
将机场提供的订阅链接复制到输入框内就可以自动实现转换, 非常方便.

获取规则配置

推荐一个开源的 Clash 规则集:
主页有详细的使用说明和配置示例, 参照之即可. 这里补充一些说明:
  • 该规则集使用了三个策略组:
    • DIRECT
    • REJECT
    • PROXY
    • 前面两个是clash内核自带的策略组, 第三个则需要自己在 proxy-groups 中添加, 即 proxy-groups 字段中应该具备如下配置项:
      proxy-groups:
        - name: PROXY
          type: select
          use:
            - foo
            - bar
          proxies:
            - DIRECT
  • 该项目提供了白名单和黑名单两种处理未命中规则站点的方式并给出了配置示例:
    • 白名单: 没有命中规则的流量都走代理, 适合服务器流量充足且线路稳定的用户
    • 黑名单: 没有命中规则的流量都走直连, 适合服务器流量较少或者服务不太稳定的用户
  • 编写配置文件时需要注意 proxy-providers , proxy-groups 以及 rule-providers 三个字段匹配, 且注意 YAML 文件格式缩进等细节问题, 否则会解析出错

总结

ClashX 基于 Clash 内核, 上面的配置方法也可以用于其他平台上的 Clash.
将不同配置文件分离开有利于更新和管理的方便, 此外还可以达成聚合来自不同机场的订阅等目的, 非常实用.

参考

Clash 的功能和配置说明可以参考项目 Wiki 以及这个文档项目:

© Richard Wang 2021 - 2023