一文搞懂clash配置文件,让你从零手搓构建自己的clash配置文件

参考文章:Mihomo配置wiki

官方完整配置文件:Github-Mihomo-config.yaml

Clash 是一款功能强大的网络代理工具,支持多种协议(如 Vmess、Trojan、Shadowsocks 等),并能灵活地通过规则实现分流、去广告、区域访问优化等功能。但是大部分人都是直接下载别人配置好的文件,直接使用。但是这样会导致没办法实现自定义配置,或者添加自己的节点节点后没办法使用。有时候是因为默认的配置文件分流规则不满意,也不知道如何进行配置。

这篇文章将带你一步步搞懂 Clash 配置文件,让你彻底掌握如何编写、修改和从零构建属于自己的 Clash 配置。

一、前提准备

本文以mihomo内核进行学习,抛弃传统的clash-gui客户端,能够更深层次的了解配置文件,因此需要去Github下载最新版本的mihomo内核

直接在命令行执行mihomo即可运行,注意先关闭你电脑的clash,或者将clash的默认端口修改为非7890端口,以免引起冲突

启动后会自动监听7890端口,此时将数据发完本地的7890端口是可以正常发送的,在没有任何配置的情况下,会默认全部走直连

下面就可以创建我们的配置文件,让其开启分流模式,使用-f 参数来导入配置文件

二、通用参数

clash的配置文件是使用yaml格式进行配置的,当然也让兼容其他语法,不过为了能够统一语法并且美观,因此自己构建的文件还是推荐使用yaml语法

port: 7890 # HTTP(S) 代理服务器端口
socks-port: 7891 # SOCKS5 代理端口
mixed-port: 10801 # HTTP(S) 和 SOCKS 代理混合端口
redir-port: 7892 # 透明代理端口,用于 Linux 和 MacOS
YAML

关于监听端口,没什么问题的话其实只需设置一个mixed-port混合端口就可以的了

allow-lan: true # 允许局域网连接
mode: rule # 选择代理的模式rule,global,direct
log-level: debug # 日志等级 silent/error/warning/info/debug
ipv6: true # 开启 IPv6 总开关,关闭阻断所有 IPv6 链接和屏蔽 DNS 请求 AAAA 记录
external-controller: :9090 # RESTful API 监听地址
# secret: "123456" # 设置RESTful API监听密码,在请求头加上`Authorization:Bearer ${secret}`
YAML
mixed-port: 7890
allow-lan: true
bind-address: "*"
mode: rule
log-level: info
external-controller: :9090
secret: 123456
YAML

三、添加节点

全部节点添加在proxies:列表下,并且每一个代理节点都使用-name分区

一个节点使用一个列表包含其全部信息

proxies:
- name: "direct"
  type: direct
  udp: true
  ip-version: ipv4
  interface-name: eth0
  routing-mark: 1234
YAML

这里直接可以参考Mihomo的官方文档

例如ss的:

- name: "ss1"
  type: ss
  server: server
  port: 443
  cipher: aes-128-gcm
  password: "password"
  udp: true
  udp-over-tcp: false
  udp-over-tcp-version: 2
  ip-version: ipv4
  plugin: obfs
  plugin-opts:
    mode: tls
  smux:
    enabled: false
YAML

详细参数解释官方文档说明得很清楚,这里不再叙述了

多个节点:

proxies:
  - name: "节点1"
    type: ss
    server: hk.example.com
    port: 443
    cipher: aes-128-gcm
    password: yourpassword
    udp: true
  
  - name: "节点2"
    type: vmess
    server: server
    port: 443
    uuid: uuid
    alterId: 32
    cipher: auto
    
  - name: "节点3"
    type: hysteria
    server: server.com
    port: 443
    auth-str: yourpassword
YAML

三、策略组

在 Clash 中,流量不会直接进节点,而是先流经“策略组”。每个策略组定义“如何选择节点”或“如何做出决策”。策略组的功能也可以让这些节点进行归类,以便后续进行精准分流,例如全部香港节点放一块,全日本节点放一块或者直接一个大混杂组。和节点组一样,也是使用一个列表表示全部策略组,

proxy-groups:
  - name: "代理组1"
    type: select
    proxies:
      - "节点1"
      - "节点2"
      - "DIRECT"
YAML

代理组是支持嵌套的,因此,代理组内的proxies不仅可以直接选择节点,还可以先发往其他代理组再进行二次分流

这个策略组是组最常用的,用于手动设置指定节点,通常用于直接选定要代理的节点,默认是选择第一个节点,因此排序的时候推荐将最健壮的节点放置第一位,并其将你的全部需要分类的节点放到proxies:里面。

- name: "香港节点"
  type: select
  proxies:
    - "香港1"
    - "香港2"
    - "DIRECT"
    
- name: "日本节点"
  type: select
  proxies:
    - "日本1"
    - "日本2"
    - "DIRECT"
YAML

自动测速通常是搭配自动选择使用的,代理组会通过对指定url进行测速来自动切换选择延迟最低的节点。

interval负责控制测速时间;tolerance用于自动切换时间,如果当前节点和测速后的最佳节点差异不超过50,则不进行节点切换

