Clash 内核
实际读取配置、匹配规则并建立代理连接的程序,通常在图形界面背后运行。原始 Clash 与后续衍生内核并不是同一个持续更新的程序,支持的协议和配置键会有差别。排查“配置无法加载”时,先在“关于”或启动日志中记录内核名称,不要只看窗口上的客户端名字。
CLASH / 名词解释
先分清流量由谁接管、规则选哪个出口,再看 DNS 和订阅。这里按设置项所在的位置整理 25 个术语,每个条目都能单独链接。
01 / 程序与入口
窗口负责操作,内核负责连接。先确认正在运行的程序,再判断某个配置键是否受支持。
实际读取配置、匹配规则并建立代理连接的程序,通常在图形界面背后运行。原始 Clash 与后续衍生内核并不是同一个持续更新的程序,支持的协议和配置键会有差别。排查“配置无法加载”时,先在“关于”或启动日志中记录内核名称,不要只看窗口上的客户端名字。
由 Clash Meta 项目延续而来的代理内核,兼容 Clash 风格的配置,并扩展了协议、DNS 与网络接管功能。部分旧教程仍使用“Meta 内核”这个名称,阅读时需要结合具体配置字段判断。客户端即使支持 mihomo,也要确认当前实际使用的内核版本;更新界面程序不一定等于已经切换内核。
提供“配置”“代理”“日志”等操作界面的应用,负责启动内核、管理订阅及设置系统代理。它可能在订阅原文之外合并端口、DNS 或覆写内容,因此编辑器里看到的文件不一定就是最终运行配置。遇到设置保存后又恢复,先检查客户端是否接管了该字段,再决定修改界面选项还是配置文件。
供客户端或管理面板读取连接状态、切换策略组、调整运行设置的接口,例如监听在 127.0.0.1:9090。它是管理入口,不是给浏览器上网用的代理端口。通常应保持仅本机可访问;确需远程管理时,应同时配置认证与访问限制,不能只把监听地址改成所有网卡。
同时接受 HTTP 代理和 SOCKS 代理连接的本地监听端口,常见配置示例是 mixed-port: 7890,实际值以客户端当前设置为准。应用单独填写代理时,应使用正确的监听地址和端口,不要填入控制接口端口。出现 address already in use 时,先检查是否有另一个客户端占用了同一端口。
继续操作:查看 Clash 端口设置与应用代理填写方法。
02 / 连接方式
协议决定连接如何建立。协议名相同,也需要认证、传输与证书参数对应,不能只改一个 type。
应用把 HTTP 请求交给代理处理;访问 HTTPS 时,通常先通过 CONNECT 请求建立隧道,再由应用与目标站点完成 TLS 通信。“HTTP 代理”这个名称本身不表示应用到代理的这一段已经加密。浏览器可能跟随系统设置,其他应用则可能需要手动填写,具体要看应用是否支持该入口。
一种通用代理协议,可转发 TCP,并通过 UDP ASSOCIATE 支持 UDP,实际能否使用取决于应用和服务端实现。它不会天然保证加密,也不会统一决定域名在哪里解析。某些工具用 socks5h 表示交给代理端解析域名,但这属于工具的地址写法,使用前应查看该工具的参数说明。
使用约定的加密方法与密码连接服务端的代理协议,在 Clash 配置中的类型通常写作 ss。地址、端口、加密方法、密码以及可能使用的插件参数都必须与服务端对应。导入后无法连接时,应先确认内核支持该加密方法和插件;把密码重新粘贴一遍,并不能修复协议能力不匹配。
通常依靠 TLS 建立加密连接的代理协议,除了地址、端口和密码,还要留意服务端证书与 SNI。使用 IP 作为连接地址时,证书验证所需的域名仍可能需要单独填写。出现 x509 相关错误,应先检查系统时间、域名和证书链,不要把关闭证书验证当作长期解决办法。
基于 QUIC 的代理协议,需要当前网络允许相应的 UDP 通信,TCP 网站能打开并不能证明它的连接路径可用。Hysteria 2 与第一代 Hysteria 的认证和参数并非可以直接互换,不能只改协议名称。反复超时时,先检查内核支持、服务器地址和 UDP 可达性,再分析带宽等进阶参数。
03 / 出口选择
接管流量之后,才轮到分流。判断路径时,要同时看命中的规则和策略组当前选择。
按域名、IP、进程等条件给连接选择出口,rules 通常从上到下匹配,并采用首个命中结果。例如 DOMAIN-SUFFIX,example.com,DIRECT 会把对应域名及子域名交给直连。兜底的 MATCH 一般放在末尾;若把它提前,后面的精细规则即使写对也不会再被命中。
把多个节点或其他策略组组织成一个可被规则引用的出口,配置入口是 proxy-groups。select 通常用于手动选择,url-test 按测试结果选择;策略组本身不是新增了一台代理服务器。规则引用的组名必须与定义完全一致,且要继续检查组内当前选项,不能只看到命中组名就认定路径正确。
rule 按规则选择出口,global 通常交给全局策略组,direct 则让进入内核的连接使用直连。模式决定怎么处理流量,不决定接管哪些应用,所以切换全局并不能替代系统代理或 TUN。排查时可短暂对比模式差异,但应记录原设置,确认问题后恢复所需分流方式。
根据 IP 地址所属地区进行匹配的数据与规则机制,例如 GEOIP,CN,DIRECT。数据库结果反映的是 IP 地址的登记或推定地区,并不代表用户当前位置,CDN 地址也可能随网络而变化。命中异常时,应检查当前内核使用的数据格式、加载日志和更新来源,而不是仅凭网页显示的地区判断规则失效。
把一批匹配条件放在独立资源中,通过 rule-providers 声明,再用 RULE-SET 规则引用,便于单独维护和更新。规则集描述“哪些连接符合条件”,引用它的规则才决定“交给哪个出口”。文件格式、behavior 与实际内容需要对应;下载成功但格式不符,仍可能无法加载。
继续查阅:代理模式选择 · GeoIP 更新与命中异常排查。
04 / 解析与接管
域名解析和流量接管是两件事。页面能打开,不代表每一条查询都走了预期路径。
把域名解析为 IP 地址的系统,是连接建立前常见的一环。客户端的 dns 配置只影响经过其解析路径的请求,浏览器自带的加密 DNS、应用自建解析和系统缓存都可能改变结果。看到 no such host 时,应先确认失败的是目标域名还是代理服务器域名,再检查对应解析路径。
先向应用返回用于映射的虚拟 IP,再由内核根据映射找回域名并处理连接,目的是保留域名信息并减少部分解析等待。常见虚拟地址来自 198.18.0.0/16,它不是网站的真实服务器地址。若应用拿到虚拟地址后绕过内核直连,连接可能失败;兼容性处理应针对具体域名评估过滤,而不是随意扩大排除范围。
通过虚拟网络接口和路由接管 IP 流量,可覆盖部分不遵循系统代理的程序,配置通常位于 tun 下。它需要系统权限、路由与 DNS 配合,不等于开启后设备全部通信就一定经过代理。与其他 VPN 同时使用时,应先检查路由冲突;验证是否接管成功,要看连接记录,而不是只看开关状态。
本应经指定路径发送的域名查询,实际交给了其他解析器,例如仍通过本地网络的 DNS 发出。判断时需要结合操作系统、浏览器、客户端以及测试页面的查询方式,不能只凭解析器显示的国家或地区下结论。排查可先统一浏览器与系统解析设置,再观察查询和连接日志,逐项确认路径是否符合预期。
向操作系统登记本地代理地址,让遵循系统设置的应用使用它,不是给所有网络包强制改道。命令行工具、游戏或自带网络设置的程序可能完全忽略这项设置,需要单独配置代理或评估 TUN。关闭客户端后若浏览器也无法访问,先检查系统是否仍保留了指向已停止监听端口的代理地址。
05 / 资料与文件
导入成功只是读到了资料。还要确认当前配置已启用、引用完整,以及出口实际可用。
从指定地址获取并定期更新代理资料或完整配置的机制,不同来源返回的内容与格式可能不同。完整 Clash 配置通常含节点、策略组和规则,而纯节点订阅未必能直接作为整份配置启用。链接可能携带访问凭据,分享截图或日志前应遮盖完整地址;更新成功后还要确认当前启用的是这份配置。
一条可供内核连接的代理服务器配置,通常包含协议、服务器地址、端口和认证信息。节点名称只是显示标签,写着某个地区或线路名称并不能证明真实位置、速度或可用性。节点可以直接写在 proxies 中,也可以由代理集合加载;分享配置排错时,应删除认证内容,而不只是改掉显示名称。
客户端经指定出口访问测试地址并记录耗时,结果可能包含连接、握手和响应等待,并不总是单纯的网络往返时间。延迟低不等于下载速度快,测试成功也不代表所有目标网站都能访问。比较节点时应使用相同测试地址与条件;显示超时则需结合日志区分连接失败、解析失败和测试目标不可达。
Clash 配置常用的结构化文本格式,通过缩进、冒号和列表符号表达层级,缩进应使用空格而非 Tab。config.yaml 是常见文件名,不代表文件中的每个键都被当前内核支持。修改后先检查语法,再检查策略组名称和资源引用;订阅管理的文件还可能被下一次更新覆盖,持久修改应使用客户端支持的覆写机制。
通过 proxy-providers 独立加载一组代理条目,再由策略组通过 use 引用的机制。它与导入整份订阅配置不同:出口资料可以单独更新,而主配置中的规则和组结构继续保留。集合下载完成但代理列表为空时,检查资源格式、引用名称及过滤条件,不要把规则集文件误填进代理集合。
继续操作:Clash 订阅链接导入步骤 · 节点超时排查。