Skip to content
Go back

【归档文章】Clash 学习(三)进阶配置:在 Clash 中定时更新机场节点和导入外部规则

| 0 Views Edit page

关于小猫咪的学习笔记。

注:这篇文章是从旧的博客系统中迁移过来的、我觉得还存在价值的文章。但是由于时间关系,可能已经不再是最佳实践,请仅作参考。


1、定时更新机场节点

注意:定时更新机场节点配置中填入的链接,一定是要能被 Clash 正常读取的配置文件形式。​
不仅是类似原生 SSR 等的订阅链接无法被 Clash 正常读取,就连一般机场提供的加密的 Clash 订阅链接也不行,必须经过订阅转换为配置文件形式才能生效。

两种转换方法:
① 在线订阅地址转换
常用:品云订阅转换(部分地区被墙)
注;推荐这个只是因为我也在用,如果出问题一起当受害者…
② 自建订阅转换
项目:tindy2013/subconverter
使用 Docker 部署(官方文档:README-docker.md):

# 下载镜像
docker pull tindy2013/subconverter:latest
# 部署
docker run -d --restart=always -p 25500:25500 tindy2013/subconverter:latest
# 测试是否部署成功
curl http://localhost:25500/version

开放防火墙和安全组后在外部访问:http://IP:25500/sub?target=clash&url=https%3A%2F%2Fmojie.info%2Fapi%2Fv1%2Fclient%2Fsubscribe%3Ftoken%3D4fxxxxxxxxxxxxxxxxxxx4c6f6&insert=false 以获取转换完成的配置文件,简单地说明一下参数(官方详细文档:README-cn.md):

参数名解析样例
target指想要生成的配置类型。clash
url经过 URLEncode 处理后的订阅链接。https%3A%2F%2Fmojie.info%2…
insert用于设置是否将配置文件中的 insert_url 插入(意义不明,我的理解是是否引入其他外部节点)。false
...
...
# 代理提供商
proxy-providers:
  # 机场-魔戒所用订阅
  Mojie-sub:
    # 对订阅地址的访问方式
    type: http
    # 订阅地址
    url: "https://sub.id9.cc/sub?target=clash&url=https%3A%2F%2Fmojie.info%2Fapi%2Fv1%2Fclient%2Fsubscribe%3Ftoken%3D4fxxxxxxxxxxxxxxxxxxx4c6f6&insert=false"
    # 订阅后节点存放用的配置文件(不同机场需使用不同文件)
    path: ./sub/Mojie.yaml
    # 更新订阅间隔时间(秒)
    interval: 3600
    # 节点检查
    health-check:
      enable: true
      interval: 600
      url: http://www.gstatic.com/generate_204
...
...
# 节点组
proxy-groups:
  # 手动选择
  - name: 手动选择
    type: select
    proxies:
      - 奇异之旅
      - 魔戒
  # 机场-魔戒
  - name: 魔戒
    type: select
    # 注意:这里使用订阅的动作为 use
    use:
      - Mojie-sub
...
...

重启后,到控制台就能看见自动更新的节点了:
自动更新的节点

2、导入外部规则

大佬们写的规则基本都是适配大众需求的,例如流媒体等。小众规则还是自己动手吧!
推荐的外部规则开源项目:Loyalsoldier/clash-rules
参照格式:

...
...
# 规则提供商
rule-providers:
  # 规则集的名字
  google:
    # 对外部规则的访问方式
    type: http
    # 朴素规则(无查询优化)
    behavior: classical
    # 外部规则地址
    url: "https://cdn.jsdelivr.net/gh/Loyalsoldier/clash-rules@release/google.txt"
    # 规则文件存放路径
    path: ./ruleset/google.yaml
    # 更新规则间隔时间(秒)
    interval: 86400

# 规则
rules:
  ...
  ...
  # 使用外部规则,中间填规则集的名字
  - RULE-SET,google,奇异之旅
  # 境内站点
  - GEOIP,CN,直连
  # 境外站点
  - MATCH,奇异之旅

如果对 behavior 这个参数有困惑,你可以参考以下这个 Issue:请问用rule-providers时behavior如何选择? classical/ipcidr/domain 三者又有什么区别?

很可惜的是 OpenWrt 上的 Clash 暂时不支持 RULE-SET 规则,就不做具体演示了。 不支持

结束。


Edit page