ClashX 配置文件概述
ClashX 使用 YAML 格式的配置文件(config.yaml)来管理所有代理设置、规则和行为。理解并正确配置这个文件是充分发挥 ClashX 功能的关键。
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(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(可视化编辑)