Clash 配置文件编写与导入教程 – wiki基地


掌握自由之钥:Clash 配置文件编写与导入教程

引言:Clash 的强大与配置文件的核心地位

在当今复杂的网络环境中,无论是出于访问特定资源的需求,还是为了增强网络安全与隐私保护,代理工具都扮演着越来越重要的角色。在众多代理客户端中,Clash 凭借其强大的功能、灵活的配置以及对多种代理协议的支持,赢得了大量用户的青睐。然而,Clash 的强大之处也伴随着一定的学习曲线,其核心——配置文件——便是理解和驾驭 Clash 的关键。

Clash 并非一个简单的“一键连接”工具,它更像是一个高度可定制的网络路由器。所有的路由规则、代理节点、策略组设置等,都通过一份结构化的文本文件——YAML 格式的配置文件——来定义。这份配置文件就是您赋予 Clash 的“指令集”,它决定了您的网络流量如何被处理、何时走代理、何时直连、何时被拒绝,以及选择哪个代理节点等一系列行为。

本篇文章旨在为您提供一份详尽的 Clash 配置文件编写与导入教程,从最基础的 YAML 语法,到配置文件中各个核心模块的深入解析,再到实际的编写技巧、高级应用以及在不同客户端上的导入步骤,希望能帮助您彻底掌握 Clash 的精髓,成为一名真正的网络掌控者。

第一章:Clash 配置文件的基石——YAML 语法入门

在深入 Clash 配置文件之前,我们首先需要了解其所使用的语言格式:YAML (YAML Ain’t Markup Language)。YAML 是一种人类可读的数据序列化标准,常用于配置文件。它的核心特点是简洁、易读。

1.1 YAML 核心语法要素

  • 键值对 (Key-Value Pairs): YAML 最基本的组成单位,通过冒号 : 连接键和值。
    yaml
    key: value

    注意: 冒号后面必须有一个空格。

  • 缩进 (Indentation): YAML 使用缩进来表示层级关系。切记:只能使用空格进行缩进,不能使用 Tab 键! 并且同一层级的元素必须保持相同的缩进。通常建议使用 2 个或 4 个空格作为一级缩进。
    yaml
    parent_key:
    child_key_1: value1
    child_key_2: value2

  • 列表 (Lists / Arrays): 使用短横线 - 表示列表项。
    “`yaml
    list_key:

    • item1
    • item2
    • item3
      “`
  • 注释 (Comments): 使用 # 符号表示注释,Clash 会忽略注释内容。
    yaml
    # 这是一个注释
    key: value # 这也是一个注释

  • 字符串 (Strings): 通常不需要引号,但如果字符串中包含特殊字符(如冒号、短横线、空格开头等),或者为了避免歧义,可以使用单引号 ' 或双引号 " 包裹。
    yaml
    name: Hello World
    message: 'Hello: World' # 包含冒号

1.2 YAML 验证工具

由于 YAML 对缩进和语法非常敏感,一个微小的错误都可能导致配置文件无法加载。因此,在编写完成后,强烈建议使用在线 YAML 验证工具进行检查,例如:
* YAML Lint
* Code Beautify YAML Validator

第二章:Clash 配置文件核心模块解析

一个完整的 Clash 配置文件通常包含以下几个核心模块,它们共同定义了 Clash 的行为:

  1. Port 相关设置
  2. General 通用设置
  3. DNS 设置
  4. Proxies (代理节点)
  5. Proxy Groups (代理策略组)
  6. Rules (路由规则)
  7. Rule Providers (规则提供者,高级功能)
  8. Proxy Providers (代理提供者,高级功能)

我们将逐一详细解析这些模块。

2.1 Port 相关设置

这些设置定义了 Clash 监听的端口,用于不同类型的代理服务。

yaml
port: 7890 # HTTP/SOCKS5 混合代理端口,用于普通应用
socks-port: 7891 # SOCKS5 代理端口,通常用于不支持 HTTP 代理的应用
redir-port: 7892 # 透明代理端口 (Linux/macOS),需要通过系统级配置将流量重定向至此
tproxy-port: 7893 # TPROXY 透明代理端口 (Linux),用于更高级的透明代理设置

  • port: HTTP 和 SOCKS5 混合代理端口。大部分应用程序通过设置 HTTP 或 SOCKS5 代理即可使用。
  • socks-port: 纯 SOCKS5 代理端口。
  • redir-port: 这是一个 透明代理 端口,主要用于将操作系统或路由器的流量通过 iptables/pf 等工具重定向到 Clash,从而实现全局代理。
  • tproxy-port: 同样是透明代理端口,专为 Linux 系统下的 TPROXY 模式设计,提供更底层的透明代理能力。

