掌握自由之钥: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 的行为:
Port相关设置General通用设置DNS设置Proxies(代理节点)Proxy Groups(代理策略组)Rules(路由规则)Rule Providers(规则提供者,高级功能)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-nameserver和nameserver,以最快返回的结果为准。fallback: 当nameserver解析失败,或者解析结果被判断为可能被污染时,Clash 会尝试使用fallback中的 DNS 服务器重新解析。通常配置一些可靠的非大陆 DNS。fallback-filter: 定义何时触发fallback机制。geoip和geoip-code用于判断 IP 归属地;ipcidr和domain用于匹配特定的 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
“`
- 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,DIRECTno-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: 规则列表主要包含DOMAIN或DOMAIN-SUFFIX规则。ipcidr: 规则列表主要包含IP-CIDR规则。classical: 混合类型,包含多种规则。
url: 规则列表的 URL。interval: Clash 自动更新此规则列表的间隔时间。path: 规则列表在本地的缓存路径。
- Proxy Providers:
name: 代理提供者的名称。type: 通常为http。url: 您的代理订阅链接。interval: Clash 自动更新代理节点的间隔时间。path: 代理列表在本地的缓存路径。health-check: 可以为代理提供者设置独立的健康检查,以确保代理节点是可用的。
使用 Rule Providers 和 Proxy 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 配置文件来源
在导入之前,您需要明确配置文件的来源:
- 自己手写或修改的 YAML 文件:这是最灵活的方式。
- 订阅链接 (Subscription Link):这是最常见的方式。代理服务提供商会给您一个链接,其中包含了大量的代理节点信息。
- 订阅转换工具 (Subscription Converter):由于不同的代理客户端支持的协议格式可能不同,或者您想在订阅中添加自定义规则、过滤节点等,可以使用在线订阅转换工具将原始订阅链接转换为 Clash 兼容的 YAML 格式。
- 常见转换工具:
ACL4SSR、Subconverter(自建或公共实例)。 - 转换目的:
- 将非 Clash 格式(如 V2RayN 的 JSON 订阅)转换为 Clash YAML。
- 添加
Rule Providers或自定义Rules。 - 过滤掉不想要的节点或国家。
- 整合多个订阅链接。
- 常见转换工具:
4.2 Clash for Windows 导入教程
Clash for Windows (CFW) 是 Windows 平台上最受欢迎的 Clash 客户端之一,拥有美观的图形界面。
-
下载并安装 Clash for Windows: 访问 GitHub Release 页面下载最新版本。
-
导入配置文件:
- 从 URL 导入 (推荐用于订阅链接):
- 打开 Clash for Windows 客户端。
- 点击左侧菜单栏的
Profiles(配置文件)。 - 在顶部输入框粘贴您的 Clash 订阅链接 (或转换后的 Clash YAML 链接)。
- 点击
Download(下载) 按钮。Clash 会自动下载配置文件并显示在列表中。 - 下载完成后,点击列表中的配置文件名称即可激活。
- 从本地文件导入:
- 如果您手写或下载了
.yaml后缀的配置文件,将其保存在本地。 - 点击
Profiles页面右侧的Import(导入) 按钮。 - 选择您本地的 YAML 配置文件,点击
打开。 - 导入后,点击列表中的配置文件名称即可激活。
- 如果您手写或下载了
- 从 URL 导入 (推荐用于订阅链接):
-
配置文件管理:
- 更新配置文件: 对于从 URL 导入的配置文件,点击配置文件旁边的
Update(更新) 按钮,Clash 会重新下载最新版本。 - 编辑配置文件: 选中配置文件,点击右键菜单中的
Edit(编辑),Clash 会用默认文本编辑器打开文件。修改后保存,并在 CFW 中重新激活该配置文件。 - 切换配置文件: 在
Profiles列表中点击不同的配置文件名称即可切换。
- 更新配置文件: 对于从 URL 导入的配置文件,点击配置文件旁边的
-
启动 Clash 服务:
- 切换到
General(通用设置) 页面。 - 点击
System Proxy(系统代理) 旁边的开关,开启系统代理。 - 点击
Start(启动) 按钮,启动 Clash 核心服务。 - 如果需要代理局域网内其他设备,请开启
Allow LAN。
- 切换到
4.3 ClashX (macOS) 导入教程
ClashX 是 macOS 上的 Clash 客户端。
-
下载并安装 ClashX: 访问 GitHub Release 页面下载最新版本。
-
导入配置文件:
- 从 URL 导入:
- 点击 macOS 菜单栏上的 ClashX 图标。
- 选择
配置->管理配置。 - 在弹出的窗口中,点击左下角的
添加(+) 按钮。 - 粘贴您的 Clash 订阅链接 (或转换后的 Clash YAML 链接),并为配置起一个名字。
- 点击
好。ClashX 会下载并添加配置文件。
- 从本地文件导入:
- 将您的
.yaml配置文件保存在本地。 - 点击 macOS 菜单栏上的 ClashX 图标。
- 选择
配置->从文件导入。 - 选择您本地的 YAML 配置文件。
- 将您的
- 从 URL 导入:
-
激活配置文件:
- 点击 macOS 菜单栏上的 ClashX 图标。
- 选择
配置。 - 在下拉列表中选择您刚刚导入的配置文件名称。
- 如果需要更新,在
管理配置界面选中配置后,点击右下角的更新按钮。
-
启动 Clash 服务:
- 点击 macOS 菜单栏上的 ClashX 图标。
- 确保
设置为系统代理已勾选。 - 选择
出站模式(Rule, Global, Direct)。
4.4 Clash for Android 导入教程
Clash for Android (CFA) 是 Android 上的 Clash 客户端。
-
下载并安装 Clash for Android: 访问 GitHub Release 页面下载最新版本。
-
导入配置文件:
- 从 URL 导入 (推荐):
- 打开 Clash for Android 客户端。
- 点击底部导航栏的
配置(Profiles)。 - 点击右下角的
+按钮。 - 选择
从 URL 导入。 - 粘贴您的 Clash 订阅链接 (或转换后的 Clash YAML 链接),并设置一个名称。
- 点击
保存。CFA 会下载并显示配置文件。
- 从本地文件导入:
- 将您的
.yaml配置文件保存在手机存储中。 - 在
配置页面,点击右下角的+按钮。 - 选择
从文件导入。 - 导航到您保存配置文件的位置,选择文件。
- 将您的
- 从 URL 导入 (推荐):
-
激活配置文件:
- 在
配置页面,点击您想要激活的配置文件名称,然后选择激活。
- 在
-
启动 Clash 服务:
- 切换到
首页(Home) 页面。 - 点击顶部巨大的
启动(Start) 按钮。 - 如果系统提示 VPN 连接请求,请授权。
- 切换到
4.5 其他客户端 (Clash Verge, Nyanpasu, OpenClash 等)
虽然界面和步骤可能略有不同,但核心原理都是一样的:找到 Profiles 或 配置 区域,选择 从 URL 导入 或 从文件导入,然后激活并启动服务。
第五章:常见问题与故障排除
即使是经验丰富的用户,在配置 Clash 时也可能遇到问题。
-
YAML 语法错误: 这是最常见的问题。一个空格、一个冒号、一个字母的错误都可能导致配置文件无法加载。
- 解决方案: 使用在线 YAML 验证工具检查。仔细检查缩进。
-
无法连接代理:
- 解决方案:
- 检查代理节点信息是否正确(服务器、端口、密码/UUID、协议类型)。
- 在 Clash Dashboard 中进行延迟测试,看节点是否可用。
- 检查防火墙设置,确保 Clash 端口没有被阻止。
- 确认系统代理已正确开启。
- 如果使用透明代理,检查 iptables/pf 配置是否正确。
- 解决方案:
-
DNS 解析问题 / IP 泄漏:
- 解决方案:
- 确保
dns模块已启用,并配置了可靠的上游 DNS 服务器(如 DoH/DoT)。 - 推荐使用
enhanced-mode: fake-ip。 - 检查
fallback-filter设置,避免不必要的 DNS 污染。 - 使用专业的 DNS 泄漏检测工具(如
dnsleaktest.com)进行测试。
- 确保
- 解决方案:
-
规则不生效或路由错误:
- 解决方案:
- 规则顺序是关键! 最具体的规则应放在前面,最通用的规则(如
GEOIP或MATCH)应放在后面。 - 查看 Clash 日志,通常会有流量匹配的记录。
- 在 Clash Dashboard 中,查看
连接页面,可以实时看到每个连接命中了哪个规则和代理。 - 确保
rules模块中的策略组名称与proxy-groups模块中定义的名称完全一致。
- 规则顺序是关键! 最具体的规则应放在前面,最通用的规则(如
- 解决方案:
-
订阅无法更新 / 规则提供者无法下载:
- 解决方案:
- 检查 URL 是否可访问。尝试在浏览器中直接访问 URL。
- 检查网络连接。
- 确保
interval设置合理。 - 如果订阅链接需要代理才能访问(即“套娃”),请确保您的基础代理是可用的。
- 解决方案:
-
性能问题:
- 解决方案:
- 检查代理节点的实际带宽和稳定性。
url-test和fallback策略组的interval不要设置过短,避免频繁测试导致资源消耗。- 如果规则集过于庞大,可能会影响性能,考虑优化规则或使用
Rule Providers。
- 解决方案:
结语:拥抱自定义,掌控您的网络
Clash 的配置文件是其灵魂所在。从最初对 YAML 语法的一无所知,到能够手写并优化一份复杂的配置,这个过程本身就是一次对网络原理和代理技术的深入理解。它赋予了您前所未有的自由度,让您能够精确地控制每一个网络连接的行为,无论是为了加速访问,保护隐私,还是享受更流畅的流媒体体验。
希望这份详尽的教程能够帮助您彻底掌握 Clash 配置文件的编写与导入。记住,实践是最好的老师,多尝试、多调试,您会发现 Clash 远不止一个简单的代理工具,它更是您网络世界中的一把强大而灵活的瑞士军刀。祝您配置顺利,网络畅通无阻!