- name: "自动测速"
  type: url-test
  url: http://www.gstatic.com/generate_204
  interval: 300
  tolerance: 50
  proxies:
    - "节点1"
    - "节点2"
    - "节点3"
YAML

fallback通常是用于测试可达性,不考虑节点是否好用,自动选择第一个可用的节点,通常是用于大面积节点瘫痪的故障切换,保活用的

- name: "故障切换"
  type: fallback
  proxies:
    - "节点1"
    - "节点2"
    - "节点3"
  url: "https://cp.cloudflare.com/generate_204"
  interval: 300
YAML

负载均通过使用特定的算法进行筛选和调度各个节点,定期对代理进行速度测试进行调度,考虑每一个节点的负载和延迟情况自动分配选择的节点。可以设置散列和轮询两种方案

- name: "负载均衡"
  type: load-balance
  proxies:
    - "节点1"
    - "节点2"
    - "节点3"
  url: "https://cp.cloudflare.com/generate_204"
  interval: 300
YAML

顾名思义,节点会依次从上到下将数据发往对应的节点进行解析,隐蔽性比较高,比较少用

- name: "relay"
  type: relay
  proxies:
    - "节点1"
    - "节点2"
    - "节点3"
YAML

这里分享一下我使用的策略组,这样分类主要是为了让后续的分流规则匹配可以精确分流

proxy-groups:
  - name: 🚀 节点选择
    type: select
    proxies:
      - 节点1
      - 节点2
      - 节点3
      - ✅ 自动选择
      - ⚖️ 负载均衡
      - ⭕ 故障切换
      - DIRECT

  - name: ✅ 自动选择
    type: url-test
    url: http://www.gstatic.com/generate_204
    interval: 300
    tolerance: 50
    proxies:
      - 节点1
      - 节点2
      - 节点3

  - name: "⚖️ 负载均衡"
    type: load-balance
    strategy: consistent-hashing
    url: "https://cp.cloudflare.com/generate_204"
    interval: 300

    proxies:
      - "节点1"
      - "节点2"
      - "节点3"


  - name: ⭕ 故障切换
    type: fallback
    url: http://www.gstatic.com/generate_204
    interval: 300
    proxies:
      - 节点1
      - 节点2
      - 节点3

  - name: 🎯 全球直连
    type: select
    proxies:
      - DIRECT
      - 🚀 节点选择
      - ✅ 自动选择

  - name: 🧱 一堵高墙
    type: select
    proxies:
      - 🚀 节点选择
      - ✅ 自动选择
      - 🎯 全球直连

  - name: 🍎 苹果同步
    type: select
    proxies:
      - 🚀 节点选择
      - ✅ 自动选择
      - 🎯 全球直连
  
  - name: 🍎 苹果服务
    type: select
    proxies:
      - 🚀 节点选择
      - ✅ 自动选择
      - 🎯 全球直连

  - name: 🌏 境外服务
    type: select
    proxies:
      - 🚀 节点选择
      - ✅ 自动选择
      - 🎯 全球直连

  - name: 🏠 内网服务
    type: select
    proxies:
      - 🎯 全球直连
      - 🚀 节点选择
      - ✅ 自动选择

  - name: 🇨🇳 国内直连
    type: select
    proxies:
      - 🎯 全球直连
      - 🚀 节点选择
      - ✅ 自动选择

  - name: 📱 常用软件
    type: select
    proxies:
      - 🎯 全球直连
      - 🚀 节点选择
      - ✅ 自动选择

  - name: 📲 电报消息
    type: select
    proxies:
      - 🚀 节点选择
      - ✅ 自动选择
      - 🎯 全球直连

  - name: 🧿 谷歌服务
    type: select
    proxies:
      - 🚀 节点选择
      - ✅ 自动选择
      - 🎯 全球直连

  - name: 🐟 漏网之鱼
    type: select
    proxies:
      - 🚀 节点选择
      - ✅ 自动选择
      - 🎯 全球直连
YAML

接下来是对每一个策略组配置的分流规则了

四、匹配规则

在我们clash的代理进行访问的时候会先通过匹配规则来匹配特定的域名、IP来让其发往特定的策略组,策略组再选择发往指定的节点,从而达到分流的目的

使用rules:列表来分流,一行一个匹配规则,自上往下进行匹配,最顶部的优先级最高,当遇到第一个符合条件的规则就会停止匹配,因此需要将自定义规则或者优先级高的规则放到最前面

每一条匹配规则都包含这三个部分:类型,匹配内容,策略组

  • 类型:表示如何进行匹配,例如使用域名、ip、规则集匹配模式
  • 匹配内容:表示应该匹配哪些部分内容,例如特定ip、ip集、域名、泛域名,域名关键字等
  • 策略组:表示已匹配到的规则应该发往哪一个规则集
rules:
  - RULE-SET,rule1,REJECT
  - IP-ASN,1,PROXY
  - DOMAIN-REGEX,^abc,DIRECT
  - DOMAIN-SUFFIX,baidu.com,DIRECT
  - DOMAIN-KEYWORD,google,ss1
  - DOMAIN-WILDCARD,test.*.mihomo.com,ss1
  - IP-CIDR,1.1.1.1/32,ss1
  - IP-CIDR6,2409::/64,DIRECT
YAML

通过域名来匹配,当匹配到指定域名/域名前缀/关键词的时候进入该规则