2.2 General 通用设置

这部分包含 Clash 的全局行为控制。

yaml
allow-lan: false # 是否允许局域网内的其他设备连接 Clash 代理端口
mode: rule # 代理模式:rule (规则模式), global (全局代理), direct (全局直连)
log-level: info # 日志级别:silent, error, warning, info, debug
external-controller: 127.0.0.1:9090 # 外部控制器的地址和端口,用于 Dashboard 等管理工具
external-ui: dashboard # 外部控制器的 UI 文件夹名称,通常配合 external-controller 使用
secret: '' # 外部控制器连接密码,留空则无密码
unified-delay: true # 统一延迟测试,避免代理组内部代理重复测试
tcp-concurrent: true # TCP 并发连接
find-process-mode: strict # 进程匹配模式 (仅 Linux/macOS)

  • allow-lan: 如果设置为 true,其他设备(如手机、其他电脑)可以通过您的设备的 IP 地址和 Clash 监听的端口来使用 Clash 代理。这在局域网内共享代理时非常有用。
  • mode:
    • rule: 默认且推荐模式。Clash 会根据配置文件中的 rules 模块来决定流量是直连、代理还是拒绝。
    • global: 所有流量都通过 proxy-groups 中选定的“全局”代理节点进行代理。
    • direct: 所有流量都直连,Clash 此时相当于一个空的转发器。
  • log-level: 用于控制 Clash 输出日志的详细程度,方便调试。
  • external-controller: Clash 提供了一个 API 接口,允许第三方工具(如 Clash Dashboard)通过这个接口来管理和监控 Clash。
  • external-ui: 如果您下载了 Clash Dashboard 等 UI 界面,需要指定其文件夹名称,Clash 会在 external-controller 端口上提供这个 UI 界面。
  • secret: 为 external-controller 设置访问密码,增强安全性。
  • unified-delay: 开启后,所有代理节点只进行一次延迟测试,结果在所有策略组中共享,减少重复测试。
  • tcp-concurrent: 允许 TCP 连接并发。
  • find-process-mode: 进程匹配模式,仅在 Linux/macOS 上通过 PROCESS 规则匹配流量时使用。

2.3 DNS 设置

DNS 是网络请求的第一步,Clash 的 DNS 设置对于隐私保护、防污染以及提升解析速度至关重要。

yaml
dns:
enable: true # 启用 DNS 模块
ipv6: false # 是否启用 IPv6 DNS 解析
listen: 0.0.0.0:53 # DNS 监听地址和端口
enhanced-mode: fake-ip # DNS 增强模式:fake-ip (推荐) 或 redir-host
fake-ip-range: 198.18.0.1/16 # fake-ip 模式下的 IP 地址范围
fake-ip-filter: # fake-ip 模式下的过滤列表,这些域名不会被 fake-ip 处理
- +.stun.*.*
- +.n.n.srv.nintendo.net
- +.log.sentry.io
- +.srv.nintendo.net
- +.msftconnecttest.com
- +.xboxlive.com
default-nameserver: # 默认上游 DNS 服务器,用于解析所有流量
- 114.114.114.114
- 223.5.5.5
nameserver: # 特定域名使用特定 DNS 服务器,例如加密 DNS
- https://dns.google/dns-query
- tls://dns.google
- 8.8.8.8
fallback: # 当 nameserver 解析失败时,或特定域名需要直连解析时使用的 DNS
- https://doh.pub/dns-query
- tls://1.1.1.1
fallback-filter: # fallback 机制的触发条件
geoip: true # 检测到 IP 属于中国大陆时,触发 fallback
geoip-code: CN # 中国大陆的 GEOIP 代码
ipcidr: # 匹配到这些 IP 段时,触发 fallback
- 240.0.0.0/4
domain: # 匹配到这些域名时,触发 fallback
- +.google.com
- +.facebook.com

  • enable: 是否启用 Clash 的内置 DNS 服务器。强烈建议启用。
  • enhanced-mode:
    • fake-ip: (推荐) Clash 会为所有请求的域名分配一个“虚拟 IP”(Fake IP),并根据后续的流量匹配规则来决定如何处理这些虚拟 IP 的实际连接。这能有效避免 DNS 污染和 IP 泄漏。
    • redir-host: Clash 会直接将 DNS 解析结果的真实 IP 用于后续连接,并在规则匹配时检查域名。相对 fake-ip 更简单,但可能面临 DNS 污染和 IP 泄漏的风险。
  • fake-ip-range: fake-ip 模式下虚拟 IP 的范围,一般无需修改。
  • fake-ip-filter: 在 fake-ip 模式下,这些域名不会被分配虚拟 IP,而是直接解析真实 IP。通常用于一些需要特定 IP 才能正常工作的服务。
  • default-nameserver: 默认的上游 DNS 服务器列表,Clash 会用它们来解析所有域名。
  • nameserver: 特定于代理流量的 DNS 服务器,通常建议使用加密 DNS (DoH/DoT) 来保护隐私。Clash 会尝试并行请求 default-nameservernameserver,以最快返回的结果为准。
  • fallback: 当 nameserver 解析失败,或者解析结果被判断为可能被污染时,Clash 会尝试使用 fallback 中的 DNS 服务器重新解析。通常配置一些可靠的非大陆 DNS。
  • fallback-filter: 定义何时触发 fallback 机制。geoipgeoip-code 用于判断 IP 归属地;ipcidrdomain 用于匹配特定的 IP 段或域名。

