配置阅读 / 字段对照
Clash 概念速查
从客户端到网络栈,区分名称、用途与生效条件。先查术语,再对照运行配置。
内核与客户端
内核处理连接,客户端提供操作界面,系统设置决定应用如何进入代理。排查时先分清这三层。
- Clash 内核Proxy engine
- 内核是读取配置、建立代理连接、匹配规则及处理 DNS 的网络引擎,图形窗口只是管理它的方式之一。原始 Clash 与后续衍生内核的字段支持范围并不完全相同,旧配置能导入不代表每个功能都会生效。遇到字段报错时,应先确认实际运行的内核,再查看对应配置文档。
- mihomoFormerly Clash Meta
- mihomo 是由 Clash Meta 项目延续而来的开源代理内核,提供规则分流、TUN、Fake-IP 和多种协议支持。它既能作为独立程序运行,也能由 Clash Verge Rev 等图形客户端调用。选择客户端时,界面偏好与内核兼容性应分别比较,不能只看应用名称中的 Clash 字样。
- 图形客户端GUI client
- 图形客户端负责订阅导入、策略组切换、日志展示、开机自启等日常操作,通常还管理内核进程与系统代理。界面中的开关可能先写入客户端自己的设置,再生成运行配置,因此未必能在原始订阅文件里找到同名字段。选型时可按操作系统查看客户端列表,再确认所需功能的设置入口。
- 系统代理System proxy
- 系统代理是操作系统向应用提供的代理地址设置,常指向本机内核监听的 HTTP 或 SOCKS 端口。浏览器等遵循该设置的应用会使用它,但自建网络连接或忽略系统设置的程序可能不会使用。开启后仍有应用直连,不一定是节点失效;需要检查应用自己的代理选项,或了解 TUN 接管方式。
- 混合端口mixed-port
mixed-port定义同时接受 HTTP 与 SOCKS 代理连接的本地监听端口,常见示例为7890,但它不是固定要求。应用填写的端口必须与内核设置一致,同一地址上的端口也不能被其他进程重复占用。它属于本地入口,不是远端节点端口;相关设置可查阅端口配置。
代理协议
协议规定连接如何建立。服务器地址、认证信息、传输方式和证书设置必须作为一组理解。
- 节点Proxy outbound
- 节点是一个代理出站的参数集合,通常包含
server、port、type及认证参数,并可出现在proxies中。节点名称只是配置中的标识,不能证明服务器所在地、带宽或可用性。节点与策略组也不是同一概念:前者定义连接,后者决定从哪些出站中选择。
- Shadowsockstype: ss
- Shadowsocks 是一种加密代理协议,在 mihomo 中以
type: ss表示,通常需要填写加密方法cipher和密码。加密方法、服务器端口与密码必须同服务端一致,部分配置还带有额外插件参数。只复制地址和端口并不足以完成导入,协议参数缺失可能导致连接或握手失败。
- VMesstype: vmess
- VMess 是使用 UUID 识别用户的代理协议,配置类型为
vmess,并可能配合 WebSocket 等传输方式。除了uuid,还应核对network、TLS、请求路径和主机名等字段。不同传输组合的参数不能随意混用,出现认证或握手错误时,应对照完整节点配置而不是反复更换显示名称。
- VLESStype: vless
- VLESS 是一种轻量代理协议,在配置中使用
type: vless,同样常以 UUID 作为用户标识。协议本身不提供流量加密,实际连接保护需要结合 TLS、REALITY 等具体安全设置判断。节点提供的服务器名称、传输方式及相关认证参数都应保留,不能把其他协议的配置段仅改一个类型名后使用。
- Trojantype: trojan
- Trojan 通常基于 TLS 传输并使用密码认证,在配置中对应
type: trojan。连接时除了密码,还可能依赖正确的sni和服务端证书;部分部署会使用额外传输设置。遇到证书错误,应先检查系统时间、服务器名称和配置来源,不宜直接以关闭证书验证作为长期处理方式。
规则与分流
规则负责匹配,策略组负责选择出站。一个连接的去向取决于模式、匹配顺序和最终组内选择。
- 规则分流mode: rule / rules
- 规则模式按
rules从上到下匹配连接,命中后使用指定出站或策略组,具体域名规则应放在兜底MATCH之前。例如DOMAIN-SUFFIX,example.com,DIRECT表示该域及其子域直连。DIRECT只是该连接的出站选择,不是关闭客户端;切到全局模式后也不能继续按规则模式理解去向。
- GeoIPGEOIP
- GeoIP 根据目标 IP 在数据库中的地理归属进行匹配,例如
GEOIP,CN,DIRECT。它依赖数据更新与目标地址,CDN、跨地区部署或数据库误差都可能让结果与直觉不同。添加no-resolve可避免该规则主动触发域名解析,但若连接尚无可用 IP,也可能无法按这一条件匹配。
- GeoSiteGEOSITE
- GeoSite 使用预先整理的域名分类集合匹配服务或站点,区别于按 IP 归属匹配的 GeoIP。规则中的分类名称必须存在于实际加载的数据中,不同数据来源可能提供不同标签及收录范围。它不是实时的网站分类服务;某个域名没有命中时,应检查数据内容、更新状态与更靠前的规则,而不是只修改节点。
- 规则集rule-providers / RULE-SET
- 规则集把大量匹配条件放进独立文件,由
rule-providers加载,再通过RULE-SET规则引用。提供者的behavior决定如何解释内容,常见类型包括domain、ipcidr与classical。规则集负责提供条件,真正的出站与优先级仍由主配置的rules决定。
- 策略组proxy-groups
- 策略组是在
proxy-groups中定义的出站选择逻辑,可包含节点、其他组或内置出站。select适合手动选择,url-test按测试结果自动选择,fallback按可用性回退。自动选择不等于适合所有业务,测试地址和检测条件会影响结果;实际操作见策略组选择教程。
DNS 与网络栈
解析域名、接管流量与选择出站是不同环节。TUN 和 Fake-IP 可以配合使用,但不能互相替代。
- DNSDomain Name System
- DNS 负责把域名解析为地址等记录,mihomo 可在
dns段中设置解析上游及处理策略。nameserver指定常规解析上游,而proxy-server-nameserver可专门用于解析代理服务器域名。写入 DNS 配置并不代表全部查询已经进入内核,还需要检查系统、浏览器与 TUN 的实际解析路径。
- Fake-IPdns.enhanced-mode: fake-ip
- Fake-IP 为查询域名返回映射地址,后续连接到达内核时,再利用映射关系恢复域名并匹配规则。该机制通过
dns.enhanced-mode: fake-ip启用,返回地址不代表网站的真实服务器地址。部分应用依赖真实解析结果,可按兼容性需求设置fake-ip-filter,但应理解所用过滤模式,不宜直接排除全部域名。
- TUN 模式tun.enable / auto-route
- TUN 通过虚拟网卡与路由设置,把更多应用的网络流量送入内核,适合不遵循系统代理的程序。
tun.enable是启用字段,auto-route与stack等参数还会影响接管方式,并通常需要服务模式或系统授权。流量进入内核后仍会按模式和规则分流,所以开启 TUN 不等于所有连接都经远端代理转发。
- 域名嗅探sniffer
- 域名嗅探尝试从 HTTP、TLS 或 QUIC 等受支持的协议握手信息中提取域名,帮助只有目标 IP 的连接匹配域名规则。它由
sniffer配置控制,能否识别取决于流量形式和内核支持,不等同于解密应用正文。若原目标与嗅探域名存在差异,还应理解override-destination的作用后再调整。
- DNS 泄漏DNS leak
- DNS 泄漏指查询没有遵循预期解析路径,转而交给本地运营商或其他解析器等情况。网页连接经代理转发,并不能单独证明 DNS 查询也走了相同路径,浏览器安全 DNS、IPv6 和其他网络工具都可能影响测试结果。检查时应结合检测页面、系统 DNS、浏览器设置和内核日志,区分解析器身份与实际查询传输路线。
订阅与配置
订阅提供内容,客户端负责导入与合并,内核执行最终配置。更新前后应关注配置是否被替换,以及本地修改是否保留。
- 订阅Subscription
- 订阅通常是客户端定期获取配置或节点集合的 URL,可能返回完整 Clash YAML,也可能返回 Base64 编码的节点链接。两种内容不一定能在同一导入入口直接使用,需要确认客户端支持的格式。链接常包含访问凭据,应按私密信息处理,不要公开截图或粘贴到不可信的转换服务;更新失败也不等于已有节点立即失效。
- YAMLconfig.yaml
- YAML 是 Clash 配置常用的文本序列化格式,依靠缩进表达层级,列表项通常以
-开头。编辑时使用空格而不是 Tab,并保留字段所在层级;特殊字符可能需要引号包裹。语法能够被解析,只说明文本结构有效,不代表字段被当前内核支持,也不代表策略组名称与规则引用已经对应。
- 代理提供者proxy-providers
proxy-providers用于单独管理一组节点,可配置获取地址、缓存路径、更新间隔及健康检查,并由策略组通过use引用。它和整份配置订阅不同:更新节点集合时,可以保留主配置中的分流结构。代理提供者提供出站,而rule-providers提供匹配条件,两者不能互换。
- 本地覆写Local override / merge
- 本地覆写是在远程订阅基础上合并或调整本地设置的方式,常用于保留端口、DNS、TUN 或自定义规则。具体入口可能称为覆写、合并或脚本,列表替换与追加的行为也由客户端决定。直接改下载得到的订阅文件可能被下一次更新覆盖,因此应使用客户端支持的持久化方式,并检查最终运行配置而不是只看编辑器内容。
- 节点延迟Latency test / url-test
- 客户端显示的延迟通常是访问指定测试地址的耗时,可能包含 DNS、连接建立或协议握手等环节,并不必然是 ICMP Ping。测试地址、超时时间和网络状态都会影响结果,数值更低也不等于下载速度更高。比较节点时应尽量使用相同测试条件,再用实际业务验证;超时只说明本次测试未完成,不能单独证明所有服务都无法访问。
- 外部控制接口external-controller
external-controller定义内核管理 API 的监听地址,可供面板查询连接、切换策略或修改部分运行状态。它不是 HTTP 或 SOCKS 代理入口,应用代理设置不应填写这个端口。一般应限制在本机访问;需要远程管理时,须同时考虑监听范围、访问认证与防火墙,不能仅为方便连接就直接开放到公共网络。