用得最多的就应该是DOMAIN-SUFFIX了,指定特定域名的全部子域名

# a.com全部走直连,不包含*.a.com
 - DOMAIN,a.com,DIRECT
   
# *.baidu.com全部走直连
- DOMAIN-SUFFIX,baidu.com,DIRECT

# *.*.baidu.com全部走直连
- DOMAIN-SUFFIX,baidu.com,DIRECT

# *.google.com全部走代理
- DOMAIN-SUFFIX,google.com,PROXY
  
# 域名包含speedtest则走直连
- DOMAIN-KEYWORD,speedtest,DIRECT
YAML

这两个因为匹配效率和性能比较低,因此比较少用,但也说一下吧,

  • DOMAIN-REGEX:使用正则匹配来匹配域名,
  • DOMAIN-WILDCARD:通配符域名匹配,和DOMAIN-SUFFIX类似,但是更加精确匹配,只能使用一个通配符进行匹配
# 以abc开头的域名走直连
- DOMAIN-REGEX,^abc,DIRECT

# 匹配全部符合test.*.baidu.com的域名
- DOMAIN-WILDCARD,test.*.baidu.com,DIRECT
YAML

前面的都是使用域名匹配规则,但是对于直接使用ip进行访问的情况下还是需要ip的规则来进行匹配的,ip的匹配规则就比较简单了,直接使用CIDR的IP规则进行匹配就可以了。

对于IP-ASN,这个是使用ASN(自治系统编号)来进行匹配,这个比较少用,通常是直接引用外部ASN,很少自己添加

# 匹配1.1.1.1走代理
- IP-CIDR,1.1.1.1/32,PROXY

# 匹配114.114.114.114走直连
- IP-CIDR,114.114.114.114/32,DIRECT

# 匹配192.168.1.0/24回家
- IP-CIDR,192.168.1.0/24,HOME

# 中国电信下的的IP走直连
- IP-ASN,4837,DIRECT
# 中国电联通下的的IP走直连
- IP-ASN,4134,DIRECT
# Cloudflare下的IP走代理
- IP-ASN,45102,PROXY
YAML

规则集可以让我们引用远程规则集,在更新的时候会同步下载到本地,这样的好处就是可以让我们的配置文件更加简洁,并且可以使用一些经常更新的好用的规则集,达到精确匹配

使用规则集之前需要先创建rule-providers规则提供商列表

#远程规则集提供商
rule-providers:
 #规则集名字direct
  direct:
    type: http
    #规则集类型:域名
    behavior: domain
    url: "https://jsd.admincdn.com/gh/Loyalsoldier/clash-rules@release/direct.txt"
    path: ./ruleset/direct.yaml
    #更新时间
    interval: 86400
YAML
# 匹配到规则集cn内的ip
- RULE-SET,direct,DIRECT
YAML

MATCH规则比较特殊,它只能放在全部规则列表的最后一个,用于全部规则都没有匹配到最终流入到MATCH的兜底规则,只有两项:MATCH,规则集

通常MATCH的规则集就设置成两种形式:一种是直连,另一种是代理

# 未匹配到的流量走直连
- MATCH,DIRECT

# 未匹配到的流量走代理
- MATCH,你的策略代理组
YAML

完成以上这些配置其实就可以基本实现的分流和转发了,接下来的内容就要算是高级功能了

五、DNS加密与分流

一个好的DNS分流配置可以保证我们访问的域名不被泄露,特别是过GWF的时候不被发现需要访问的网站,并且实现国内外分流查询解析dns,实现最优dns查询

dns:
  enable: true # 使用dns内建服务,关闭则使用系统默认dns查询,不推荐,下列配置则会失效
  prefer-h3: true # 开启DoH 支持 HTTP/3,将并发尝试
  ipv6: true # 允许返回ipv6的dns记录
  
  # 默认dns解析,通常用于下载/更新配置时候使用,只支持纯ip或者dot-ip
  default-nameserver:
    - 223.5.5.5
    - 119.29.29.29
    - tls://223.5.5.5:853
YAML

nameserver为主dns,用于后续分流的国内的dns解析,支持ip、dot、doh

nameserver:
  - 223.5.5.5
  - 119.29.29.29
  - 114.114.114.114
  - tls://223.5.5.5:853
  - https://doh.pub/dns-query
  - https://dns.alidns.com/dns-query#h3=true #强制 HTTP/3请求,若不支持则无法使用
YAML

当主dns查询结果不为cn的时候使用fallback进行查询,通常用于访问国外域名的时候使用,推荐使用Doh进行查询,防止被DNS污染

fallback:
  - https://dns.google/dns-query
  - https://cloudflare-dns.com/dns-query
YAML

用处理于dns既不在主dns匹配又不属于国内外ip的情况

fallback-filter:
  geoip: true # 配置是否使用 geoip
  geoip-code: CN # 当 nameserver 域名的 IP 查询 geoip 库为 CN 时,不使用 fallback 中的 DNS 查询结果
  ipcidr: #特殊类别地址(私有地址)不使用fallback解析
    - 192.168.0.0/16
  domain: # 指定域名优先使用fallback解析dns
    - "+.google.com" # "+.google.com"代表google.com域名及其全部子域名
      
      
YAML

