目录
- 1. 什么是 Clash YAML 配置?
- 2. Clash YAML 配置的基本结构
- 3. Proxy 配置详解
- 4. Proxy Group 配置详解
- 5. Rule 规则配置详解
- 6. Clash YAML 配置实战案例
- 7. Clash YAML 配置常见问题 FAQ
1. 什么是 Clash YAML 配置?
Clash 是一款功能强大的代理客户端软件,它支持多种代理协议,包括 SS/SSR、VMess、Trojan 等。Clash 的配置文件使用 YAML 格式,可以非常灵活地定义代理服务器、分组和路由规则。
YAML 是一种人类可读的数据序列化格式,它比传统的 JSON 格式更加简洁易读。Clash 的 YAML 配置文件包含三个主要部分:
- Proxy: 定义代理服务器的详细信息,如服务器地址、端口、加密方式等。
- Proxy Group: 定义代理分组,如负载均衡、延迟测试、故障转移等。
- Rule: 定义代理规则,如域名、IP 段、端口等。
通过编辑 Clash 的 YAML 配置文件,用户可以灵活地控制网络流量的走向,实现个性化的上网体验。
2. Clash YAML 配置的基本结构
Clash 的 YAML 配置文件通常包含以下三个主要部分:
2.1 Proxy
Proxy 部分用于定义代理服务器的详细信息,包括服务器地址、端口、加密方式等。每个代理服务器都需要在这里进行配置。
示例:
yaml proxies:
- name: “Proxy 1” type: ss server: example.com port: 8388 cipher: aes-256-cfb password: “password” – name: “Proxy 2” type: vmess server: example.com port: 443 uuid: “23ad6b82-9605-49e9-a226-c42a6d3a8e92” alterId: 64 cipher: auto
2.2 Proxy Group
Proxy Group 部分用于定义代理分组,如负载均衡、延迟测试、故障转移等。通过配置不同的分组策略,可以实现更加智能和灵活的代理行为。
示例:
yaml proxy-groups:
- name: “Proxy Group 1” type: url-test proxies:
- Proxy 1
- Proxy 2 url: “http://www.gstatic.com/generate_204” interval: 300
- name: “Proxy Group 2” type: fallback proxies:
- Proxy 1
- Proxy 2 url: “http://www.gstatic.com/generate_204” interval: 300
2.3 Rule
Rule 部分用于定义代理规则,可以根据域名、IP 段、端口等条件进行匹配。通过配置不同的规则,可以实现更加精细的流量控制。
示例:
yaml rules:
- DOMAIN-SUFFIX,google.com,Proxy Group 1
- DOMAIN,facebook.com,Proxy Group 2
- IP-CIDR,10.0.0.0/8,DIRECT
- SRC-PORT,7777,DIRECT
- DST-PORT,8888,DIRECT
- PROCESS-NAME,Telegram,Proxy Group 1
3. Proxy 配置详解
在 Clash 的 YAML 配置文件中,Proxy 部分用于定义各种类型的代理服务器。下面我们来详细介绍不同类型代理的配置方式。
3.1 SS/SSR 代理配置
Shadowsocks (SS) 和 Shadowsocks-R (SSR) 是两种常见的代理协议,它们的配置方式如下:
yaml proxies:
- name: “SS Proxy” type: ss server: example.com port: 8388 cipher: aes-256-cfb password: “password” – name: “SSR Proxy” type: ssr server: example.com port: 8388 cipher: aes-256-cfb password: “password” protocol: auth_aes128_md5 protocol-param: “user1:pass1” obfs: http_simple obfs-param: “obfs-param”
3.2 VMess 代理配置
VMess 是一种基于 WebSocket 的代理协议,它的配置方式如下:
yaml proxies:
- name: “VMess Proxy” type: vmess server: example.com port: 443 uuid: “23ad6b82-9605-49e9-a226-c42a6d3a8e92” alterId: 64 cipher: auto tls: true skip-cert-verify: true
3.3 Trojan 代理配置
Trojan 是一种基于 TLS 的代理协议,它的配置方式如下:
yaml proxies:
- name: “Trojan Proxy” type: trojan server: example.com port: 443 password: “password” sni: example.com skip-cert-verify: true
3.4 HTTPS 代理配置
Clash 还支持 HTTPS 代理,它的配置方式如下:
yaml proxies:
- name: “HTTPS Proxy” type: http server: example.com port: 8080 username: “username” password: “password”
4. Proxy Group 配置详解
在 Clash 的 YAML 配置文件中,Proxy Group 部分用于定义代理分组。通过配置不同的分组策略,可以实现更加智能和灵活的代理行为。
4.1 负载均衡
负载均衡分组可以在多个代理服务器之间实现流量的负载分担,提高代理的可用性和稳定性。
yaml proxy-groups:
- name: “Load Balancing Group” type: load-balance proxies:
- Proxy 1
- Proxy 2
- Proxy 3 url: “http://www.gstatic.com/generate_204” interval: 300
4.2 延迟测试
延迟测试分组可以定期测试代理服务器的延迟,并根据延迟时间自动选择最优的代理服务器。
yaml proxy-groups:
- name: “Latency Test Group” type: url-test proxies:
- Proxy 1
- Proxy 2
- Proxy 3 url: “http://www.gstatic.com/generate_204” interval: 300
4.3 故障转移
故障转移分组可以在代理服务器出现故障时自动切换到备用服务器,提高代理的可靠性。
yaml proxy-groups:
- name: “Fallback Group” type: fallback proxies:
- Proxy 1
- Proxy 2
- Proxy 3 url: “http://www.gstatic.com/generate_204” interval: 300
5. Rule 规则配置详解
在 Clash 的 YAML 配置文件中,Rule 部分用于定义代理规则。通过配置不同的规则,可以实现更加精细的流量控制。
5.1 DOMAIN-SUFFIX
DOMAIN-SUFFIX 规则可以根据域名后缀进行匹配。
yaml rules:
- DOMAIN-SUFFIX,google.com,Proxy Group 1
- DOMAIN-SUFFIX,facebook.com,Proxy Group 2
5.2 DOMAIN
DOMAIN 规则可以根据完整的域名进行匹配。
yaml rules:
- DOMAIN,www.example.com,Proxy Group 1
- DOMAIN,api.example.com,Proxy Group 2
5.3 IP-CIDR
IP-CIDR 规则可以根据 IP 地址段进行匹配。
yaml rules:
- IP-CIDR,10.0.0.0/8,DIRECT
- IP-CIDR,172.16.0.0/12,DIRECT
- IP-CIDR,192.168.0.0/16,DIRECT
5.4 GEOIP
GEOIP 规则可以根据地理位置进行匹配。
yaml rules:
- GEOIP,CN,DIRECT
- GEOIP,JP,Proxy Group 1
- GEOIP,US,Proxy Group 2
5.5 SRC-PORT
SRC-PORT 规则可以根据源端口进行匹配。
yaml rules:
- SRC-PORT,7777,DIRECT
- SRC-PORT,8888,Proxy Group 1
5.6 DST-PORT
DST-PORT 规则可以根据目标端口进行匹配。
yaml rules:
- DST-PORT,80,DIRECT
- DST-PORT,443,Proxy Group 1
5.7 PROCESS-NAME
PROCESS-NAME 规则可以根据进程名称进行匹配。
yaml rules:
- PROCESS-NAME,Telegram,Proxy Group 1
- PROCESS-NAME,WeChat,DIRECT
6. Clash YAML 配置实战案例
以下是一个完整的 Clash YAML 配置示例:
yaml proxies:
- name: “Proxy 1” type: ss server: example.com port: 8388 cipher: aes-256-cfb password: “password” – name: “Proxy 2” type: vmess server: example.com port: 443 uuid: “23ad6b82-9605-49e9-a226-c42a6d3a8e92” alterId: 64 cipher: auto tls: true skip-cert-verify: true
proxy-groups:
- name: “Proxy Group 1” type: url-test proxies:
- Proxy 1
- Proxy 2 url: “http://www.gstatic.com/generate_204” interval: 300
- name: “Proxy Group 2” type: fallback proxies:
- Proxy 1
- Proxy 2 url: “http://www.gstatic.com/generate_204” interval: 300
rules:
- DOMAIN-SUFFIX,google.com,Proxy Group 1
- DOMAIN,facebook.com,Proxy Group 2
- IP-CIDR,10.0.0.0/8,DIRECT
- SRC-PORT,7777,DIRECT
- DST-PORT,8888,DIRECT
- PROCESS-NAME,Telegram,Proxy Group 1