Clash for Windows高级配置自定义规则和协议深度探讨

Clash for Windows 高级配置:自定义规则和协议的深度探讨

入门会用 Clash 之后,想进一步提升就得折腾高级配置了。规则系统、协议参数这些搞懂了,能玩出不少花样。今天聊聊 Clash 高级配置的一些东西,适合想深入了解的朋友。

Clash for Windows高级配置

Clash 规则系统是怎么回事

规则类型

Clash 的规则系统是它的核心,主要有这几种规则:

  • DOMAIN:精确匹配某个域名
  • DOMAIN-SUFFIX:匹配域名后缀,比如 .cn 匹配所有中文域名
  • DOMAIN-KEYWORD:域名里包含某个关键词就匹配
  • IP-CIDR:匹配某个 IP 地址段
  • GEOIP:根据 IP 地理位置判断
  • PROCESS-NAME:匹配特定进程名

每条规则都包含「条件」和「动作」两部分,符合条件就执行对应动作。

规则是怎么一条条执行的

Clash 处理请求的时候,是按照规则列表从上往下一条条匹配的:

  • 排在前面的规则先执行
  • 匹配到了就按规则处理,不会继续往下看
  • 都没匹配到就走默认规则

所以规则顺序很重要,精确的放前面,笼统的放后面。

怎么配置自定义规则

基础规则怎么写

举几个常见的例子:

rules:
  # 精确匹配某个网站,走指定节点
  - DOMAIN,specific-site.com,节点名称

  # 匹配域名后缀,国内站点直连
  - DOMAIN-SUFFIX,cn,DIRECT
  - DOMAIN-SUFFIX,baidu.com,DIRECT

  # 域名包含关键词就走代理
  - DOMAIN-KEYWORD,google,自动选择

  # IP段匹配,直连
  - IP-CIDR,192.168.0.0/16,DIRECT
  - IP-CIDR,10.0.0.0/8,DIRECT

  # 中国的IP就直连
  - GEOIP,CN,DIRECT

规则集是个好东西

规则集就是把同类规则打包成单独的文件:

  1. 把相关规则写进一个文件
  2. 在主配置里引用这个文件
  3. 以后更新规则只需要改文件就行

这种做法好处是配置更清晰,规则多的时候特别有用。

策略组是什么

策略组就是决定「符合规则的流量交给谁处理」:

  • DIRECT:直连,不走代理
  • REJECT:拒绝连接
  • 节点名称:指定某个节点
  • 策略组名称:引用另一个策略组

常见的策略组有自动选择、手动选择、负载均衡这些。

各种协议怎么配置

Shadowsocks

SS 协议配置最简单:

proxies:
  - name: "SS节点"
    type: ss
    server: 服务器地址
    port: 端口
    cipher: aes-256-gcm
    password: 密码

V2Ray (VMess)

VMess 配置麻烦一点,参数比较多:

proxies:
  - name: "V2Ray节点"
    type: vmess
    server: 服务器地址
    port: 端口
    uuid: 你的UUID
    alterId: 0
    cipher: auto
    level: 0

要注意 alterId 必须和服务端一致,不然连不上。

Trojan

Trojan 配置简单,但要保证证书有效:

proxies:
  - name: "Trojan节点"
    type: trojan
    server: 服务器地址
    port: 端口
    password: 你的密码
    sni: 伪装域名

一些高级功能

TUN 模式配置

TUN 模式配置示例:

tun:
  enable: true
  stack: system
  dns-hijack:
    - 8.8.8.8
    - 1.1.1.1
  auto-route: true
  auto-detect-interface: true

DNS 配置

防止 DNS 泄露的配置:

dns:
  enable: true
  listen: 0.0.0.0:53
  enhanced-mode: fake-ip
  fake-ip-range: 198.18.0.1/16
  nameserver:
    - 223.5.5.5
    - 119.29.29.29
  fallback:
    - 1.1.1.1
    - 8.8.8.8

流量伪装

有些协议支持流量伪装,更隐蔽:

  • TLS 伪装:把代理流量伪装成正常 HTTPS
  • WebSocket:通过 WS 协议传输
  • HTTP/2:利用多路复用

配置文件管理

多配置切换

用多个机场的话可以准备多套配置:

  • 不同目录放不同配置文件
  • 程序里可以快速切换
  • 命令行也能指定用哪个配置

备份很重要

每次改配置之前先备份一下:

  • 备份整个配置目录
  • 重要改动用云存储同步
  • 记录改了什么地方

最后说两句

高级配置内容比较多不可能一口气全学会,建议先从简单的自定义规则开始,改着改着就熟悉了。协议配置也是,先把一种搞懂,其他操作相似一通百通。

发表评论