fake-ip可以让dns请求返回一个伪装的ip地址,主要是用于clash的透明代理模式tun使用。关于tun模式下一章会说明

enhanced-mode: fake-ip # or redir-host

fake-ip-range: 198.18.0.1/16 # fake-ip 池设置

# 配置不使用 fake-ip 的域名
fake-ip-filter:
  - '*.lan'
  - localhost.ptlogin2.qq.com
  - rule-set:fakeip-filter
  - geosite:fakeip-filter
# 配置fake-ip-filter的匹配模式,默认为blacklist,即如果匹配成功不返回fake-ip
fake-ip-filter-mode: blacklist #可设置为whitelist,即只有匹配成功才返回fake-ip
YAML
dns:
  enable: true
  prefer-h3: true
  ipv6: true

  default-nameserver:
    - 223.5.5.5
    - 119.29.29.29
    - 114.114.114.114

  nameserver:
    - 223.5.5.5
    - 119.29.29.29
    - 114.114.114.114
    - 
    
  fallback:
    - https://dot.pub/dns-query
    - https://dns.google/dns-query
    - https://cloudflare-dns.com/dns-query

  fallback-filter:
    geoip: true
    geoip-code: CN
    ipcidr:
      - 0.0.0.0/8
      - 10.0.0.0/8
      - 127.0.0.0/8
      - 169.254.0.0/16
      - 172.16.0.0/12
      - 192.168.0.0/16
      - 224.0.0.0/4
      - 240.0.0.0/4
    domain:
      - "+.google.com"
      - "+.youtube.com"
      - "+.facebook.com"
      - "+.twitter.com"
      - "+.telegram.org"
      - "+.reddit.com"
      - "+.spotify.com"
      - "+.openai.com"
      - "+.github.com"
      - "+.cloudflare.com"
      
  enhanced-mode: fake-ip
  fake-ip-range: 198.18.0.1/16
  fake-ip-filter:
    [
      "*.n.n.srv.nintendo.net",
      +.stun.playstation.net,
      xbox.*.*.microsoft.com,
      "*.msftncsi.com",
      "*.msftconnecttest.com",
      WORKGROUP,
      "*.lan",
      "*.local",
      "*.router",
      "*.localdomain",
      "*.home.arpa",
      "*.belkin",
      "*.tplinklogin.net",
      "*.tenda",
      stun.*.*,
      stun.*.*.*,
      +.stun.*.*,
      +.stun.*.*.*,
      +.stun.*.*.*.*,
      +.stun.*.*.*.*.*,
      time.windows.com,
      time.nist.gov,
      time.apple.com,
      time.asia.apple.com,
      "*.ntp.org.cn",
      "*.openwrt.pool.ntp.org",
      time1.cloud.tencent.com,
      time.ustc.edu.cn,
      pool.ntp.org,
      ntp.ubuntu.com,
      "*.*.xboxlive.com",
      speedtest.cros.wr.pvp.net,
    ]
YAML

六、TUN模式

TUN模式clash会在系统创建一个虚拟网卡(TUN 设备),所有流量先走这个网卡,然后交给 clash 处理,相当于透明代理模式。好处是可以不需要手动设置代理,并且可以让整个电脑的流量都经过clash;坏处是因为TUN模式本身的问题,其建立的虚拟网卡设备是在应用层的,没办法像wireguard等真正的VPN那样,在网络层接管流量,因此会导致ping的结果不准确

tun:
  enable: true #开启/关闭TUN模式
  stack: system
  dns-hijack:
    - any:53 #劫持本地dns
  auto-route: true #自动路由
  auto-detect-interface: true #自动识别出口网卡
  device-name: mihomo #TUN模式网卡名称
YAML

关于enhanced-mode增强模式的选择,fake-ip和redir-host的区别:

fake-ip会劫持dns请求,并且返回一个虚假ip,并在clash内部建立对应的ip映射关系,通过calsh再像外查询真实的dns,这样做的好处就是可以让全部TUN接管的DNS请求都可以被匹配,最大化捕获dns查询;但是缺点就是使用nslookup等功能进行dns查询的时候没办法得知实际的dns记录,并且有一些应用如果检测到fake-ip会触发安全检测

redir-host就和传统的路由dns请求差不多了,TUN的请求发完clash,clash在转发到上级dns查询,并在本地缓存一份,这样的好处就是软件兼容性好,但是并且不会返回虚假IP,但是透明代理场景下有可能匹配不到域名,并且无法精确控制规则走向

因此使用TUN模式下一般都是使用fake-ip模式比较多

tun:
  enable: true
  stack: system
  dns-hijack:
    - any:53
  auto-route: true
  auto-detect-interface: true
  device-name: mihomo
YAML

七、最后结合

通过上面不同章节对clash的配置进行拆解,相信你已经掌握了如何编写自己的clash.yaml文件了,那么我也发一下我使用的clash.yaml文件

mixed-port: 7890
allow-lan: true
bind-address: "*"
mode: rule
log-level: info
external-controller: :9090
secret: 123456

