Clash YAML 配置详解 – 全面掌握 Clash 的高级使用技巧

目录

1. 什么是 Clash YAML 配置?

Clash 是一款功能强大的代理客户端软件,它支持多种代理协议,包括 SS/SSRVMessTrojan 等。Clash 的配置文件使用 YAML 格式,可以非常灵活地定义代理服务器、分组和路由规则。

YAML 是一种人类可读的数据序列化格式,它比传统的 JSON 格式更加简洁易读。Clash 的 YAML 配置文件包含三个主要部分:

  1. Proxy: 定义代理服务器的详细信息,如服务器地址、端口、加密方式等。
  2. Proxy Group: 定义代理分组,如负载均衡、延迟测试、故障转移等。
  3. 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

7. Clash YAML 配置常见问题 FAQ

7.1 如

正文完