我一直在用的wmsxwd抑或是一元机场,这些厂商自带的代理规则都太少,对于没匹配上规则的网站,只能要么全部走代理或者全部直连,搞得我经常要手动切换。所以我需要一个相对更加全面的规则列表,让该走代理的网站走代理,该直连的直连!!!

无意中翻到clash-rules这个每日更新代理规则的仓库,便拿来用之。

使用方式如下:

  1. 去机场厂商那里拿到订阅链接,注意有的厂商不会直接给订阅链接而是托管链接,并且会给你一个网站自己去转换成订阅链接

  2. 创建一个.yaml文件(文件名随便),不同的客户端可能配置文件位置不同,比如我是放在~/.config/clash目录下

  3. 编辑文件内容,其中一些配置用原来默认的就行,比如我的是

    mixed-port: 7890
    allow-lan: true
    bind-address: '*'
    mode: rule
    log-level: info
    external-controller: '127.0.0.1:9090'
    
  4. 配置proxy-providers配置,顾名思义,配置代理

    proxy-providers:
      CNIX: # 代理名称,自定义即可
        type: http # 以远程下载的方式获取代理
        url: "订阅链接" # 填写你的订阅链接
        path: ./cnix.yaml # 从订阅链接下载存到本地的cnix.yaml文件
        interval: 86400 # 更新间隔(s)
    
  5. 配置rule-providers,顾名思义,配置代理规则,同样以远程的方式获取,并定时更新,参考仓库的教程即可,比如加入一个名为google的远程规则(不知道为什么jsdelivr我经常访问不了,所以就直接不走这个cdn了):

    rule-providers:
      google:
        type: http
        behavior: domain
        url: "https://raw.githubusercontent.com/Loyalsoldier/clash-rules/release/google.txt"
        path: ./ruleset/google.yaml
        interval: 86400
    
  6. 配置proxy-groups,CNIX就是刚刚配置的proxy-providers,这里定义一个代理组去使用它

    proxy-groups:
      - name: PROXY
        type: select
        use:
          - CNIX
    
  7. 配置rules,将规则和代理组关联起来。除了PROXY以外,DIRECT和REJECT可视为默认的代理组,即直连和拒绝,其中拒绝网站通过查看reject.txt就能看到,包含一些广告网站或者人家的内部网站、垃圾网站等。想访问某个网站一直被拒而关掉clash后又能访问的话,可以看看是不是reject.txt的锅

    rules:
      - RULE-SET,applications,DIRECT
      - RULE-SET,private,DIRECT
      - RULE-SET,reject,REJECT
      - RULE-SET,icloud,DIRECT
      - RULE-SET,apple,DIRECT
      - RULE-SET,google,PROXY
      - RULE-SET,proxy,PROXY
      - RULE-SET,direct,DIRECT
      - RULE-SET,lancidr,DIRECT
      - RULE-SET,cncidr,DIRECT
      - RULE-SET,telegramcidr,PROXY
      - GEOIP,LAN,DIRECT
      - GEOIP,CN,DIRECT
      - MATCH,PROXY
    
  8. 最后重启一下clash,选择这个配置就行了

  9. 若后续更换了厂商,更换订阅链接之后要去把cnix.yaml手动删除,再重启clash,否则只有等到下一次interval(24小时)之后cnix.yaml才会自动更新

最后的最后,不知道为什么我配置完成后测速全部是马上失败的,但节点却能用….无语