2.4 Proxies (代理节点)

这是您购买或获取的实际代理服务器信息。Clash 支持多种代理协议。

“`yaml
proxies:
# Shadowsocks (SS)
– name: “My-SS-Proxy”
type: ss
server: example.com
port: 443
password: “your_password”
cipher: aes-256-gcm
udp: true

# ShadowsocksR (SSR)
# Clash 原生不支持 SSR,需要第三方魔改版 Clash 或通过订阅转换
# 如果您的 Clash 客户端支持 SSR,格式大致如下
# – name: “My-SSR-Proxy”
# type: ssr
# server: example.com
# port: 443
# password: “your_password”
# cipher: aes-256-cfb
# protocol: auth_aes128_md5
# protocol-param: “auth_param”
# obfs: tls1.2_ticket_auth
# obfs-param: “obfs_param”

# Vmess
– name: “My-VMESS-Proxy”
type: vmess
server: vmess.server.com
port: 443
uuid: “your_uuid”
alterId: 0
cipher: auto
udp: true
tls: true
servername: vmess.server.com # SNI
network: ws
ws-path: “/path”
ws-headers:
Host: vmess.server.com

# Trojan
– name: “My-TROJAN-Proxy”
type: trojan
server: trojan.server.com
port: 443
password: “your_password”
udp: true
tls: true
servername: trojan.server.com # SNI

# HTTP
– name: “My-HTTP-Proxy”
type: http
server: http.server.com
port: 8080
username: “user” # 可选
password: “pass” # 可选

# Snell
– name: “My-SNELL-Proxy”
type: snell
server: snell.server.com
port: 443
psk: “your_psk”
version: 3 # Snell V3
“`

  • name: 代理节点的唯一名称,供 proxy-groups 引用。
  • type: 代理协议类型(ss, vmess, trojan, http, snell 等)。
  • server: 代理服务器地址(IP 或域名)。
  • port: 代理服务器端口。
  • 其他参数如 password, uuid, cipher, alterId, tls, servername, network, ws-path, ws-headers 等,都根据协议类型而异。请务必根据您的代理服务提供商给出的信息正确填写。
  • udp: true: 开启 UDP 转发。对于一些需要 UDP 的应用(如游戏、视频会议),这非常重要。

2.5 Proxy Groups (代理策略组)

策略组是 Clash 路由逻辑的核心,它允许您将多个代理节点组合起来,并定义如何选择这些节点。