dns:
  enable: true
  prefer-h3: true
  ipv6: true

  default-nameserver:
    - 223.5.5.5
    - 119.29.29.29
    - 114.114.114.114

  nameserver:
    - 223.5.5.5
    - 119.29.29.29
    - 114.114.114.114
    - https://doh.pub/dns-query
    - https://dns.alidns.com/dns-query
    
  fallback:
    - https://dns.google/dns-query
    - https://cloudflare-dns.com/dns-query

  fallback-filter:
    geoip: true
    geoip-code: CN
    ipcidr:
      - 0.0.0.0/8
      - 10.0.0.0/8
      - 127.0.0.0/8
      - 169.254.0.0/16
      - 172.16.0.0/12
      - 192.168.0.0/16
      - 224.0.0.0/4
      - 240.0.0.0/4
    domain:
      - "+.google.com"
      - "+.youtube.com"
      - "+.facebook.com"
      - "+.twitter.com"
      - "+.telegram.org"
      - "+.reddit.com"
      - "+.spotify.com"
      - "+.openai.com"
      - "+.github.com"
      - "+.cloudflare.com"

  fake-ip-filter:
    [
      "*.n.n.srv.nintendo.net",
      +.stun.playstation.net,
      xbox.*.*.microsoft.com,
      "*.msftncsi.com",
      "*.msftconnecttest.com",
      WORKGROUP,
      "*.lan",
      "*.local",
      "*.router",
      "*.localdomain",
      "*.home.arpa",
      "*.belkin",
      "*.tplinklogin.net",
      "*.tenda",
      stun.*.*,
      stun.*.*.*,
      +.stun.*.*,
      +.stun.*.*.*,
      +.stun.*.*.*.*,
      +.stun.*.*.*.*.*,
      time.windows.com,
      time.nist.gov,
      time.apple.com,
      time.asia.apple.com,
      "*.ntp.org.cn",
      "*.openwrt.pool.ntp.org",
      time1.cloud.tencent.com,
      time.ustc.edu.cn,
      pool.ntp.org,
      ntp.ubuntu.com,
      "*.*.xboxlive.com",
      speedtest.cros.wr.pvp.net,
    ]

#节点添加
proxies:
  - name: "节点1"
    type: hysteria2
    server: server.com
    port: 443
    ports: 443-8443
    password: yourpassword
    up: "30 Mbps"
    down: "200 Mbps"
    sni: server.com
    skip-cert-verify: false
    alpn:
      - h3

  - name: "节点2"
    type: hysteria2
    server: server.com
    port: 443
    ports: 443-8443
    password: yourpassword
    up: "30 Mbps"
    down: "200 Mbps"
    sni: server.com
    skip-cert-verify: false
    alpn:
      - h3

  - name: "节点3"
    type: hysteria2
    server: server.com
    port: 443
    ports: 443-8443
    password: yourpassword
    up: "30 Mbps"
    down: "200 Mbps"
    sni: server.com
    skip-cert-verify: false
    alpn:
      - h3

proxy-groups:
  - name: 🚀 节点选择
    type: select
    proxies:
      - 节点1
      - 节点2
      - 节点3
      - ✅ 自动选择
      - ⚖️ 负载均衡
      - ⭕ 故障切换
      - DIRECT

  - name: ✅ 自动选择
    type: url-test
    url: http://www.gstatic.com/generate_204
    interval: 300
    tolerance: 50
    proxies:
      - 节点1
      - 节点2
      - 节点3

  - name: "⚖️ 负载均衡"
    type: load-balance
    strategy: consistent-hashing
    url: "https://cp.cloudflare.com/generate_204"
    interval: 300

    proxies:
      - "节点1"
      - "节点2"
      - "节点3"

  - name: ⭕ 故障切换
    type: fallback
    url: http://www.gstatic.com/generate_204
    interval: 300
    proxies:
      - 节点1
      - 节点2
      - 节点3

  - name: 🎯 全球直连
    type: select
    proxies:
      - DIRECT
      - 🚀 节点选择
      - ✅ 自动选择

  - name: 🧱 一堵高墙
    type: select
    proxies:
      - 🚀 节点选择
      - ✅ 自动选择
      - 🎯 全球直连

  - name: 🍎 苹果同步
    type: select
    proxies:
      - 🚀 节点选择
      - ✅ 自动选择
      - 🎯 全球直连
  
  - name: 🍎 苹果服务
    type: select
    proxies:
      - 🚀 节点选择
      - ✅ 自动选择
      - 🎯 全球直连

  - name: 🌏 境外服务
    type: select
    proxies:
      - 🚀 节点选择
      - ✅ 自动选择
      - 🎯 全球直连

  - name: 🏠 内网服务
    type: select
    proxies:
      - 🎯 全球直连
      - 🚀 节点选择
      - ✅ 自动选择

  - name: 🇨🇳 国内直连
    type: select
    proxies:
      - 🎯 全球直连
      - 🚀 节点选择
      - ✅ 自动选择

  - name: 📱 常用软件
    type: select
    proxies:
      - 🎯 全球直连
      - 🚀 节点选择
      - ✅ 自动选择

  - name: 📲 电报消息
    type: select
    proxies:
      - 🚀 节点选择
      - ✅ 自动选择
      - 🎯 全球直连

  - name: 🧿 谷歌服务
    type: select
    proxies:
      - 🚀 节点选择
      - ✅ 自动选择
      - 🎯 全球直连

  - name: 🐟 漏网之鱼
    type: select
    proxies:
      - 🚀 节点选择
      - ✅ 自动选择
      - 🎯 全球直连

