ClashX 配置文件完整指南:config.yaml 从入门到精通

ClashX 配置文件概述

ClashX 使用 YAML 格式的配置文件(config.yaml)来管理所有代理设置、规则和行为。理解并正确配置这个文件是充分发挥 ClashX 功能的关键。

💡
什么是 YAML?

YAML(YAML Ain't Markup Language)是一种人类友好的数据序列化格式。它使用缩进来表示层级关系,语法简洁易读。

配置文件的重要性

  • 灵活性:可以精确控制每个域名的代理行为
  • 性能:优化 DNS 和路由策略,提升访问速度
  • 自动化:设置自动选择、故障转移等智能功能
  • 隐私保护:配置规则避免不必要的流量泄露
⚠️
编辑前请备份

修改配置文件前,建议先备份原文件。YAML 对格式要求严格,一个小错误可能导致整个配置无法加载。

配置文件位置

了解配置文件的存储位置是编辑配置的第一步。

macOS 默认位置

# ClashX 配置文件主目录
~/.config/clash/

# 主配置文件
~/.config/clash/config.yaml

# 查看配置文件
cat ~/.config/clash/config.yaml

# 使用编辑器打开
open -a TextEdit ~/.config/clash/config.yaml

# 推荐使用专业编辑器(如 VS Code)
code ~/.config/clash/config.yaml

其他重要文件

文件路径 说明
~/.config/clash/config.yaml 主配置文件
~/.config/clash/Country.mmdb GeoIP 数据库
~/.config/clash/cache.db DNS 缓存数据库
~/.config/clash/clashx.log 运行日志文件

快速打开配置目录

# 在 Finder 中打开配置目录
open ~/.config/clash/

# 或在 ClashX 菜单中
# 配置 → 打开配置文件夹

基础配置结构

一个完整的 ClashX 配置文件包含多个主要部分。理解每个部分的作用是配置的基础。

配置文件主要部分

完整配置结构概览

# ========= 通用设置 =========
port: 7890                    # HTTP 代理端口
socks-port: 7891             # SOCKS5 代理端口
allow-lan: false             # 允许局域网连接
mode: rule                   # 运行模式:rule/global/direct
log-level: info              # 日志级别

# ========= DNS 配置 =========
dns:
  enable: true
  listen: 127.0.0.1:53
  # DNS 详细配置见后文

# ========= 代理节点 =========
proxies:
  - name: "节点1"
    type: ss
    # 节点详细配置见后文

# ========= 策略组 =========
proxy-groups:
  - name: "自动选择"
    type: url-test
    # 策略组详细配置见后文

# ========= 规则 =========
rules:
  - DOMAIN-SUFFIX,google.com,PROXY
  # 规则详细配置见后文

通用设置详解

配置项 说明 推荐值
port HTTP(S) 代理端口 7890
socks-port SOCKS5 代理端口 7891
allow-lan 允许局域网设备连接 false(安全)
mode 代理模式 rule(规则模式)
log-level 日志级别 info(平衡性能)
external-controller Dashboard 地址 127.0.0.1:9090

运行模式说明

  • rule(规则模式):根据规则决定流量走向,最常用
  • global(全局模式):所有流量都走代理
  • direct(直连模式):所有流量都不走代理

代理节点配置

代理节点是 ClashX 的核心,定义了如何连接到代理服务器。

常见代理协议

1. Shadowsocks (SS)

proxies:
  - name: "SS节点"
    type: ss
    server: example.com          # 服务器地址
    port: 8388                   # 端口
    cipher: aes-256-gcm          # 加密方式
    password: "your-password"    # 密码
    udp: true                    # 启用 UDP

2. VMess

proxies:
  - name: "VMess节点"
    type: vmess
    server: example.com
    port: 443
    uuid: 12345678-1234-1234-1234-123456789012
    alterId: 0                   # 额外 ID(现代 V2Ray 使用 0)
    cipher: auto                 # 加密方式
    tls: true                    # 启用 TLS
    skip-cert-verify: false      # 不跳过证书验证(安全)
    network: ws                  # 传输协议:ws/http/grpc
    ws-opts:
      path: /path                # WebSocket 路径
      headers:
        Host: example.com        # Host 头

3. Trojan

proxies:
  - name: "Trojan节点"
    type: trojan
    server: example.com
    port: 443
    password: "your-password"
    sni: example.com             # SNI(服务器名称指示)
    skip-cert-verify: false      # 不跳过证书验证
    udp: true

4. Hysteria2(高速协议)

proxies:
  - name: "Hysteria2节点"
    type: hysteria2
    server: example.com
    port: 443
    password: "your-password"
    sni: example.com
    skip-cert-verify: false
    up: "50 Mbps"                # 上传带宽
    down: "100 Mbps"             # 下载带宽

节点配置进阶选项

选项 作用 推荐设置
udp 启用 UDP 转发 true(游戏/语音需要)
skip-cert-verify 跳过证书验证 false(安全优先)
tls 启用 TLS 加密 true(推荐)
tcp-fast-open 启用 TFO 加速 true(减少延迟)
⚠️
安全提示

除非在测试环境,否则不要设置 skip-cert-verify: true。这会降低连接安全性,容易遭受中间人攻击。

策略组配置(核心功能)

策略组(Proxy Groups)是 ClashX 的强大功能,可以实现自动选择、负载均衡、故障转移等智能代理。

策略组类型

1. select(手动选择)

proxy-groups:
  - name: "🚀 手动选择"
    type: select
    proxies:
      - "香港节点1"
      - "香港节点2"
      - "美国节点1"
      - "日本节点1"
      - DIRECT              # 直连
      - REJECT              # 拒绝

# 用途:手动在多个节点间切换

2. url-test(自动选择)

proxy-groups:
  - name: "♻️ 自动选择"
    type: url-test
    proxies:
      - "香港节点1"
      - "香港节点2"
      - "新加坡节点1"
    url: "http://www.gstatic.com/generate_204"
    interval: 300         # 测速间隔(秒)
    tolerance: 50         # 容差(ms),延迟差异小于此值不切换

# 用途:自动选择延迟最低的节点

3. fallback(故障转移)

proxy-groups:
  - name: "🔄 故障转移"
    type: fallback
    proxies:
      - "主力节点"
      - "备用节点1"
      - "备用节点2"
    url: "http://www.gstatic.com/generate_204"
    interval: 300

# 用途:主节点故障时自动切换到备用节点

4. load-balance(负载均衡)

proxy-groups:
  - name: "⚖️ 负载均衡"
    type: load-balance
    proxies:
      - "节点1"
      - "节点2"
      - "节点3"
    url: "http://www.gstatic.com/generate_204"
    interval: 300
    strategy: consistent-hashing  # 策略:round-robin 或 consistent-hashing

# 用途:将流量分散到多个节点,提高稳定性

实用策略组配置示例

完整策略组配置

proxy-groups:
  # 主选择器
  - name: "🚀 节点选择"
    type: select
    proxies:
      - "♻️ 自动选择"
      - "🔄 故障转移"
      - "香港节点"
      - "美国节点"
      - "日本节点"
      - DIRECT

  # 自动选择快速节点
  - name: "♻️ 自动选择"
    type: url-test
    url: "http://www.gstatic.com/generate_204"
    interval: 300
    tolerance: 50
    proxies:
      - "香港节点1"
      - "香港节点2"
      - "新加坡节点1"

  # 按地区分组
  - name: "🇭🇰 香港节点"
    type: select
    proxies:
      - "香港节点1"
      - "香港节点2"
      - "香港节点3"

  - name: "🇺🇸 美国节点"
    type: select
    proxies:
      - "美国节点1"
      - "美国节点2"

  # 流媒体专用
  - name: "🎬 流媒体"
    type: select
    proxies:
      - "🇭🇰 香港节点"
      - "🇺🇸 美国节点"
      - "🇯🇵 日本节点"

  # 电报专用
  - name: "📲 Telegram"
    type: select
    proxies:
      - "🚀 节点选择"
      - "🇭🇰 香港节点"
      - "🇺🇸 美国节点"

  # 广告拦截
  - name: "🛡️ 广告拦截"
    type: select
    proxies:
      - REJECT
      - DIRECT

  # 最终策略
  - name: "🐟 漏网之鱼"
    type: select
    proxies:
      - "🚀 节点选择"
      - DIRECT

规则配置

规则(Rules)决定了不同域名或 IP 的流量走向。合理配置规则可以实现精确的分流。

规则类型

规则类型 匹配方式 示例
DOMAIN 完整域名匹配 DOMAIN,google.com,PROXY
DOMAIN-SUFFIX 域名后缀匹配 DOMAIN-SUFFIX,google.com,PROXY
DOMAIN-KEYWORD 域名关键词匹配 DOMAIN-KEYWORD,google,PROXY
GEOIP IP 地理位置 GEOIP,CN,DIRECT
IP-CIDR IP 段匹配 IP-CIDR,192.168.0.0/16,DIRECT
MATCH 匹配所有(兜底) MATCH,PROXY

实用规则配置

完整规则示例

rules:
  # 广告拦截
  - DOMAIN-SUFFIX,googlesyndication.com,🛡️ 广告拦截
  - DOMAIN-SUFFIX,doubleclick.net,🛡️ 广告拦截
  - DOMAIN-KEYWORD,adservice,🛡️ 广告拦截

  # Apple 服务(直连)
  - DOMAIN-SUFFIX,apple.com,DIRECT
  - DOMAIN-SUFFIX,icloud.com,DIRECT
  - DOMAIN-SUFFIX,mzstatic.com,DIRECT

  # 国内服务(直连)
  - DOMAIN-SUFFIX,cn,DIRECT
  - DOMAIN-SUFFIX,baidu.com,DIRECT
  - DOMAIN-SUFFIX,qq.com,DIRECT
  - DOMAIN-SUFFIX,taobao.com,DIRECT

  # Google 服务
  - DOMAIN-SUFFIX,google.com,🚀 节点选择
  - DOMAIN-SUFFIX,googleapis.com,🚀 节点选择
  - DOMAIN-SUFFIX,youtube.com,🚀 节点选择

  # 流媒体
  - DOMAIN-SUFFIX,netflix.com,🎬 流媒体
  - DOMAIN-SUFFIX,nflxvideo.net,🎬 流媒体
  - DOMAIN-SUFFIX,hulu.com,🎬 流媒体
  - DOMAIN-SUFFIX,disneyplus.com,🎬 流媒体

  # Telegram
  - DOMAIN-SUFFIX,t.me,📲 Telegram
  - DOMAIN-SUFFIX,telegram.org,📲 Telegram
  - IP-CIDR,91.108.4.0/22,📲 Telegram,no-resolve
  - IP-CIDR,149.154.160.0/20,📲 Telegram,no-resolve

  # 局域网地址(直连)
  - IP-CIDR,192.168.0.0/16,DIRECT
  - IP-CIDR,10.0.0.0/8,DIRECT
  - IP-CIDR,172.16.0.0/12,DIRECT
  - IP-CIDR,127.0.0.0/8,DIRECT

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

  # 兜底规则
  - MATCH,🐟 漏网之鱼

规则优先级

💡
重要:规则从上到下匹配

ClashX 会按照规则列表从上到下依次匹配,一旦匹配成功就不再继续。因此:
1. 更具体的规则应该放在前面
2. 更通用的规则应该放在后面
3. MATCH 必须放在最后作为兜底

DNS 配置优化

正确的 DNS 配置可以显著提升解析速度、避免 DNS 污染、保护隐私。

基础 DNS 配置

dns:
  enable: true                  # 启用 DNS
  listen: 127.0.0.1:53         # DNS 监听地址
  enhanced-mode: fake-ip       # 增强模式:fake-ip 或 redir-host

  fake-ip-range: 198.18.0.1/16 # fake-ip 地址池

  # 国内 DNS 服务器
  nameserver:
    - 119.29.29.29              # DNSPod
    - 223.5.5.5                 # 阿里 DNS
    - 180.76.76.76              # 百度 DNS

  # 国外 DNS 服务器(通过代理)
  fallback:
    - https://1.1.1.1/dns-query        # Cloudflare DoH
    - https://dns.google/dns-query     # Google DoH
    - https://dns.quad9.net/dns-query  # Quad9 DoH

DNS 模式对比

模式 优点 缺点
fake-ip 速度快、减少 DNS 泄露 某些应用可能不兼容
redir-host 兼容性好 速度稍慢、可能DNS泄露

高级 DNS 配置

完整 DNS 配置(推荐)

dns:
  enable: true
  listen: 127.0.0.1:53
  enhanced-mode: fake-ip
  fake-ip-range: 198.18.0.1/16

  # 使用系统 hosts 文件
  use-hosts: true

  # 国内 DNS
  nameserver:
    - https://223.5.5.5/dns-query      # 阿里 DoH
    - https://1.12.12.12/dns-query     # DNSPod DoH

  # 国外 DNS(通过代理查询)
  fallback:
    - https://1.1.1.1/dns-query
    - https://dns.google/dns-query
    - tls://dns.google:853              # Google DoT

  # DNS 分流规则
  fallback-filter:
    geoip: true                         # 启用 GeoIP 判断
    geoip-code: CN                      # 中国 IP 使用 nameserver
    ipcidr:                             # 这些 IP 段使用 fallback
      - 240.0.0.0/4
    domain:                             # 这些域名强制使用 fallback
      - '+.google.com'
      - '+.facebook.com'
      - '+.youtube.com'
      - '+.twitter.com'

  # fake-ip 过滤器(这些域名返回真实 IP)
  fake-ip-filter:
    - '*.lan'
    - 'localhost.ptlogin2.qq.com'
    - '+.stun.*.*'
    - '+.stun.*.*.*'
    - '+.stun.*.*.*.*'
    - '+.srv.nintendo.net'
    - '*.n.n.srv.nintendo.net'
    - '+.battlenet.com.cn'
    - '+.wotgame.cn'
    - '+.msftconnecttest.com'
💡
DoH vs DoT

DoH(DNS over HTTPS):使用 HTTPS 加密 DNS 查询,难以被检测和拦截
DoT(DNS over TLS):使用 TLS 加密,性能稍好但容易被识别
推荐:在国内环境使用 DoH,更不容易被干扰

高级配置选项

掌握高级配置可以进一步优化 ClashX 的性能和功能。

TUN 模式配置

tun:
  enable: true
  stack: gvisor                 # 协议栈:system 或 gvisor
  dns-hijack:
    - any:53                    # 劫持所有 DNS 查询
  auto-route: true              # 自动配置路由
  auto-detect-interface: true   # 自动检测网络接口

实验性功能

experimental:
  ignore-resolve-fail: true     # 忽略 DNS 解析失败
  interface-name: en0           # 指定网络接口

性能优化配置

优化连接性能

# 启用 TCP 快速打开(减少握手延迟)
tcp-fast-open: true

# Keep-Alive 间隔(秒)
keep-alive-interval: 30

# 连接超时(秒)
dial-timeout: 5

# 启用 IPv6
ipv6: false                     # 建议关闭(除非网络支持)

# 全局 TLS 指纹伪装
global-client-fingerprint: chrome

规则集(Rule Providers)

使用外部规则集

rule-providers:
  # 拒绝规则集(广告)
  reject:
    type: http
    behavior: domain
    url: "https://cdn.jsdelivr.net/gh/Loyalsoldier/clash-rules@release/reject.txt"
    path: ./ruleset/reject.yaml
    interval: 86400

  # 代理规则集
  proxy:
    type: http
    behavior: domain
    url: "https://cdn.jsdelivr.net/gh/Loyalsoldier/clash-rules@release/proxy.txt"
    path: ./ruleset/proxy.yaml
    interval: 86400

  # 直连规则集
  direct:
    type: http
    behavior: domain
    url: "https://cdn.jsdelivr.net/gh/Loyalsoldier/clash-rules@release/direct.txt"
    path: ./ruleset/direct.yaml
    interval: 86400

# 在 rules 中引用
rules:
  - RULE-SET,reject,🛡️ 广告拦截
  - RULE-SET,proxy,🚀 节点选择
  - RULE-SET,direct,DIRECT

常见配置错误

了解常见错误可以帮助您快速排查配置问题。

YAML 语法错误

错误 正确写法
使用 Tab 缩进 使用 2 个空格缩进
name:节点1(无空格) name: "节点1"
password: pass@123 password: "pass@123"
缩进不一致 同级元素使用相同缩进

验证配置文件

# 使用 Python 验证 YAML 语法
python3 -c "import yaml; yaml.safe_load(open('~/.config/clash/config.yaml'))"

# 在线验证工具
# https://www.yamllint.com/

# 使用 VS Code 插件
# 安装 "YAML" 插件,实时语法检查

配置不生效的常见原因

  • 修改后未重新加载配置
  • 规则顺序错误(更通用的规则在前)
  • 策略组引用的节点不存在
  • DNS 配置冲突
  • 文件权限问题

实用配置模板

以下提供几个常用场景的完整配置模板。

模板 1:基础配置(适合新手)

# 通用设置
port: 7890
socks-port: 7891
allow-lan: false
mode: rule
log-level: info
external-controller: 127.0.0.1:9090

# DNS
dns:
  enable: true
  listen: 127.0.0.1:53
  enhanced-mode: fake-ip
  nameserver:
    - 119.29.29.29
    - 223.5.5.5

# 代理(从订阅导入)
proxies: []

# 策略组
proxy-groups:
  - name: "PROXY"
    type: select
    proxies:
      - "节点1"
      - "节点2"

# 规则
rules:
  - DOMAIN-SUFFIX,google.com,PROXY
  - GEOIP,CN,DIRECT
  - MATCH,PROXY

模板 2:全功能配置(推荐)

# 此模板包含完整功能,可直接使用
# 需要将订阅节点粘贴到 proxies 部分

port: 7890
socks-port: 7891
allow-lan: false
mode: rule
log-level: info
external-controller: 127.0.0.1:9090

dns:
  enable: true
  listen: 127.0.0.1:53
  enhanced-mode: fake-ip
  fake-ip-range: 198.18.0.1/16
  nameserver:
    - https://223.5.5.5/dns-query
    - https://1.12.12.12/dns-query
  fallback:
    - https://1.1.1.1/dns-query
    - https://dns.google/dns-query
  fallback-filter:
    geoip: true
    geoip-code: CN

proxies: []  # 粘贴你的节点

proxy-groups:
  - name: "🚀 节点选择"
    type: select
    proxies:
      - "♻️ 自动选择"
      - DIRECT

  - name: "♻️ 自动选择"
    type: url-test
    url: "http://www.gstatic.com/generate_204"
    interval: 300
    proxies: []  # 引用所有节点

rules:
  - DOMAIN-SUFFIX,google.com,🚀 节点选择
  - GEOIP,CN,DIRECT
  - MATCH,🚀 节点选择
💡
获取更多模板

访问以下资源获取更多配置模板:
Loyalsoldier/clash-rules(规则集)
ACL4SSR(在线配置转换)
• ClashX Dashboard(可视化编辑)

掌握配置文件,解锁 ClashX 全部功能

从基础到高级,系统学习 ClashX 使用技巧