“`yaml
proxy-groups:
– name: “Proxy” # 策略组名称
type: select # 策略组类型
proxies: # 包含的代理节点或子策略组
– “Auto-Select”
– “Fallback”
– “DIRECT”
– “My-SS-Proxy”
– “My-VMESS-Proxy”
– “My-TROJAN-Proxy”

  • name: “Auto-Select” # 自动选择延迟最低的节点
    type: url-test
    url: “http://www.gstatic.com/generate_204” # 延迟测试 URL
    interval: 300 # 延迟测试间隔 (秒)
    proxies:

    • “My-SS-Proxy”
    • “My-VMESS-Proxy”
    • “My-TROJAN-Proxy”
  • name: “Fallback” # 故障转移,当一个节点失效时自动切换到下一个
    type: fallback
    url: “http://www.gstatic.com/generate_204”
    interval: 300
    proxies:

    • “My-SS-Proxy”
    • “My-VMESS-Proxy”
    • “My-TROJAN-Proxy”
  • name: “Load-Balance” # 负载均衡,流量均匀分配到多个节点 (不常用)
    type: load-balance
    url: “http://www.gstatic.com/generate_204”
    interval: 300
    proxies:

    • “My-SS-Proxy”
    • “My-VMESS-Proxy”
    • “My-TROJAN-Proxy”
  • name: “DIRECT” # 直连策略,通常用于规则的终点
    type: select
    proxies:

    • DIRECT
  • name: “REJECT” # 拒绝策略,用于屏蔽广告或恶意流量
    type: select
    proxies:

    • REJECT
      “`
  • name: 策略组的唯一名称,供其他策略组或 rules 引用。

  • type: 策略组类型:
    • select: 手动选择。用户可以在 Clash Dashboard 或客户端中手动切换此组内的代理节点或子策略组。是最常用的类型,通常用于创建主策略组或选择器。
    • url-test: 自动选择。Clash 会定期测试组内所有代理节点的延迟,并自动选择延迟最低的节点。
      • url: 用于测试延迟的 URL,通常选择一个稳定且代理能访问的网站(如 Google)。
      • interval: 测试间隔(秒)。
    • fallback: 故障转移。Clash 会按照 proxies 列表的顺序测试节点,当当前节点不可用时,自动切换到列表中的下一个可用节点。
    • load-balance: 负载均衡。Clash 会将流量均匀分配到组内所有可用的节点。
    • relay: 接力代理。将流量依次通过组内所有代理节点,形成链式代理。较少使用。
  • proxies: 列表,包含此策略组所管理的代理节点名称或子策略组名称。
    • DIRECT: 一个特殊的关键字,表示直连。
    • REJECT: 一个特殊的关键字,表示拒绝连接。

2.6 Rules (路由规则)

规则是 Clash 的大脑,它根据流量的类型、目标域名、IP 地址、来源进程等,决定将流量转发到哪个策略组或直接处理(直连/拒绝)。规则的顺序至关重要:Clash 会从上到下逐条匹配,一旦匹配成功,即停止后续匹配。

“`yaml
rules:
# 本地网络直连规则,建议放在最前面
– RULE-SET,LAN,DIRECT
– IP-CIDR,192.168.0.0/16,DIRECT,no-resolve
– IP-CIDR,10.0.0.0/8,DIRECT,no-resolve
– IP-CIDR,172.16.0.0/12,DIRECT,no-resolve
– GEOIP,CN,DIRECT # 大陆 IP 直连,通常配合 DNS 的 fallback-filter 使用

# 广告屏蔽规则
– RULE-SET,AdBlock,REJECT

# 常用网站直连(如果这些网站不需要代理)
– DOMAIN-SUFFIX,cn,DIRECT
– DOMAIN-SUFFIX,baidu.com,DIRECT
– DOMAIN-KEYWORD,weibo,DIRECT

# 流媒体服务,例如 Netflix, YouTube 等,可能需要特定的代理节点或策略组
– RULE-SET,Media,Proxy # 假设您有一个专门的策略组用于流媒体

# 国外网站通过代理
– DOMAIN-SUFFIX,google.com,Proxy
– DOMAIN-KEYWORD,facebook,Proxy
– GEOIP,US,Proxy # 美国 IP 走代理
– GEOIP,SG,Proxy # 新加坡 IP 走代理

# 其他特殊需求
– PROCESS-NAME,BaiduNetdisk.exe,DIRECT # 百度网盘直连 (Windows 客户端)
– PROCESS,Telegram,Proxy # Telegram 走代理 (macOS/Linux)

# 兜底规则:放在最后!未匹配的流量全部通过 ‘Proxy’ 策略组处理
– MATCH,Proxy
“`

  • RULE-SET: 引用一个外部规则集文件,极大地简化了规则管理。例如,RULE-SET,LAN,DIRECT 表示引用名为 LAN 的规则集,匹配到的流量走 DIRECT
  • DOMAIN: 匹配完整域名。
    • DOMAIN,www.google.com,Proxy
  • DOMAIN-SUFFIX: 匹配域名后缀。
    • DOMAIN-SUFFIX,google.com,Proxy (匹配 *.google.com)
  • DOMAIN-KEYWORD: 匹配域名中的关键词。
    • DOMAIN-KEYWORD,youtube,Proxy (匹配包含 “youtube” 的域名)
  • IP-CIDR: 匹配 IP 地址范围。
    • IP-CIDR,192.168.1.0/24,DIRECT
    • no-resolve: 指示 Clash 不对这个 IP 进行 DNS 解析,直接使用 IP。
  • GEOIP: 匹配 IP 地址所属的国家/地区。
    • GEOIP,CN,DIRECT: 中国大陆的 IP 直连。
  • PROCESS-NAME: (仅 Windows) 匹配进程名称。
    • PROCESS-NAME,Telegram.exe,Proxy
  • PROCESS: (仅 Linux/macOS) 匹配进程名称。
    • PROCESS,Telegram,Proxy
  • MATCH: 兜底规则。必须放在所有规则的最后。所有未被前面规则匹配到的流量都将应用此规则。通常指向一个主策略组或 DIRECT

