Clash 内核
Clash core负责代理连接、规则匹配和 DNS 处理的后台程序,图形界面通常通过控制接口与它交互。原版 Clash 与后续衍生内核的功能范围不同,网上标注为 Clash 的配置不一定能在所有内核运行。遇到未知字段或协议不支持时,应先确认实际使用的内核,而不是只看客户端名称。
内核、协议、规则与 DNS 的概念边界。按分类查词,再沿配置字段核对客户端中的实际设置。
先区分处理连接的程序、管理配置的界面,以及连接所需的服务参数。
负责代理连接、规则匹配和 DNS 处理的后台程序,图形界面通常通过控制接口与它交互。原版 Clash 与后续衍生内核的功能范围不同,网上标注为 Clash 的配置不一定能在所有内核运行。遇到未知字段或协议不支持时,应先确认实际使用的内核,而不是只看客户端名称。
由 Clash Meta 项目演进而来的开源代理内核,提供规则分流、TUN、域名嗅探和规则集等能力。它不是某一款图形客户端,同一个内核可以由不同应用集成。旧文章里的 Meta 字样通常指这条内核分支,但具体字段仍应对照当前内核文档。
用来管理订阅、策略选择、系统代理和日志的桌面或移动应用,常会附带内核或提供内核管理功能。界面选项与 YAML 字段不一定一一对应,部分设置会在启动时写入生成配置。排查问题时,需要同时区分界面行为与内核行为。
一组用于建立代理连接的服务器参数,通常包含地址、端口、协议与认证信息,也可能附带传输层设置。节点显示名称只是标签,不保证实际出口位置或服务可用性。安装客户端不会自动获得节点,导入前还需确认服务来源和协议兼容性。
客户端按指定方法测得的请求耗时;常见 URL 测试并不等同于 ICMP ping。结果会受测试地址、超时、连接复用和当前网络影响,不能直接当作带宽或所有网站的访问速度。测试超时也不一定表示节点完全失效,应结合实际访问与连接日志判断。
协议决定连接如何建立;传输方式、认证参数与安全层必须一起核对。
使用预共享密钥与指定加密方法建立代理连接的协议,在 mihomo 节点中以 type: ss 表示。客户端与服务端的加密方法、密钥必须一致,不同方法对密钥格式的要求也可能不同。若节点依赖插件,还需核对客户端是否支持相应插件与参数。
通常通过 TLS 连接承载代理流量,并使用密码进行认证的协议。连接是否成功不仅取决于密码,还与证书、服务器名及传输设置有关。出现证书错误时,应检查系统时间和服务端参数,不宜把关闭证书验证当作常规修复办法。
通常使用 UUID 识别用户的轻量代理协议,本身不提供流量加密,需要结合 TLS 或 REALITY 等安全层理解。UUID 相同并不代表整条配置正确,传输方式、服务器名及相关安全参数也要匹配。导入节点时,应保留服务方提供的完整参数组合。
基于 QUIC 的代理协议,依赖 UDP 连通性,并通过 TLS 与认证参数建立连接。网络限制 UDP 时,它可能无法正常工作,不能只凭服务器端口开放就判断可用。实际表现取决于网络质量与参数配置,也不能仅凭协议名称推断速度。
供应用连接代理服务器的通用协议,可用于本地代理入口,也可作为远程节点类型。协议包含 TCP 与 UDP 转发机制,但实际使用仍需应用、监听端和出口共同支持。SOCKS5 本身不加密传输;域名在本地还是代理端解析,也取决于应用的使用方式。
规则回答“哪些连接”,策略组回答“使用哪个出口”。
在 Rule 模式下,内核按 rules 列表自上而下匹配连接,首个命中的规则决定策略。例如 DOMAIN-SUFFIX,github.com,Proxy 将对应域名交给名为 Proxy 的策略。Proxy 需要另行定义,MATCH,Proxy 通常放在末尾处理剩余连接。
把节点或其他策略组织成可被规则引用的组,避免每条规则都直接绑定单一节点。select 用于手动选择,url-test 定期测试并按测试结果选择,fallback 按顺序使用可用成员。测试地址和间隔会影响自动选择行为,组名本身不决定功能。
分别表示规则模式、全局模式与直连模式,用于决定已进入内核的连接如何处理。Rule 按规则选择策略,Global 使用全局策略,Direct 直接连接目标。这些模式不负责把应用流量送入内核,系统代理或 TUN 是否启用仍需单独检查。
按 IP 地理归属数据库匹配目标地址,例如 GEOIP,CN,DIRECT 将数据库归类为 CN 的地址直连。数据库判断不等于域名注册地或实际运营位置,CDN 也会改变解析结果。匹配域名连接时可能需要解析,规则末尾的 no-resolve 可限制为此触发解析。
把一组匹配条件独立保存,通过 rule-providers 声明,再由 RULE-SET,work,Proxy 这样的规则引用。集合负责描述匹配对象,引用它的规则指定最终策略。更新失败时还应检查格式与 behavior 是否对应,不能把节点订阅直接当作规则集。
域名解析、流量接管和出口选择是相互关联、但不能混为一谈的环节。
把域名解析为 IP 地址的机制,是应用建立连接前的常见步骤。mihomo 的 nameserver 指定上游解析器,nameserver-policy 可为特定域名选择不同解析器。使用加密 DNS 只保护到解析器的传输,不代表查询一定经过所选代理出口。
向应用返回虚拟地址,并在内核保留虚拟地址与域名映射的 DNS 工作方式,有利于后续按域名匹配规则。它不等于真实网站地址,也不能单独替代流量接管。少数应用依赖真实解析结果时,可按实际需求调整 fake-ip-filter,避免盲目扩大排除范围。
通过虚拟网络接口接收系统 IP 流量,使部分不读取系统代理的应用也能进入内核处理。常涉及 tun.enable、auto-route 与 dns-hijack 等字段,并可能需要管理员权限。实际接管范围仍受路由、DNS、系统平台及其他网络软件影响。
DNS 查询未按预期经过指定解析路径或出口的情况,例如浏览器自带解析器绕过了计划使用的系统路径。检测页显示某个解析器地区,不能单独证明泄漏,应结合目标策略和日志判断。排查时需同时检查浏览器安全 DNS、系统解析、TUN 接管与内核上游设置。
从受支持的 TLS、HTTP 或 QUIC 握手信息中尝试识别域名,为仅有 IP 的连接补充匹配信息。它不是通用的加密内容解密机制,也不保证每条连接都能识别域名。嗅探可能影响规则命中或目标处理,启用后应结合连接记录核对结果。
区分数据来源、文件格式与最终运行配置,减少更新后设置被覆盖的问题。
通过链接分发并更新节点列表或完整配置的方式,内容可能是 URI 列表、编码文本或 YAML,不能只凭链接外观判断格式。客户端能否直接导入,取决于它支持的格式与协议。订阅地址常含访问凭据,不应公开粘贴到截图、日志或不可信的转换服务。
一种组织映射、列表和标量的文本数据格式,Clash 配置常用它表达层级关系。缩进应使用空格而不是制表符,同层字段要对齐,含特殊字符的字符串可加引号。YAML 语法通过不代表配置可用,字段支持情况与策略名称引用还需要由内核检查。
描述端口、节点、策略组、DNS 和规则等内容的文件,config.yaml 是常见文件名而非唯一固定名称。客户端最终提交给内核的配置,可能由订阅、界面设置和覆写共同生成。排查字段不生效时,应查看实际运行配置,而不是只检查下载的原始订阅。
由 proxy-providers 定义、可从文件或远程地址加载的节点集合,策略组通过 use 引用。它保存节点,不同于保存匹配条件的 rule-providers。集合更新、健康检查与策略组选择是不同环节,更新成功并不表示每个节点都能连接。
在订阅之外保留本地修改,并参与最终配置生成的机制,常用于固定端口、DNS 或追加规则。覆写不是所有客户端都共享的单一内核字段,合并顺序、列表追加和字段覆盖方式由客户端决定。修改后应查看生成结果,确认规则位置与策略组引用没有被更新流程改变。
首次导入订阅,按教程完成连接验证;已经能连接但需要调整规则、DNS 或 TUN,再查阅配置进阶。遇到具体错误时,先记录客户端名称、实际内核和报错文本,避免只用“Clash 不工作”描述问题。