963 words
5 minutes
Clash 配置完全指南:从入门到弃坑
用了三年 Clash,从 mihomo 到 Clash Verge,再到各种衍生版本。这篇算不上教程,就是一些个人经验的流水账。
先说说背景
最开始用 Clash 是因为工作需要访问一些外部资源。当时用的是 Surge,但太贵了,后来转投 Clash 阵营。
三年下来,配置文件改了几百版,从最简单的几行规则,到现在上千行的复杂配置。有些坑踩了好几次,干脆写下来备忘。
配置文件结构
我的配置大概分这几个部分:
# 基础配置port: 7890socks-port: 7891mixed-port: 7892external-controller: 127.0.0.1:9090
# 代理提供者proxy-providers: sub1: type: http url: "https://example.com/subscribe" interval: 3600 path: ./sub1.yaml health-check: enable: true interval: 600 url: http://www.gstatic.com/generate_204
# 代理组proxy-groups: - name: "节点选择" type: select proxies: - "自动选择" - "香港节点" - "日本节点" - "DIRECT"
- name: "自动选择" type: url-test use: - sub1 url: http://www.gstatic.com/generate_204 interval: 300 tolerance: 50
# 规则rules: - DOMAIN-SUFFIX,company.com,DIRECT - DOMAIN-SUFFIX,google.com,节点选择 - GEOIP,CN,DIRECT - MATCH,节点选择一些实用技巧
1. 分应用代理
很多人不知道 Clash 可以按应用分流。比如我只想让浏览器走代理,其他软件直连:
rules: - PROCESS-NAME,chrome.exe,节点选择 - PROCESS-NAME,firefox.exe,节点选择 - MATCH,DIRECTWindows 下用进程名,Mac 和 Linux 用进程路径。
2. DNS 防泄漏
DNS 泄漏是个大问题。我的解决方案:
dns: enable: true listen: 0.0.0.0:53 enhanced-mode: fake-ip fake-ip-range: 198.18.0.1/16 nameserver: - https://1.1.1.1/dns-query - https://8.8.8.8/dns-query fallback: - https://1.1.1.1/dns-query - https://8.8.8.8/dns-query fallback-filter: geoip: true geoip-code: CN ipcidr: - 240.0.0.0/4enhanced-mode: fake-ip 这个很关键,能避免很多 DNS 相关的问题。
3. 规则优先级
规则是从上到下匹配的,放错了顺序会导致奇怪的问题。我的经验:
- DIRECT 规则放最上面(内网、局域网、国内 IP)
- REJECT 规则次之(广告、追踪)
- 代理规则随后(需要翻墙的域名)
- 兜底规则最后(MATCH)
rules: # 直连 - DOMAIN-SUFFIX,corp.com,DIRECT - IP-CIDR,10.0.0.0/8,DIRECT - IP-CIDR,172.16.0.0/12,DIRECT - IP-CIDR,192.168.0.0/16,DIRECT - GEOIP,CN,DIRECT
# 拦截 - DOMAIN-KEYWORD,ad,REJECT - DOMAIN-KEYWORD,ads,REJECT
# 代理 - DOMAIN-SUFFIX,google.com,节点选择 - DOMAIN-SUFFIX,youtube.com,节点选择
# 兜底 - MATCH,节点选择4. 定时更新订阅
配置文件的 interval 单位是秒。个人建议:
- 订阅更新:3600(1小时)
- 健康检查:600(10分钟)
- 延迟测试:300(5分钟)
太频繁会增加服务器负担,太久又不够及时。
常见问题
Q: 延迟测试显示超时,但实际能用?
多半是测试 URL 被墙了。换个测试地址:
url: http://cp.cloudflare.com/generate_204或者用国内的:
url: http://www.qualcomm.cn/generate_204Q: 某些网站打不开?
检查日志,看是哪个规则命中的。可能是:
- 域名没进代理规则
- DNS 解析问题
- IP 被误判为国内
加一条 DOMAIN-SUFFIX 规则通常能解决。
Q: 内存占用越来越高?
这是老问题了。几个解决方案:
- 换用 mihomo(Clash 的 Go 版本重写)
- 限制连接数:
external-controller里设置 - 定期重启(我用的 cron 定时 kill 进程)
我的完整配置
太长就不贴了,放几个关键点:
代理组设计:
proxy-groups: - name: "手动选择" type: select use: - sub1
- name: "自动选择" type: url-test use: - sub1 url: http://www.gstatic.com/generate_204 interval: 300 tolerance: 50
- name: "故障转移" type: fallback use: - sub1 url: http://www.gstatic.com/generate_204 interval: 300分流策略:
rules: # 公司内网 - DOMAIN-SUFFIX,internal.company.com,DIRECT - IP-CIDR,10.0.0.0/8,DIRECT
# 国内网站 - DOMAIN-SUFFIX,baidu.com,DIRECT - DOMAIN-SUFFIX,taobao.com,DIRECT - GEOIP,CN,DIRECT
# 国外媒体 - DOMAIN-SUFFIX,netflix.com,节点选择 - DOMAIN-SUFFIX,disneyplus.com,节点选择
# 其他 - MATCH,自动选择最后说两句
Clash 这东西,配置好了基本就不用管。但第一次配的时候确实挺烦的。
我的建议是:先用别人的模板跑起来,然后慢慢改,改成适合自己的。每个人的网络环境、使用习惯都不一样,照搬配置往往不顺手。
另外,订阅链接保护好,别到处传。节点商发现滥用可能会封账号。
参考链接
2026-03-17 更新。Clash 生态变化快,部分信息可能已过时。