2.7 Rule Providers (规则提供者) 和 Proxy Providers (代理提供者)

这两个是 Clash 的高级功能,用于动态加载和更新规则集或代理节点,极大地提升了配置文件的可维护性。

“`yaml

Rule Providers 规则提供者

rule-providers:
“AdBlock”: # 规则集的名称
type: http # 获取方式:http 或 file
behavior: domain # 规则类型:domain (域名), ipcidr (IP), classical (混合)
url: “https://your-rule-list-host.com/ad_rules.txt” # 规则列表的 URL
interval: 86400 # 更新间隔 (秒),例如 24 小时
path: “./rules/ad_rules.yaml” # 规则文件在本地的存储路径

“LAN”:
type: http
behavior: ipcidr
url: “https://your-rule-list-host.com/lan_rules.txt”
interval: 86400
path: “./rules/lan_rules.yaml”

Proxy Providers 代理提供者

proxy-providers:
“My-Subscription”: # 订阅名称
type: http # 获取方式:http
url: “https://your-proxy-subscription-link.com” # 订阅链接
interval: 3600 # 更新间隔 (秒),例如 1 小时
path: “./proxies/my_subscription.yaml” # 订阅文件在本地的存储路径
health-check: # 健康检查配置
enable: true
url: “http://www.gstatic.com/generate_204”
interval: 300
“`

  • Rule Providers:
    • name: 规则提供者的名称,在 rules 模块中通过 RULE-SET,Name,Action 引用。
    • type: http (从 URL 获取) 或 file (从本地文件获取)。
    • behavior: 规则类型,Clash 会根据这个类型进行优化。
      • domain: 规则列表主要包含 DOMAINDOMAIN-SUFFIX 规则。
      • ipcidr: 规则列表主要包含 IP-CIDR 规则。
      • classical: 混合类型,包含多种规则。
    • url: 规则列表的 URL。
    • interval: Clash 自动更新此规则列表的间隔时间。
    • path: 规则列表在本地的缓存路径。
  • Proxy Providers:
    • name: 代理提供者的名称。
    • type: 通常为 http
    • url: 您的代理订阅链接。
    • interval: Clash 自动更新代理节点的间隔时间。
    • path: 代理列表在本地的缓存路径。
    • health-check: 可以为代理提供者设置独立的健康检查,以确保代理节点是可用的。

使用 Rule ProvidersProxy Providers,您可以将庞大的规则集和代理列表交给 Clahs 自动管理,无需手动复制粘贴,大大提升了便捷性。

第三章:实际配置文件编写示例

了解了各个模块后,我们来看一个相对完整的配置文件结构示例。

