Clash 是常用的规则代理客户端,通过一份 YAML 配置文件即可管理节点、策略组与分流规则。本文介绍如何手动编写支持 Shadowsocks、VMess、Trojan 的完整配置。

配置文件整体结构

一份典型的 Clash 配置包含以下模块:

模块作用
基础设置端口、运行模式、日志级别
DNS防污染、国内外分流解析
proxies代理节点列表
proxy-groups策略组(手动选择、自动测速等)
rules域名/IP 分流规则

基础设置

port: 7890
socks-port: 7891
redir-port: 7892
allow-lan: false
mode: Rule
log-level: info
external-controller: 127.0.0.1:9090
secret: ""
字段说明
portHTTP 代理端口,浏览器/系统代理常用
socks-portSOCKS5 代理端口
modeRule 按规则分流;Global 全局代理;Direct 全局直连
external-controllerREST API 地址,Clash Dashboard 通过此接口控制

DNS 配置

开启 DNS 可避免解析污染,并为规则分流提供域名信息:

dns:
  enable: true
  listen: 0.0.0.0:53
  enhanced-mode: fake-ip
  nameserver:
    - 223.5.5.5
    - 119.29.29.29
  fallback:
    - tls://1.1.1.1:853
    - tls://8.8.8.8:853
  fallback-filter:
    geoip: true
    geoip-code: CN

国内域名走 nameserver,海外域名走 fallback,是常见防污染方案。

代理节点 proxies

Shadowsocks (type: ss)

- name: "SS-香港"
  type: ss
  server: 1.2.3.4
  port: 8388
  cipher: chacha20-ietf-poly1305
  password: "your-password"
  udp: true

常用加密方式:aes-128-gcmaes-256-gcmchacha20-ietf-poly1305

带混淆插件的 SS:

- name: "SS-Obfs"
  type: ss
  server: 1.2.3.4
  port: 443
  cipher: chacha20-ietf-poly1305
  password: "your-password"
  plugin: obfs
  plugin-opts:
    mode: tls
    host: www.bing.com

VMess (type: vmess)

- name: "VMess-WS"
  type: vmess
  server: example.com
  port: 443
  uuid: 5b8098e0-c95d-4c74-b5d5-4a330969c8cb
  alterId: 0
  cipher: auto
  tls: true
  network: ws
  ws-opts:
    path: /v2ray
    headers:
      Host: example.com

Clash Meta / Mihomo 已广泛支持 VLESS、Reality 等新协议,字段与 VMess 类似,按客户端文档填写即可。

Trojan (type: trojan)

- name: "Trojan-节点"
  type: trojan
  server: example.com
  port: 443
  password: your-password
  sni: example.com
  udp: true
  skip-cert-verify: false

策略组 proxy-groups

proxy-groups:
  - name: "手动选择"
    type: select
    proxies:
      - "自动选择"
      - "SS-香港"
      - "VMess-WS"
      - "Trojan-节点"
      - DIRECT

  - name: "自动选择"
    type: url-test
    proxies:
      - "SS-香港"
      - "VMess-WS"
      - "Trojan-节点"
    url: http://www.gstatic.com/generate_204
    interval: 300
    tolerance: 50

  - name: "国外媒体"
    type: select
    proxies:
      - "手动选择"
      - "自动选择"
      - DIRECT
类型说明
select手动切换节点
url-test定时测速,自动选延迟最低的节点
fallback按顺序尝试,节点不可用时切换下一个
load-balance负载均衡

分流规则 rules

规则从上到下匹配,先匹配先生效

rules:
  # 局域网直连
  - IP-CIDR,192.168.0.0/16,DIRECT,no-resolve
  - IP-CIDR,10.0.0.0/8,DIRECT,no-resolve
  - IP-CIDR,127.0.0.0/8,DIRECT,no-resolve

  # 国内常用服务直连
  - DOMAIN-SUFFIX,cn,DIRECT
  - DOMAIN-SUFFIX,baidu.com,DIRECT
  - DOMAIN-SUFFIX,qq.com,DIRECT
  - DOMAIN-SUFFIX,bilibili.com,DIRECT

  # 国外媒体走代理
  - DOMAIN-SUFFIX,youtube.com,国外媒体
  - DOMAIN-SUFFIX,netflix.com,国外媒体
  - DOMAIN-SUFFIX,spotify.com,国外媒体

  # 被墙服务
  - DOMAIN-SUFFIX,google.com,手动选择
  - DOMAIN-SUFFIX,github.com,手动选择
  - DOMAIN-SUFFIX,twitter.com,手动选择
  - DOMAIN-KEYWORD,google,手动选择

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

  # 兜底
  - MATCH,手动选择

常用规则类型

类型示例说明
DOMAINDOMAIN,google.com,PROXY精确匹配域名
DOMAIN-SUFFIXDOMAIN-SUFFIX,google.com,PROXY后缀匹配
DOMAIN-KEYWORDDOMAIN-KEYWORD,google,PROXY关键词匹配
IP-CIDRIP-CIDR,1.1.1.1/32,DIRECTIP 段匹配
GEOIPGEOIP,CN,DIRECT按 GeoIP 国家分流
MATCHMATCH,PROXY兜底规则,必须放在最后

完整规则库可参考 Loyalsoldier/clash-rules 等开源项目,按需裁剪,不必整份粘贴数千条规则。

最小可用完整示例

port: 7890
socks-port: 7891
allow-lan: false
mode: Rule
log-level: info

dns:
  enable: true
  nameserver: [223.5.5.5, 119.29.29.29]
  fallback: [tls://1.1.1.1:853]

proxies:
  - name: "Trojan-示例"
    type: trojan
    server: your-server.com
    port: 443
    password: your-password
    sni: your-server.com

proxy-groups:
  - name: PROXY
    type: select
    proxies: [Trojan-示例, DIRECT]

rules:
  - DOMAIN-SUFFIX,cn,DIRECT
  - GEOIP,CN,DIRECT
  - MATCH,PROXY

常见问题

配置不生效? 检查 YAML 缩进(必须用空格,不能用 Tab),proxies 中节点名与 proxy-groups 引用是否一致。

规则太多难维护? 使用 rule-providers 引用远程规则集,本地只保留个性化规则。

订阅与手写如何结合? 订阅提供 proxies,本地 YAML 只写 proxy-groupsrules,通过 proxy-providers 合并。

小结

掌握 Clash 配置的核心是四件事:节点格式正确、策略组命名清晰、规则顺序合理、DNS 防污染开启。建议从最小示例跑通后,再逐步引入完整规则库与多节点策略。