rule-providers:
  icloud:
    type: http
    behavior: domain
    url: "https://jsd.admincdn.com/gh/Loyalsoldier/clash-rules@release/icloud.txt"
    path: ./ruleset/icloud.yaml
    interval: 86400

  apple:
    type: http
    behavior: domain
    url: "https://jsd.admincdn.com/gh/Loyalsoldier/clash-rules@release/apple.txt"
    path: ./ruleset/apple.yaml
    interval: 86400

  google:
    type: http
    behavior: domain
    url: "https://jsd.admincdn.com/gh/Loyalsoldier/clash-rules@release/google.txt"
    path: ./ruleset/google.yaml
    interval: 86400

  proxy:
    type: http
    behavior: domain
    url: "https://jsd.admincdn.com/gh/Loyalsoldier/clash-rules@release/proxy.txt"
    path: ./ruleset/proxy.yaml
    interval: 86400

  direct:
    type: http
    behavior: domain
    url: "https://jsd.admincdn.com/gh/Loyalsoldier/clash-rules@release/direct.txt"
    path: ./ruleset/direct.yaml
    interval: 86400

  private:
    type: http
    behavior: domain
    url: "https://jsd.admincdn.com/gh/Loyalsoldier/clash-rules@release/private.txt"
    path: ./ruleset/private.yaml
    interval: 86400

  gfw:
    type: http
    behavior: domain
    url: "https://jsd.admincdn.com/gh/Loyalsoldier/clash-rules@release/gfw.txt"
    path: ./ruleset/gfw.yaml
    interval: 86400

  tld-not-cn:
    type: http
    behavior: domain
    url: "https://jsd.admincdn.com/gh/Loyalsoldier/clash-rules@release/tld-not-cn.txt"
    path: ./ruleset/tld-not-cn.yaml
    interval: 86400

  telegramcidr:
    type: http
    behavior: ipcidr
    url: "https://jsd.admincdn.com/gh/Loyalsoldier/clash-rules@release/telegramcidr.txt"
    path: ./ruleset/telegramcidr.yaml
    interval: 86400

  cncidr:
    type: http
    behavior: ipcidr
    url: "https://jsd.admincdn.com/gh/Loyalsoldier/clash-rules@release/cncidr.txt"
    path: ./ruleset/cncidr.yaml
    interval: 86400

  lancidr:
    type: http
    behavior: ipcidr
    url: "https://jsd.admincdn.com/gh/Loyalsoldier/clash-rules@release/lancidr.txt"
    path: ./ruleset/lancidr.yaml
    interval: 86400

  applications:
    type: http
    behavior: classical
    url: "https://jsd.admincdn.com/gh/Loyalsoldier/clash-rules@release/applications.txt"
    path: ./ruleset/applications.yaml
    interval: 86400

rules:
  # 普通规则
  - RULE-SET,private,🏠 内网服务
  - RULE-SET,applications,📱 常用软件
  - RULE-SET,direct,🇨🇳 国内直连
  - RULE-SET,gfw,🧱 一堵高墙
  - RULE-SET,icloud,🍎 苹果同步
  - RULE-SET,apple,🍎 苹果服务
  - RULE-SET,google,🧿 谷歌服务
  - RULE-SET,proxy,🌏 境外服务
  # IP 地址规则
  - RULE-SET,telegramcidr,📲 电报消息
  - RULE-SET,lancidr,🏠 内网服务
  - RULE-SET,cncidr,🇨🇳 国内直连
  - GEOIP,LAN,🏠 内网服务
  - GEOIP,CN,🇨🇳 国内直连
  # 兜底规则
  - MATCH,🐟 漏网之鱼
YAML

将配置里面的节点和将策略组修改成你自己的节点即可直接套用

这里我使用的规则集全部都是在线规则集,这有利于每次更新都是使用最新的规则

八、Clash回家

我们可以在clash的配置文件添加上我们家里的clash节点,从而实现远程“回家”,直接添加一个节点、策略组和规则就可以实现了

mixed-port: 7890
allow-lan: true
bind-address: "*"
mode: rule
log-level: info
external-controller: :9090
secret: 123456