“`yaml

1. Port 相关设置

port: 7890
socks-port: 7891
redir-port: 7892 # macOS/Linux 可用
tproxy-port: 7893 # Linux TPROXY 可用

2. General 通用设置

allow-lan: false
mode: rule
log-level: info
external-controller: 127.0.0.1:9090
external-ui: ui # 假设你的UI文件夹名为ui
secret: “” # Dashboard访问密码

3. DNS 设置

dns:
enable: true
ipv6: false
listen: 0.0.0.0:53
enhanced-mode: fake-ip
fake-ip-range: 198.18.0.1/16
fake-ip-filter:
– +.stun..
– +.n.n.srv.nintendo.net
– +.log.sentry.io
default-nameserver:
– 114.114.114.114
– 223.5.5.5
nameserver:
– https://dns.google/dns-query
– tls://1.1.1.1
fallback:
– https://doh.pub/dns-query
– tls://8.8.8.8
fallback-filter:
geoip: true
geoip-code: CN
domain:
– +.google.com
– +.facebook.com

4. Proxies (代理节点) – 示例,实际请替换为您自己的节点信息

proxies:
– name: “HK-Proxy-01”
type: vmess
server: hk.vmess.com
port: 443
uuid: “your-uuid-1”
alterId: 0
cipher: auto
tls: true
servername: hk.vmess.com
network: ws
ws-path: “/vmess”
udp: true

  • name: “SG-Proxy-02”
    type: trojan
    server: sg.trojan.com
    port: 443
    password: “your-password-2”
    tls: true
    servername: sg.trojan.com
    udp: true

  • name: “JP-Proxy-03”
    type: ss
    server: jp.ss.com
    port: 443
    password: “your-password-3”
    cipher: aes-256-gcm
    udp: true

5. Proxy Groups (代理策略组)

proxy-groups:
– name: “Proxy”
type: select
proxies:
– “Auto”
– “Fallback”
– “HK-Proxy-01”
– “SG-Proxy-02”
– “JP-Proxy-03”
– “DIRECT”

  • name: “Auto”
    type: url-test
    url: “http://www.gstatic.com/generate_204”
    interval: 300
    proxies:

    • “HK-Proxy-01”
    • “SG-Proxy-02”
    • “JP-Proxy-03”
  • name: “Fallback”
    type: fallback
    url: “http://www.gstatic.com/generate_204”
    interval: 300
    proxies:

    • “HK-Proxy-01”
    • “SG-Proxy-02”
    • “JP-Proxy-03”
  • name: “Netflix” # 针对流媒体的策略组
    type: select
    proxies:

    • “HK-Proxy-01” # 假设此节点支持Netflix
    • “SG-Proxy-02”
    • “DIRECT”
  • name: “AdBlock” # 广告屏蔽策略组
    type: select
    proxies:

    • REJECT
  • name: “Global” # 全局代理,如果 mode 设置为 global,则流量会走这里
    type: select
    proxies:

    • “Auto”
    • “DIRECT”

6. Rule Providers (规则提供者) – 推荐使用

rule-providers:
“Ad”:
type: http
behavior: domain
url: “https://testingcf.jsdelivr.net/gh/Loyalsen/clash-rules@release/rules/AdBlock.yaml”
interval: 86400
path: “./rules/ad.yaml”

“CN_Direct”:
type: http
behavior: ipcidr
url: “https://testingcf.jsdelivr.net/gh/Loyalsen/clash-rules@release/rules/ChinaDirect.yaml”
interval: 86400
path: “./rules/cn_direct.yaml”

“Netflix_Rules”:
type: http
behavior: domain
url: “https://testingcf.jsdelivr.net/gh/Loyalsen/clash-rules@release/rules/Netflix.yaml”
interval: 86400
path: “./rules/netflix.yaml”

7. Rules (路由规则) – 顺序非常重要

rules:
# 本地网络直连
– RULE-SET,CN_Direct,DIRECT
– IP-CIDR,192.168.0.0/16,DIRECT,no-resolve
– IP-CIDR,10.0.0.0/8,DIRECT,no-resolve
– IP-CIDR,172.16.0.0/12,DIRECT,no-resolve
– GEOIP,CN,DIRECT,no-resolve # 中国大陆 IP 直连

# 广告屏蔽
– RULE-SET,Ad,REJECT

# 流媒体服务
– RULE-SET,Netflix_Rules,Netflix

# 常用直连域名
– DOMAIN-SUFFIX,cn,DIRECT
– DOMAIN-SUFFIX,baidu.com,DIRECT
– DOMAIN-SUFFIX,qq.com,DIRECT

# 其他国外网站通过代理
– DOMAIN-SUFFIX,google.com,Proxy
– DOMAIN-KEYWORD,youtube,Proxy
– GEOIP,US,Proxy
– GEOIP,JP,Proxy

# 兜底规则:所有未匹配的流量都走 ‘Proxy’ 策略组
– MATCH,Proxy
“`

提示: 上述 rule-providers 中的 URL 仅为示例,请根据实际情况替换为可靠的规则列表源。常见的规则集项目有 Loyalsen/clash-rules 等。

第四章:Clash 配置文件的导入与管理

编写好配置文件后,下一步就是将其导入到您的 Clash 客户端中并进行管理。Clash 有多个版本和不同的客户端,我们主要以 Clash for Windows, ClashX (macOS) 和 Clash for Android 为例。

