Clash 配置怎么写?Clash Verge Rev 导入、YAML、规则与 DNS 排查指南
简答:Clash 配置的最快处理方式是:先在 Clash Verge Rev 的 Profiles 页面导入远程订阅或本地 YAML,确认配置被选中并成功更新,再检查 mixed-port、mode、proxy-groups、rules、DNS 和 TUN。不要一开始就改完整配置;先用最小结构验证端口、节点和规则是否生效。本文是第三方使用指南,不是隐云官方页面,未核实其他品牌的官方入口。
定义:Clash 配置是供 Clash 或 Mihomo 内核读取的 YAML 配置,通常包含监听端口、运行模式、节点、代理组、路由规则、DNS 和 TUN 等部分。
先完成导入与验证:不要直接修改整份配置
如果你只是想让客户端先工作,建议先走“导入—选中—更新—验证”的顺序,而不是马上复制一份很长的 YAML。Clash Verge Rev 的官方文档说明,远程配置支持订阅链接导入、订阅链接配置和 URL Schemes;本地配置支持新建配置文件导入与拖拽配置文件导入。远程订阅通常由提供链接的一方生成,链接本身可能包含个人识别令牌,分享或截图前应先打码。
Clash Verge Rev 配置文件导入说明列出了远程订阅和本地 YAML 的导入方式。导入后,在 Profiles 页面选中刚导入的配置,执行更新或刷新,然后进入代理页面确认节点和代理组已经出现。
- 打开 Clash Verge Rev,进入 Profiles 页面。
- 远程订阅选择导入入口,粘贴以
http://或https://开头的订阅地址;本地配置选择 YAML 文件。 - 导入完成后,点击该配置使其成为当前配置;如果只是保存但没有选中,代理页面可能仍显示旧配置。
- 进入代理页面,确认至少有一个节点或代理组;如果列表为空,先回到配置页面查看更新日志。
- 先在客户端开启系统代理,再访问一个你平时能稳定访问的测试页面;不要把某次访问成功直接当成线路长期可用的结论。
| 情况 | 优先检查 | 处理方式 |
|---|---|---|
| 导入后没有配置 | 地址格式、网络、配置类型 | 确认链接是 HTTP(S),或改用本地 YAML 导入;查看导入错误提示。 |
| 配置存在但节点为空 | 订阅内容、更新结果、配置是否选中 | 重新更新当前配置,确认服务端返回的是 YAML 而不是登录页或错误页面。 |
| 节点有但网页不通 | 系统代理、代理组、规则 | 先手动选择一个节点,再检查规则是否命中对应代理组。 |
| 更新后手动修改消失 | 远程订阅覆盖行为 | 将自定义内容放到客户端支持的覆写或扩展配置中,并保留原文件备份。 |
最小可读的 Clash YAML 配置结构
YAML 对缩进非常敏感。列表通常使用短横线,键和值之间使用冒号,冒号后要保留空格。下面是用于理解字段关系的最小示例,节点地址、端口、密码和密钥均为占位内容,不能直接连接:
mixed-port: 7890
allow-lan: false
mode: rule
log-level: info
proxies:
- name: "示例节点"
type: ss
server: example.invalid
port: 443
cipher: aes-128-gcm
password: "请替换为真实值"
proxy-groups:
- name: "代理选择"
type: select
proxies:
- "示例节点"
- DIRECT
rules:
- MATCH,代理选择
这份示例只展示结构,不代表任何服务或协议参数。Mihomo 全局配置文档说明,mode 可使用 rule、global 和 direct;log-level 可使用 silent、error、warning、info 和 debug。排查时可暂时使用 info,只有需要更多运行细节时再短时间使用 debug。
| 字段 | 作用 | 新手建议 |
|---|---|---|
port | HTTP 代理端口 | 与其他程序端口不冲突即可;没有使用时不必同时配置多个入口。 |
socks-port | SOCKS 代理端口 | 需要 SOCKS 客户端时再启用,并记录端口号。 |
mixed-port | 同时接收 HTTP 和 SOCKS 类型请求的代理入口 | 新手通常只保留一个明确的 mixed-port,减少端口混淆。 |
allow-lan | 是否允许局域网设备访问代理端口 | 单机使用建议为 false;开启后要配合绑定地址和认证。 |
mode | 全局运行模式 | 通常先用 rule,便于区分直连与代理规则。 |
log-level | 核心日志详细程度 | 日常使用 info,排查完成后不要长期保持 debug。 |
端口本身并不等于代理已经生效。若浏览器设置的是 7890,但配置实际只监听 7891,浏览器会出现连接失败;若端口被其他程序占用,核心可能无法启动。修改后应在客户端运行状态或日志中确认监听成功。
节点、代理组和 rules:配置能连通不代表规则正确
proxies 保存节点定义,proxy-groups 把节点组合成可选择或自动测试的策略组,rules 决定请求最终进入哪个策略。三者的名称必须完全对应,包括大小写、空格和特殊字符。
代理组常见类型包括:
- select:手动选择节点或策略,适合首次排查,因为结果最容易判断。
- url-test:按照测试地址和间隔进行可用性测试,适合节点较多时自动选择;测试结果只代表指定测试地址和当时网络条件。
- fallback:按可用性顺序使用候选项,适合需要备用路径的场景。
- load-balance:在多个候选项之间分配请求,适用条件取决于具体内核和配置,不能简单等同于“速度一定更快”。
Mihomo 代理组文档说明,代理组的 name 和 type 是必需字段,proxies 用于引用节点或其他代理组;健康检查可通过 url、interval、timeout 等字段配置。实际使用中,先把策略组设为 select,确认手动节点可用,再考虑自动测试。
规则按从上到下的顺序匹配,靠前的规则优先级更高;MATCH 是兜底规则,通常应放在规则末尾。Mihomo 路由规则文档列出了 DOMAIN、DOMAIN-SUFFIX、IP-CIDR、PROCESS-NAME、RULE-SET 和 MATCH 等匹配方式。
规则排查可按以下顺序进行:
- 把代理组临时改成
select,只保留一个已确认存在的节点。 - 把规则缩减为一条目标规则和最后一条
MATCH,DIRECT或MATCH,代理选择。 - 访问目标地址,在客户端连接记录中查看命中的规则和最终策略。
- 如果规则没有命中,检查域名后缀、策略组名称和 YAML 缩进。
- 确认后再逐条恢复复杂规则,避免一次修改多个变量。
DNS 与 fake-ip:看到 198.18.x.x 不一定是故障
DNS 配置负责域名解析,不等同于代理节点配置。Mihomo 支持 fake-ip 和 redir-host 两种增强模式;在 fake-ip 模式下,域名可能会被映射到专用的虚拟地址范围。Mihomo DNS 配置文档列出了 enhanced-mode、fake-ip-range、fake-ip-filter、nameserver、fallback 和 nameserver-policy 等字段。
因此,在 fake-ip 模式或 TUN 模式下,nslookup 返回 198.18.x.x 一类地址可能是配置设计的一部分,不应仅凭这个结果判定 DNS 泄漏或配置失败。更有价值的检查是:客户端日志是否出现 DNS 错误、目标域名是否能建立连接、规则是否命中、关闭客户端后系统 DNS 是否恢复正常。
排查 DNS 时建议使用最小改动:
- 先确认配置中是否有
dns:段,以及enable是否为true。 - 如果使用
fake-ip,先保留默认或官方文档建议的地址范围,不要随意修改fake-ip-ttl。 - 局域网设备、打印机、路由器管理地址等场景,检查
fake-ip-filter是否需要排除对应域名。 - Windows 中使用 PowerShell 时,运行
nslookup example.com观察解析是否有响应;使用命令行 HTTP 测试时优先写完整的curl.exe,避免 PowerShell 别名造成误判。 - 如果 DNS 请求失败,先暂时关闭 TUN,保留普通系统代理,区分是 DNS、路由还是节点本身的问题。
TUN 模式怎么配置:先解决权限和路由,再处理规则
TUN 用虚拟网卡接管更多系统流量,适合部分应用不支持手动代理、浏览器设置代理后仍不走代理的场景。但 TUN 会改变系统路由和 DNS 处理方式,排查难度也高于普通系统代理。Mihomo TUN 文档说明,auto-route 用于自动设置全局路由,dns-hijack 用于将匹配的 DNS 连接导入内部 DNS 模块,strict-route 会执行更严格的路由规则。
在 Clash Verge Rev 中,优先使用客户端提供的 TUN 开关和权限提示,不要一开始手写复杂的 TUN 监听器。基础排查顺序如下:
- 关闭普通代理软件或 VPN,避免多个虚拟网卡同时接管流量。
- 以系统管理员权限启动客户端;如果系统弹出网络扩展、驱动或防火墙权限提示,按系统提示完成授权。
- 先开启 TUN,不同时修改 DNS、规则和节点。
- 确认系统网络仍可访问,再测试一个普通网页和一个需要代理策略的目标。
- 如果开启 TUN 后所有网络都中断,立即关闭 TUN,查看日志中的权限、路由、网卡或 DNS 错误。
| 平台或场景 | 官方文档提示 | 自查动作 |
|---|---|---|
| Windows | strict-route 可阻止普通多宿主 DNS 解析造成的泄漏,但可能影响部分虚拟化网络。 | 检查防火墙是否允许核心程序,暂时关闭其他虚拟网卡。 |
| macOS | TUN 设备名称需要以 utun 开头;TUN 不能自动劫持发往局域网的 DNS 请求。 | 检查系统网络扩展权限,并单独测试局域网域名。 |
| Android | 开启私人 DNS 时,DNS 请求不能被自动劫持。 | 排查时暂时关闭私人 DNS,再重新测试 TUN 和域名解析。 |
| Linux | auto-redirect 仅适用于 Linux,并要求启用 auto-route;防火墙可能需要放行 TUN 网卡出站流量。 | 检查 nftables 或 iptables 规则,以及 TUN 网卡是否出现。 |
配置报错与连接失败:按现象定位,不要盲目换节点
YAML 解析失败:先检查缩进、冒号后的空格、引号和列表短横线。节点名称中包含特殊字符时使用引号。把配置复制到文本编辑器后逐段恢复,通常比直接检查整份订阅更快。
端口冲突:如果日志出现端口已被占用,检查 port、socks-port、mixed-port 是否重复,也检查其他代理客户端或开发工具是否占用了相同端口。修改后让浏览器或系统代理使用新的端口。
订阅更新失败:检查网络是否能打开订阅地址、地址是否过期、服务端是否返回 YAML,以及客户端是否错误地使用了一个不可用的系统代理。Clash Verge Rev 的配置页面提供自动更新间隔、是否使用系统代理、是否通过 Clash 代理更新和是否接受无效证书等选项;其中“允许无效证书”属于危险选项,不应作为默认解决方案。
节点列表存在但无法连接:先确认选中的代理组不是 DIRECT,再检查节点协议字段、服务器地址、端口、密码、UUID 或密钥是否完整。若这些内容来自远程订阅,优先重新更新配置,而不是手动猜测字段。
担心配置泄露:订阅链接、密码、UUID 和节点地址都不应公开发布。Clash Verge Rev 的隐私说明提到,配置文件和下载的订阅可能包含订阅 URL、节点地址、端口、密码和 UUID;提交日志或反馈前,应先删除这些内容。可参考 Clash Verge Rev 隐私说明进行脱敏。
如果你使用的是远程订阅,建议保留一份不含个人令牌的字段说明,而不是直接备份完整订阅链接。任何无法从客户端日志、配置内容或官方文档复现的故障,都应标记为“未核实”,不要仅凭一次访问结果判断线路长期可用。
Clash 配置自查清单
- 导入:远程订阅或本地 YAML 已成功导入,且当前选中了正确配置。
- 结构:YAML 缩进一致,节点名称、代理组名称和规则引用名称完全一致。
- 端口:客户端实际监听端口与系统代理或浏览器填写的端口一致。
- 模式:排查阶段优先使用
rule或手动可控的select代理组。 - 规则:规则从上到下匹配,末尾有
MATCH兜底。 - DNS:明确使用
fake-ip还是redir-host,不要把198.18.x.x单独当成故障证据。 - TUN:只在普通系统代理无法覆盖应用时开启,并确认系统权限、防火墙和虚拟网卡状态。
- 隐私:分享配置、日志或截图前删除订阅令牌、密码、UUID、节点地址和访问记录。
如果仍然无法定位,先导出或复制错误日志中的第一条明确报错,再一次只改一个设置。这样可以区分是订阅返回异常、YAML 语法问题、端口冲突、DNS 失败、TUN 权限问题,还是节点本身未响应。
常见问题
Clash 配置文件应该放在哪里?
如果使用 Clash Verge Rev,通常不需要手动寻找目录,直接在 Profiles 页面导入远程订阅或本地 YAML。Windows 配置目录位置可能随版本和安装方式变化;官方仓库讨论中提到过用户配置目录,但不建议直接修改内部文件,优先使用客户端界面。
Clash 配置导入后为什么没有节点?
常见原因包括订阅地址失效、服务端返回的不是 YAML、配置没有被选为当前配置,或更新请求没有成功。先查看 Profiles 页面的更新状态,再确认代理页面是否加载了节点;无法从日志确认的原因应标记为未核实。
Clash 配置中的 mixed-port 和 socks-port 有什么区别?
<code>socks-port</code> 专门接收 SOCKS 请求;<code>mixed-port</code> 用于接收混合代理请求。实际使用时应让浏览器、系统代理或应用填写与配置中一致的端口,避免端口类型和端口号同时混淆。
fake-ip 模式下 nslookup 返回 198.18.x.x 正常吗?
在启用 fake-ip 的配置中,198.18.x.x 可能属于虚拟地址映射范围,不能仅凭这个结果判断 DNS 泄漏。还应检查客户端日志、目标连接、规则命中情况,以及关闭 Clash 后系统 DNS 是否恢复。
Clash 配置需要开启 TUN 吗?
不一定。浏览器等支持系统代理的应用,通常可先使用普通系统代理;只有部分应用不遵循系统代理或需要接管更多系统流量时,再考虑 TUN。开启前要处理系统权限、防火墙、DNS 和虚拟网卡冲突。
修改远程订阅后,为什么下次更新又恢复原样?
远程订阅更新可能重新覆盖原配置。更稳妥的做法是备份原始订阅,将自定义设置放到客户端支持的覆写、扩展配置或脚本功能中,并确认这些功能的执行顺序;不要直接改动无法持久保存的生成文件。