dns:
  enable: true
  prefer-h3: true
  ipv6: true

  default-nameserver:
    - 223.5.5.5
    - 119.29.29.29
    - 114.114.114.114

  nameserver:
    - 223.5.5.5
    - 119.29.29.29
    - 114.114.114.114
    - https://doh.pub/dns-query
    - https://dns.alidns.com/dns-query
    
  fallback:
    - https://dns.google/dns-query
    - https://cloudflare-dns.com/dns-query

  fallback-filter:
    geoip: true
    geoip-code: CN
    ipcidr:
      - 0.0.0.0/8
      - 10.0.0.0/8
      - 127.0.0.0/8
      - 169.254.0.0/16
      - 172.16.0.0/12
      - 192.168.0.0/16
      - 224.0.0.0/4
      - 240.0.0.0/4
    domain:
      - "+.google.com"
      - "+.youtube.com"
      - "+.facebook.com"
      - "+.twitter.com"
      - "+.telegram.org"
      - "+.reddit.com"
      - "+.spotify.com"
      - "+.openai.com"
      - "+.github.com"
      - "+.cloudflare.com"

  fake-ip-filter:
    [
      "*.n.n.srv.nintendo.net",
      +.stun.playstation.net,
      xbox.*.*.microsoft.com,
      "*.msftncsi.com",
      "*.msftconnecttest.com",
      WORKGROUP,
      "*.lan",
      "*.local",
      "*.router",
      "*.localdomain",
      "*.home.arpa",
      "*.belkin",
      "*.tplinklogin.net",
      "*.tenda",
      stun.*.*,
      stun.*.*.*,
      +.stun.*.*,
      +.stun.*.*.*,
      +.stun.*.*.*.*,
      +.stun.*.*.*.*.*,
      time.windows.com,
      time.nist.gov,
      time.apple.com,
      time.asia.apple.com,
      "*.ntp.org.cn",
      "*.openwrt.pool.ntp.org",
      time1.cloud.tencent.com,
      time.ustc.edu.cn,
      pool.ntp.org,
      ntp.ubuntu.com,
      "*.*.xboxlive.com",
      speedtest.cros.wr.pvp.net,
    ]

tun:
  enable: true
  stack: system
  dns-hijack:
    - any:53
  auto-route: true
  auto-detect-interface: true
  device-name: mihomo

#节点添加
proxies:
  - name: 节点1
    type: hysteria2
    server: server.com
    port: 443
    ports: 443-8443
    password: yourpassword
    up: 30 Mbps
    down: 200 Mbps
    sni: server.com
    skip-cert-verify: false
    alpn:
      - h3

  - name: 节点2
    type: hysteria2
    server: server.com
    port: 443
    ports: 443-8443
    password: yourpassword
    up: 30 Mbps
    down: 200 Mbps
    sni: server.com
    skip-cert-verify: false
    alpn:
      - h3

  - name: 节点3
    type: hysteria2
    server: server.com
    port: 443
    ports: 443-8443
    password: yourpassword
    up: 30 Mbps
    down: 200 Mbps
    sni: server.com
    skip-cert-verify: false
    alpn:
      - h3

  - name: 回家节点
    type: hysteria2
    server: server.com
    port: 443
    ports: 443-8443
    password: yourpassword
    up: 30 Mbps
    down: 200 Mbps
    sni: server.com
    skip-cert-verify: false
    alpn:
      - h3

proxy-groups:
  - name: 🚀 节点选择
    type: select
    proxies:
      - 节点1
      - 节点2
      - 节点3
      - ✅ 自动选择
      - ⚖️ 负载均衡
      - ⭕ 故障切换
      - DIRECT

  - name: ✅ 自动选择
    type: url-test
    url: http://www.gstatic.com/generate_204
    interval: 300
    tolerance: 50
    proxies:
      - 节点1
      - 节点2
      - 节点3

  - name: ⚖️ 负载均衡
    type: load-balance
    strategy: consistent-hashing
    url: https://cp.cloudflare.com/generate_204
    interval: 300
    proxies:
      - 节点1
      - 节点2
      - 节点3

  - name: 🏡 回家选择
    type: load-balance
    strategy: consistent-hashing
    url: http://localhost/test # 注意修改测速url为内网可达url
    interval: 300
    proxies:
      - 回家节点

  - name: ⭕ 故障切换
    type: fallback
    url: http://www.gstatic.com/generate_204
    interval: 300
    proxies:
      - 节点1
      - 节点2
      - 节点3

  - name: 🎯 全球直连
    type: select
    proxies:
      - DIRECT
      - 🚀 节点选择
      - ✅ 自动选择

  - name: 🧱 一堵高墙
    type: select
    proxies:
      - 🚀 节点选择
      - ✅ 自动选择
      - 🎯 全球直连

  - name: 🍎 苹果同步
    type: select
    proxies:
      - 🚀 节点选择
      - ✅ 自动选择
      - 🎯 全球直连
  
  - name: 🍎 苹果服务
    type: select
    proxies:
      - 🚀 节点选择
      - ✅ 自动选择
      - 🎯 全球直连

  - name: 🌏 境外服务
    type: select
    proxies:
      - 🚀 节点选择
      - ✅ 自动选择
      - 🎯 全球直连

  - name: 🏠 内网服务
    type: select
    proxies:
      - 🎯 全球直连
      - 🚀 节点选择
      - ✅ 自动选择

  - name: 🇨🇳 国内直连
    type: select
    proxies:
      - 🎯 全球直连
      - 🚀 节点选择
      - ✅ 自动选择

  - name: 📱 常用软件
    type: select
    proxies:
      - 🎯 全球直连
      - 🚀 节点选择
      - ✅ 自动选择

  - name: 📲 电报消息
    type: select
    proxies:
      - 🚀 节点选择
      - ✅ 自动选择
      - 🎯 全球直连

  - name: 🧿 谷歌服务
    type: select
    proxies:
      - 🚀 节点选择
      - ✅ 自动选择
      - 🎯 全球直连

  - name: 🐟 漏网之鱼
    type: select
    proxies:
      - 🚀 节点选择
      - ✅ 自动选择
      - 🎯 全球直连