4.1 配置文件来源

在导入之前,您需要明确配置文件的来源:

  1. 自己手写或修改的 YAML 文件:这是最灵活的方式。
  2. 订阅链接 (Subscription Link):这是最常见的方式。代理服务提供商会给您一个链接,其中包含了大量的代理节点信息。
  3. 订阅转换工具 (Subscription Converter):由于不同的代理客户端支持的协议格式可能不同,或者您想在订阅中添加自定义规则、过滤节点等,可以使用在线订阅转换工具将原始订阅链接转换为 Clash 兼容的 YAML 格式。
    • 常见转换工具: ACL4SSRSubconverter (自建或公共实例)。
    • 转换目的:
      • 将非 Clash 格式(如 V2RayN 的 JSON 订阅)转换为 Clash YAML。
      • 添加 Rule Providers 或自定义 Rules
      • 过滤掉不想要的节点或国家。
      • 整合多个订阅链接。

4.2 Clash for Windows 导入教程

Clash for Windows (CFW) 是 Windows 平台上最受欢迎的 Clash 客户端之一,拥有美观的图形界面。

  1. 下载并安装 Clash for Windows: 访问 GitHub Release 页面下载最新版本。

  2. 导入配置文件:

    • 从 URL 导入 (推荐用于订阅链接):
      1. 打开 Clash for Windows 客户端。
      2. 点击左侧菜单栏的 Profiles (配置文件)。
      3. 在顶部输入框粘贴您的 Clash 订阅链接 (或转换后的 Clash YAML 链接)。
      4. 点击 Download (下载) 按钮。Clash 会自动下载配置文件并显示在列表中。
      5. 下载完成后,点击列表中的配置文件名称即可激活。
    • 从本地文件导入:
      1. 如果您手写或下载了 .yaml 后缀的配置文件,将其保存在本地。
      2. 点击 Profiles 页面右侧的 Import (导入) 按钮。
      3. 选择您本地的 YAML 配置文件,点击 打开
      4. 导入后,点击列表中的配置文件名称即可激活。
  3. 配置文件管理:

    • 更新配置文件: 对于从 URL 导入的配置文件,点击配置文件旁边的 Update (更新) 按钮,Clash 会重新下载最新版本。
    • 编辑配置文件: 选中配置文件,点击右键菜单中的 Edit (编辑),Clash 会用默认文本编辑器打开文件。修改后保存,并在 CFW 中重新激活该配置文件。
    • 切换配置文件:Profiles 列表中点击不同的配置文件名称即可切换。
  4. 启动 Clash 服务:

    • 切换到 General (通用设置) 页面。
    • 点击 System Proxy (系统代理) 旁边的开关,开启系统代理。
    • 点击 Start (启动) 按钮,启动 Clash 核心服务。
    • 如果需要代理局域网内其他设备,请开启 Allow LAN

4.3 ClashX (macOS) 导入教程

ClashX 是 macOS 上的 Clash 客户端。

  1. 下载并安装 ClashX: 访问 GitHub Release 页面下载最新版本。

  2. 导入配置文件:

    • 从 URL 导入:
      1. 点击 macOS 菜单栏上的 ClashX 图标。
      2. 选择 配置 -> 管理配置
      3. 在弹出的窗口中,点击左下角的 添加 ( + ) 按钮。
      4. 粘贴您的 Clash 订阅链接 (或转换后的 Clash YAML 链接),并为配置起一个名字。
      5. 点击 。ClashX 会下载并添加配置文件。
    • 从本地文件导入:
      1. 将您的 .yaml 配置文件保存在本地。
      2. 点击 macOS 菜单栏上的 ClashX 图标。
      3. 选择 配置 -> 从文件导入
      4. 选择您本地的 YAML 配置文件。
  3. 激活配置文件:

    • 点击 macOS 菜单栏上的 ClashX 图标。
    • 选择 配置
    • 在下拉列表中选择您刚刚导入的配置文件名称。
    • 如果需要更新,在 管理配置 界面选中配置后,点击右下角的 更新 按钮。
  4. 启动 Clash 服务:

    • 点击 macOS 菜单栏上的 ClashX 图标。
    • 确保 设置为系统代理 已勾选。
    • 选择 出站模式 (Rule, Global, Direct)。

4.4 Clash for Android 导入教程

