配置文件概述
ClashX 使用 YAML 格式的配置文件来定义所有的代理行为。理解配置文件的结构和每个配置项的作用,是掌握 ClashX 的关键。
配置文件通常位于 ~/.config/clash/config.yaml,也可以通过订阅链接自动更新。本文将深入解析配置文件的每个部分,帮助你创建最适合自己需求的配置。
YAML 对缩进非常敏感,必须使用空格(不是 Tab)进行缩进。建议使用 2 个空格作为一级缩进。
基础结构
一个完整的 ClashX 配置文件主要包含以下几个部分:
配置文件基本结构
# 通用设置
port: 7890
socks-port: 7891
allow-lan: false
mode: rule
log-level: info
# 代理节点
proxies:
- name: "节点1"
type: ss
server: example.com
port: 443
# 策略组
proxy-groups:
- name: "🚀 节点选择"
type: select
proxies:
- "节点1"
# 规则
rules:
- DOMAIN-SUFFIX,google.com,🚀 节点选择
- GEOIP,CN,DIRECT
- MATCH,🚀 节点选择
通用设置 (General)
通用设置控制 ClashX 的基本行为和性能参数。
端口配置
# HTTP 代理端口
port: 7890
# SOCKS5 代理端口
socks-port: 7891
# 混合端口(同时支持 HTTP 和 SOCKS5)
mixed-port: 7892
# RESTful API 端口
external-controller: 127.0.0.1:9090
# API 访问密钥(可选)
secret: "your-secret-key"
网络设置
# 允许局域网连接
allow-lan: false
# 绑定地址(局域网时使用)
bind-address: "*"
# 运行模式:rule(规则) / global(全局) / direct(直连)
mode: rule
# 日志级别:silent / error / warning / info / debug
log-level: info
# IPv6 支持
ipv6: true
DNS 配置
DNS 配置影响域名解析的速度和准确性:
dns:
enable: true
listen: 0.0.0.0:53
enhanced-mode: fake-ip # 或 redir-host
# Fake-IP 地址池
fake-ip-range: 198.18.0.1/16
# Fake-IP 过滤(这些域名不使用 Fake-IP)
fake-ip-filter:
- "*.lan"
- "localhost.ptlogin2.qq.com"
# DNS 服务器
nameserver:
- 119.29.29.29
- 223.5.5.5
- https://doh.pub/dns-query
# 回落 DNS(当主 DNS 失败时使用)
fallback:
- https://1.1.1.1/dns-query
- https://dns.google/dns-query
# 根据域名选择 DNS
nameserver-policy:
"geosite:cn":
- 119.29.29.29
- 223.5.5.5
"geosite:geolocation-!cn":
- https://1.1.1.1/dns-query
fake-ip:性能更好,但可能与某些应用不兼容
redir-host:兼容性好,但速度稍慢
代理节点配置 (Proxies)
proxies 部分定义所有可用的代理服务器节点。ClashX 支持多种代理协议。
Shadowsocks (SS)
proxies:
- name: "SS节点"
type: ss
server: example.com
port: 443
cipher: aes-256-gcm
password: "your-password"
udp: true
ShadowsocksR (SSR)
- name: "SSR节点"
type: ssr
server: example.com
port: 443
cipher: aes-256-cfb
password: "your-password"
protocol: auth_aes128_md5
protocol-param: ""
obfs: tls1.2_ticket_auth
obfs-param: "cloudflare.com"
VMess
- name: "VMess节点"
type: vmess
server: example.com
port: 443
uuid: b831381d-6324-4d53-ad4f-8cda48b30811
alterId: 0
cipher: auto
tls: true
skip-cert-verify: false
servername: example.com
network: ws
ws-opts:
path: /path
headers:
Host: example.com
Trojan
- name: "Trojan节点"
type: trojan
server: example.com
port: 443
password: "your-password"
sni: example.com
skip-cert-verify: false
udp: true
HTTP/HTTPS 代理
- name: "HTTP代理"
type: http
server: example.com
port: 8080
username: user
password: pass
tls: true
skip-cert-verify: false
策略组配置 (Proxy Groups)
策略组允许你组合多个节点,实现自动选择、负载均衡等高级功能。
select - 手动选择
用户手动选择使用哪个节点:
proxy-groups:
- name: "🚀 节点选择"
type: select
proxies:
- "🇭🇰 香港节点"
- "🇯🇵 日本节点"
- "🇺🇸 美国节点"
- DIRECT
url-test - 自动测速
自动选择延迟最低的节点:
- name: "♻️ 自动选择"
type: url-test
proxies:
- "节点1"
- "节点2"
- "节点3"
url: "http://www.gstatic.com/generate_204"
interval: 300 # 测试间隔(秒)
tolerance: 50 # 容差(毫秒)
fallback - 故障转移
主节点失败时自动切换到备用节点:
- name: "🔰 故障转移"
type: fallback
proxies:
- "主节点"
- "备用节点1"
- "备用节点2"
url: "http://www.gstatic.com/generate_204"
interval: 300
load-balance - 负载均衡
在多个节点间分配流量:
- name: "⚖️ 负载均衡"
type: load-balance
proxies:
- "节点1"
- "节点2"
- "节点3"
url: "http://www.gstatic.com/generate_204"
interval: 300
strategy: consistent-hashing # 或 round-robin
relay - 链式代理
流量经过多个代理节点:
- name: "🔗 链式代理"
type: relay
proxies:
- "节点1"
- "节点2"
• 为不同用途创建不同的策略组(如流媒体、游戏、下载)
• 使用 url-test 实现自动优选
• 在 select 组中包含 url-test 组作为选项
规则配置 (Rules)
规则决定哪些流量走代理,哪些直连。规则从上到下匹配,一旦匹配就不再继续。
完整规则示例
rules:
# 局域网直连
- DOMAIN-SUFFIX,local,DIRECT
- IP-CIDR,127.0.0.0/8,DIRECT
- IP-CIDR,192.168.0.0/16,DIRECT,no-resolve
- IP-CIDR,10.0.0.0/8,DIRECT,no-resolve
# 屏蔽广告
- DOMAIN-KEYWORD,adservice,REJECT
- DOMAIN-SUFFIX,doubleclick.net,REJECT
# 流媒体
- DOMAIN-SUFFIX,youtube.com,🎬 流媒体
- DOMAIN-SUFFIX,netflix.com,🎬 流媒体
- DOMAIN-KEYWORD,spotify,🎬 流媒体
# Apple 服务
- DOMAIN-SUFFIX,apple.com,🍎 苹果服务
- DOMAIN-SUFFIX,icloud.com,🍎 苹果服务
# Google 服务
- DOMAIN-SUFFIX,google.com,🚀 代理
- DOMAIN-SUFFIX,googleapis.com,🚀 代理
- DOMAIN-SUFFIX,gstatic.com,🚀 代理
# 国内网站直连
- GEOIP,CN,DIRECT
# 最终规则
- MATCH,🚀 代理
规则优先级建议
高级配置选项
Rule Providers - 规则集
从外部文件加载规则,便于维护和更新:
rule-providers:
reject:
type: http
behavior: domain
url: "https://cdn.example.com/reject.yaml"
path: ./ruleset/reject.yaml
interval: 86400
proxy:
type: http
behavior: domain
url: "https://cdn.example.com/proxy.yaml"
path: ./ruleset/proxy.yaml
interval: 86400
rules:
- RULE-SET,reject,REJECT
- RULE-SET,proxy,🚀 代理
TUN 模式
系统级代理,无需配置应用:
tun:
enable: true
stack: system # 或 gvisor
dns-hijack:
- any:53
auto-route: true
auto-detect-interface: true
实验性功能
experimental:
# 忽略解析失败的域名
ignore-resolve-fail: true
# 接口名称检测
interface-name: en0
• TUN 模式需要管理员权限
• 修改配置后需重新加载才能生效
• 建议先在测试环境验证配置