rule-providers:
  icloud:
    type: http
    behavior: domain
    url: "https://jsd.admincdn.com/gh/Loyalsoldier/clash-rules@release/icloud.txt"
    path: ./ruleset/icloud.yaml
    interval: 86400

  apple:
    type: http
    behavior: domain
    url: "https://jsd.admincdn.com/gh/Loyalsoldier/clash-rules@release/apple.txt"
    path: ./ruleset/apple.yaml
    interval: 86400

  google:
    type: http
    behavior: domain
    url: "https://jsd.admincdn.com/gh/Loyalsoldier/clash-rules@release/google.txt"
    path: ./ruleset/google.yaml
    interval: 86400

  proxy:
    type: http
    behavior: domain
    url: "https://jsd.admincdn.com/gh/Loyalsoldier/clash-rules@release/proxy.txt"
    path: ./ruleset/proxy.yaml
    interval: 86400

  direct:
    type: http
    behavior: domain
    url: "https://jsd.admincdn.com/gh/Loyalsoldier/clash-rules@release/direct.txt"
    path: ./ruleset/direct.yaml
    interval: 86400

  private:
    type: http
    behavior: domain
    url: "https://jsd.admincdn.com/gh/Loyalsoldier/clash-rules@release/private.txt"
    path: ./ruleset/private.yaml
    interval: 86400

  gfw:
    type: http
    behavior: domain
    url: "https://jsd.admincdn.com/gh/Loyalsoldier/clash-rules@release/gfw.txt"
    path: ./ruleset/gfw.yaml
    interval: 86400

  tld-not-cn:
    type: http
    behavior: domain
    url: "https://jsd.admincdn.com/gh/Loyalsoldier/clash-rules@release/tld-not-cn.txt"
    path: ./ruleset/tld-not-cn.yaml
    interval: 86400

  telegramcidr:
    type: http
    behavior: ipcidr
    url: "https://jsd.admincdn.com/gh/Loyalsoldier/clash-rules@release/telegramcidr.txt"
    path: ./ruleset/telegramcidr.yaml
    interval: 86400

  cncidr:
    type: http
    behavior: ipcidr
    url: "https://jsd.admincdn.com/gh/Loyalsoldier/clash-rules@release/cncidr.txt"
    path: ./ruleset/cncidr.yaml
    interval: 86400

  lancidr:
    type: http
    behavior: ipcidr
    url: "https://jsd.admincdn.com/gh/Loyalsoldier/clash-rules@release/lancidr.txt"
    path: ./ruleset/lancidr.yaml
    interval: 86400

  applications:
    type: http
    behavior: classical
    url: "https://jsd.admincdn.com/gh/Loyalsoldier/clash-rules@release/applications.txt"
    path: ./ruleset/applications.yaml
    interval: 86400

rules:
  # 回家规则
  - IP-CIDR,192.168.1.0/24,🏡 回家选择,no-resolve
  # 普通规则
  - RULE-SET,private,🏠 内网服务
  - RULE-SET,applications,📱 常用软件
  - RULE-SET,direct,🇨🇳 国内直连
  - RULE-SET,gfw,🧱 一堵高墙
  - RULE-SET,icloud,🍎 苹果同步
  - RULE-SET,apple,🍎 苹果服务
  - RULE-SET,google,🧿 谷歌服务
  - RULE-SET,proxy,🌏 境外服务
  # IP 地址规则
  - RULE-SET,telegramcidr,📲 电报消息
  - RULE-SET,lancidr,🏠 内网服务
  - RULE-SET,cncidr,🇨🇳 国内直连
  - GEOIP,LAN,🏠 内网服务
  - GEOIP,CN,🇨🇳 国内直连
  # 兜底规则
  - MATCH,🐟 漏网之鱼
YAML

📌 本文由 FishBoss_Tca 原创,转载请注明作者和原文链接。
原文链接:https://www.ytca.top/guidance/2657/

暂无评论

发送评论 编辑评论


				
|´・ω・)ノ
ヾ(≧∇≦*)ゝ
(☆ω☆)
(╯‵□′)╯︵┴─┴
 ̄﹃ ̄
(/ω\)
∠( ᐛ 」∠)_
(๑•̀ㅁ•́ฅ)
→_→
୧(๑•̀⌄•́๑)૭
٩(ˊᗜˋ*)و
(ノ°ο°)ノ
(´இ皿இ`)
⌇●﹏●⌇
(ฅ´ω`ฅ)
(╯°A°)╯︵○○○
φ( ̄∇ ̄o)
ヾ(´・ ・`。)ノ"
( ง ᵒ̌皿ᵒ̌)ง⁼³₌₃
(ó﹏ò。)
Σ(っ °Д °;)っ
( ,,´・ω・)ノ"(´っω・`。)
╮(╯▽╰)╭
o(*////▽////*)q
>﹏<
( ๑´•ω•) "(ㆆᴗㆆ)
😂
😀
😅
😊
🙂
🙃
😌
😍
😘
😜
😝
😏
😒
🙄
😳
😡
😔
😫
😱
😭
💩
👻
🙌
🖕
👍
👫
👬
👭
🌚
🌝
🙈
💊
😶
🙏
🍦
🍉
😣
Source: github.com/k4yt3x/flowerhd
颜文字
Emoji
小恐龙
花!
上一篇
下一篇