Clash for Android (CFA) 是 Android 上的 Clash 客户端。

  1. 下载并安装 Clash for Android: 访问 GitHub Release 页面下载最新版本。

  2. 导入配置文件:

    • 从 URL 导入 (推荐):
      1. 打开 Clash for Android 客户端。
      2. 点击底部导航栏的 配置 (Profiles)。
      3. 点击右下角的 + 按钮。
      4. 选择 从 URL 导入
      5. 粘贴您的 Clash 订阅链接 (或转换后的 Clash YAML 链接),并设置一个名称。
      6. 点击 保存。CFA 会下载并显示配置文件。
    • 从本地文件导入:
      1. 将您的 .yaml 配置文件保存在手机存储中。
      2. 配置 页面,点击右下角的 + 按钮。
      3. 选择 从文件导入
      4. 导航到您保存配置文件的位置,选择文件。
  3. 激活配置文件:

    • 配置 页面,点击您想要激活的配置文件名称,然后选择 激活
  4. 启动 Clash 服务:

    • 切换到 首页 (Home) 页面。
    • 点击顶部巨大的 启动 (Start) 按钮。
    • 如果系统提示 VPN 连接请求,请授权。

4.5 其他客户端 (Clash Verge, Nyanpasu, OpenClash 等)

虽然界面和步骤可能略有不同,但核心原理都是一样的:找到 Profiles配置 区域,选择 从 URL 导入从文件导入,然后激活并启动服务。

第五章:常见问题与故障排除

即使是经验丰富的用户,在配置 Clash 时也可能遇到问题。

  1. YAML 语法错误: 这是最常见的问题。一个空格、一个冒号、一个字母的错误都可能导致配置文件无法加载。

    • 解决方案: 使用在线 YAML 验证工具检查。仔细检查缩进。
  2. 无法连接代理:

    • 解决方案:
      • 检查代理节点信息是否正确(服务器、端口、密码/UUID、协议类型)。
      • 在 Clash Dashboard 中进行延迟测试,看节点是否可用。
      • 检查防火墙设置,确保 Clash 端口没有被阻止。
      • 确认系统代理已正确开启。
      • 如果使用透明代理,检查 iptables/pf 配置是否正确。
  3. DNS 解析问题 / IP 泄漏:

    • 解决方案:
      • 确保 dns 模块已启用,并配置了可靠的上游 DNS 服务器(如 DoH/DoT)。
      • 推荐使用 enhanced-mode: fake-ip
      • 检查 fallback-filter 设置,避免不必要的 DNS 污染。
      • 使用专业的 DNS 泄漏检测工具(如 dnsleaktest.com)进行测试。
  4. 规则不生效或路由错误:

    • 解决方案:
      • 规则顺序是关键! 最具体的规则应放在前面,最通用的规则(如 GEOIPMATCH)应放在后面。
      • 查看 Clash 日志,通常会有流量匹配的记录。
      • 在 Clash Dashboard 中,查看 连接 页面,可以实时看到每个连接命中了哪个规则和代理。
      • 确保 rules 模块中的策略组名称与 proxy-groups 模块中定义的名称完全一致。
  5. 订阅无法更新 / 规则提供者无法下载:

    • 解决方案:
      • 检查 URL 是否可访问。尝试在浏览器中直接访问 URL。
      • 检查网络连接。
      • 确保 interval 设置合理。
      • 如果订阅链接需要代理才能访问(即“套娃”),请确保您的基础代理是可用的。
  6. 性能问题:

    • 解决方案:
      • 检查代理节点的实际带宽和稳定性。
      • url-testfallback 策略组的 interval 不要设置过短,避免频繁测试导致资源消耗。
      • 如果规则集过于庞大,可能会影响性能,考虑优化规则或使用 Rule Providers

结语:拥抱自定义,掌控您的网络

Clash 的配置文件是其灵魂所在。从最初对 YAML 语法的一无所知,到能够手写并优化一份复杂的配置,这个过程本身就是一次对网络原理和代理技术的深入理解。它赋予了您前所未有的自由度,让您能够精确地控制每一个网络连接的行为,无论是为了加速访问,保护隐私,还是享受更流畅的流媒体体验。

希望这份详尽的教程能够帮助您彻底掌握 Clash 配置文件的编写与导入。记住,实践是最好的老师,多尝试、多调试,您会发现 Clash 远不止一个简单的代理工具,它更是您网络世界中的一把强大而灵活的瑞士军刀。祝您配置顺利,网络畅通无阻!

发表评论

您的邮箱地址不会被公开。 必填项已用 * 标注

滚动至顶部