📄 YAML 配置基础与排错
Clash 的核心配置全部依赖 YAML 文件。YAML 对缩进和格式要求极为严格,
一个多余的空格或错误的层级都可能导致客户端无法启动。下面是一个最简配置骨架,我们逐行解释。
mixed-port: 7890
allow-lan: true
mode: rule
log-level: info
- mixed-port: 混合端口,同时承载 HTTP 与 SOCKS5 代理,默认 7890。如果端口被其他程序占用,Clash 会报错退出,请更换端口号。
- allow-lan: 是否允许局域网设备连接,设为 true 后其他设备可通过本机 IP 代理上网。
- mode: 运行模式。可选
rule(规则模式)、global(全局代理)、direct(全部直连)。排错时若发现所有流量都走代理,请检查 mode 是否为 global。
- log-level: 日志级别,调试故障时建议设为
debug,可看到详细连接信息。
常见故障 YAML 缩进错误:必须使用空格缩进(通常2个空格),严禁使用 Tab。混合缩进或层级混乱会导致 “mapping values are not allowed here” 报错。建议使用 VS Code 等编辑器并开启空格显示。
此外,配置文件中的代理组名称、规则引用的策略组必须与实际定义的名称严格一致,大小写敏感。
很多“节点选择失效”的故障,就是因为规则中引用了不存在的策略组。
🧩 代理组配置与排错
代理组(proxy-groups)是 Clash 分流的灵魂。它决定了流量最终由哪个节点承载。
一个典型的节点选择组定义如下:
proxy-groups:
- name: 🚀 节点选择
type: select
proxies:
- 🇭🇰 香港节点
- 🇸🇬 新加坡节点
- DIRECT
type 可选 select(手动选择)、url-test(自动测速)、fallback(故障转移)、load-balance(负载均衡)。
若发现策略组无法切换或始终选中同一个节点,请检查:
- 代理组名称是否与规则中引用完全一致;
- proxies 列表中的名称是否在顶层的
proxies: 节点列表中定义;
- 使用
url-test 时是否指定了测速 URL 和间隔时间。
修复建议 很多“YouTube 无法解锁”的问题其实是因为策略组选错节点。请确认你的流媒体规则是否指向了专门的解锁代理组,而非默认的节点选择组。
🔒 Fake-IP DNS 防泄漏与修复
DNS 泄漏是代理环境中最隐蔽却又最致命的问题之一。即使流量走代理,如果 DNS 查询通过本地运营商 DNS 泄露,
你的访问记录仍会被监控。Clash 通过 Fake-IP 机制完美解决这一痛点。
为什么需要 Fake-IP?
传统 DNS 模式下,应用程序发起域名解析请求,系统通过运营商 DNS 获取真实 IP,然后 Clash 再根据 IP 判断是否走代理。
这一过程中,DNS 查询已经泄露给本地网络。Fake-IP 模式则完全不同:Clash 接管所有 DNS 请求,返回一个虚拟的 Fake IP
(通常为 198.18.0.x 段),并记录域名与 Fake IP 的映射。当后续流量到达时,Clash 根据映射还原域名,再结合规则精准分流。
如此一来,真实的 DNS 查询只在 Clash 内核与上游加密 DNS 之间发生,本地环境完全无法嗅探。
正确配置示例
dns:
enable: true
enhanced-mode: fake-ip
fake-ip-range: 198.18.0.1/16
nameserver:
- https://dns.quad9.net/dns-query
- https://dns.google/dns-query
fallback: []
- enhanced-mode: fake-ip 必须显式开启,否则仍为传统模式。
- fake-ip-range 需与 TUN 地址段区分,避免冲突。
- nameserver 使用 DoH(DNS over HTTPS)加密服务器,防止中间人篡改。
泄漏排查 访问 ipleak.net 查看 DNS 地址是否属于你的代理节点。若仍显示本地 ISP DNS,请检查系统是否关闭了“安全 DNS”或浏览器的 DNS 设置,并确保 Clash 日志中显示 fake-ip 分配记录。
🌐 TUN 模式设置与常见故障
TUN 模式允许 Clash 通过虚拟网卡接管系统所有流量,即使是那些不支持代理设置的应用也能被正确路由。
然而 TUN 配置不当极易导致断网、DNS 解析失败等问题。下面分平台说明关键配置与修复。
通用配置
tun:
enable: true
stack: system
auto-route: true
auto-detect-interface: true
dns-hijack:
- any:53
- stack: 选择
system(推荐)或 gvisor,不同系统支持不同。
- auto-route: 自动设置路由表,将流量导向 TUN 接口。
- dns-hijack: 劫持所有 DNS 请求到 Clash 内核,防止泄漏。
Windows 平台
Windows 需要以管理员身份运行 Clash 客户端才能创建 TUN 网卡。如果开启 TUN 后无法上网,
请检查网络适配器中是否出现名为 “Clash” 的虚拟网卡,并确认其 IP 地址与 fake-ip-range 不重叠。
另外,部分杀毒软件可能拦截 TUN 驱动安装,需手动添加信任。
macOS 平台
macOS 使用 Network Extension 框架,首次开启 TUN 时会弹出系统授权框,必须点击“允许”并输入密码。
若授权后仍无流量,可在“系统设置 → 网络”中查看新增的虚拟网卡是否处于活跃状态,必要时手动调整服务顺序。
Linux 平台
Linux 下 TUN 模式需要内核支持,通常已内置。配置中 stack: system 即可,部分发行版可能需要手动添加路由:
ip route add default dev utun。若使用 systemd 服务,确保服务文件中已授予 CAP_NET_ADMIN 权限。
TUN 故障速查 开启 TUN 后国内网站变慢或无法访问?很可能是路由表将所有流量都导向了代理。请在规则中增加 GEOIP,CN,DIRECT 并放在首位,确保国内 IP 直连。