mihomo 内核
Proxy coremihomo 是由 Clash Meta 项目延续发展的代理内核,负责协议连接、规则匹配和 DNS 等网络处理。内核可以独立运行,也可以被图形客户端调用,因此客户端名称与内核名称不一定相同。查看某项配置是否可用,应以实际运行的内核及其支持情况为准,而不是只看应用名称中是否含有 Clash。
概念速查
从配置字段查概念,从网络行为找区别。按五类主题整理内核、协议、分流与订阅中的常见用语。
运行组件
界面、处理引擎和代理出站是不同对象。排查问题时先明确故障发生在哪一层。
mihomo 是由 Clash Meta 项目延续发展的代理内核,负责协议连接、规则匹配和 DNS 等网络处理。内核可以独立运行,也可以被图形客户端调用,因此客户端名称与内核名称不一定相同。查看某项配置是否可用,应以实际运行的内核及其支持情况为准,而不是只看应用名称中是否含有 Clash。
图形客户端将订阅导入、策略选择、日志查看等操作组织为可视化界面,还可能负责系统代理设置和服务管理。同一个内核可以搭配不同客户端,菜单名称和配置保存方式也会不同。更换客户端前,应分别确认它支持的操作系统、内核类型以及配置迁移方法。
查看客户端对比 ›节点通常指配置中的一个代理出站定义,包含协议类型、服务器地址、端口和认证参数。节点名称只是便于识别的标签,不足以证明服务器位置、线路质量或协议能力。同一服务器可以提供多个不同出站配置,选择节点时需要结合连接记录和实际应用表现判断。
客户端常见的延迟测试,是经指定代理访问测试地址并记录耗时,并不一定是 ICMP Ping。结果会受到测试目标、DNS、连接建立过程和当时网络状态影响,不能直接换算成下载速度。测试超时也不必然表示所有网站均不可用,应再检查测试地址可达性与具体连接日志。
这是客户端或控制面板与内核交互的管理接口,通常通过 external-controller 配置监听地址。它可以用于读取连接、切换策略和查询运行状态,但不是提供给应用上网的代理端口。一般应限制在必要的访问范围内;需要远程管理时,还应配置认证并检查防火墙规则。
出站连接
协议描述通信方式,不直接代表速度排名。服务端实现、网络路径与终端资源同样影响结果。
Shadowsocks 是一种加密代理协议,在配置中通常以 ss 表示。客户端与服务端需要使用匹配的加密方法和认证信息;不同协议扩展或插件还可能需要额外参数。它与应用侧使用的 SOCKS 代理入口不是同一概念,不能仅凭名称相近就互换配置。
VMess 与 VLESS 是 V2Ray 生态中的两种不同协议,不是同一个配置类型的两种写法。VLESS 不自带数据加密,需要结合 TLS 或 REALITY 等机制理解连接的安全属性。导入时还要核对传输方式、服务器名称与认证参数,不能只修改 type 就完成协议转换。
Trojan 通常依托 TLS 建立代理连接,配置需要匹配密码、服务器地址与 TLS 相关参数。证书验证失败时,应检查服务器名称、设备时间与证书链,而不是先跳过验证。名称相同的节点也可能采用不同传输设置,能否连接取决于两端参数是否一致。
Hysteria2 基于 QUIC,连接依赖 UDP 网络可达性,在丢包或路径波动场景下具有不同于传统 TCP 传输的取舍。它不保证在所有网络中更快,带宽与拥塞控制设置也会影响体验。若当前网络限制 UDP,应先确认连通条件,而不是反复更换 DNS 或规则。
TUIC 同样基于 QUIC,可用于代理 TCP 与 UDP 流量,但它与 Hysteria2 的认证、配置和实现细节不同。客户端与服务端需要支持匹配的 TUIC 协议版本。移动设备上还应结合持续连接、网络切换与后台运行情况判断资源消耗,不能把协议名称直接等同于省电结论。
查阅协议设计取舍 ›匹配与策略
规则负责匹配,策略组负责组织出站。检查连接详情时,应把两者连起来看。
规则模式下,内核按配置顺序检查连接是否符合域名、地址或其他匹配条件,通常由首个命中的规则决定出站策略。因此,宽泛规则放在前面可能遮住后面的精确规则。添加 Clash 自定义规则后,应检查连接详情中的命中项,并确认末尾兜底规则仍指向预期策略。
查看规则使用说明 ›策略组把多个节点或其他策略组组织成一个逻辑出站,供规则统一引用。select 通常用于手动选择,url-test 按探测结果选择,fallback 则侧重可用性与顺序切换。组名本身不决定行为;排查时需要继续展开组内引用,确认最终使用的节点。
GeoIP 用于按 IP 分类匹配,GeoSite 用于按域名集合匹配,两者依赖的数据与匹配对象不同。数据中的归类不等于目标服务的实时物理位置,也可能因更新滞后而出现偏差。遇到误匹配时,应同时核对域名解析结果、数据来源和规则顺序,而不是只修改节点。
规则集由 rule-providers 定义,再通过 RULE-SET 在规则列表中引用,用来独立维护一组匹配条件。规则集本身通常不决定节点选择,最终策略由引用它的规则指定。使用时需要匹配数据格式与行为类型,并留意远程更新失败是否导致仍在使用旧数据。
规则模式按照规则列表分配出站,全局模式主要使用 GLOBAL 策略组,直连模式则让进入内核的连接直接出站。这里的全局不表示系统全部流量都已被接管,接管范围仍取决于系统代理、TUN 与应用行为。切换模式后,应新建连接验证,旧连接可能继续使用原有路径。
流量入口与解析
接管连接与解析域名是两条相关但不同的路径。模式开关不能替代实际路径检查。
TUN 模式借助虚拟网络接口接收 IP 数据包,可以覆盖部分不遵循系统代理设置的应用。启用通常需要管理员权限、服务组件或系统 VPN 授权,并配合路由及 DNS 设置。它不等于固定使用代理节点,接管后的连接仍会按当前模式和规则决定出站,也可能与其他 VPN 的路由产生冲突。
系统代理是向操作系统登记代理地址和端口,让支持该设置的应用把连接交给客户端。某些应用使用独立网络配置,可能不会跟随,因此浏览器可用不代表所有程序都已被接管。关闭或卸载客户端后若仍无法联网,应检查系统中是否残留了指向本机已关闭端口的代理设置。
Fake-IP 为域名返回虚拟地址,并在内核中保留域名与地址的映射,方便接管连接时按域名处理。它返回的不是目标服务器真实地址,因此直接拿该地址进行外部地理定位没有意义。部分依赖真实解析结果的应用需要加入 fake-ip-filter,调整后还可能需要清理相关 DNS 缓存。
redir-host 向应用返回真实解析地址,与 Fake-IP 返回虚拟地址的方式不同。域名规则能否正常匹配,还要结合内核掌握的域名映射以及嗅探等条件判断。切换增强模式不是通用修复方法,应先确认问题出在解析、连接接管还是规则匹配,再检查缓存与解析路径。
DNS 泄漏通常指域名查询偏离了预期解析路径,例如连接走代理,但查询仍交给了非预期的系统解析器。应同时检查浏览器加密 DNS、系统 DNS、IPv6 和客户端的 DNS 接管范围。检测页面显示某个解析服务商并不能单独证明泄漏,需要结合预期配置和实际查询路径判断。
配置来源与维护
远程内容、本地文件与客户端覆写各有边界。修改前先确认当前正在加载哪一份配置。
Profile 是客户端管理、供内核加载的一份配置,通常包含节点、策略组、规则、DNS 和监听端口等内容。客户端可以保存多份 Profile,但一般只会选定其中一份作为当前配置来源。导入成功不代表已经切换生效,应检查选中状态、内核加载结果和连接记录。
订阅链接用于获取远程配置或节点数据,返回内容可能是完整 YAML,也可能只是某种节点列表,需要匹配对应导入方式。订阅更新只表示重新获取内容,不等于已经建立代理连接。链接常含访问凭据,不宜放进公开截图;出现 Clash 订阅更新失败时,应区分地址失效、请求失败和格式解析错误。
查阅订阅相关问答 ›YAML 是 Clash 系配置常用的结构化文本格式,通过缩进、键值对和列表表达层级关系。缩进应使用空格而不是 Tab,字符串中的特殊字符也可能需要引号处理。语法有效不代表字段一定被当前内核支持,因此保存后还要检查加载日志,避免只凭编辑器没有报错就判断配置正确。
代理集合通过 proxy-providers 定义可独立更新的节点来源,再由策略组引用,便于把节点维护与规则维护分开。它与完整 Profile 不同,通常不负责提供整份 DNS 或分流配置。导入前应确认远程内容格式,不能默认把任意订阅地址直接填入就能使用。
覆写或合并机制用于在远程配置之外保存本地调整,例如追加规则或修改 DNS,减少订阅更新覆盖修改的情况。它通常由客户端实现,不同应用对字段优先级、列表追加和替换的处理可能不同。修改后应检查最终交给内核的配置,而不只看覆写编辑区,并保留一份可恢复的原始配置。