CORE / CLIENT
内核与客户端
先区分界面、连接入口与实际执行代理逻辑的程序。
- Mihomo 内核 Mihomo core
- Mihomo 是负责代理协议连接、规则匹配与 DNS 处理的程序核心,配置通常使用 YAML。内核本身不等于带订阅管理界面的桌面或移动应用。独立运行时,一般通过配置文件、命令行或控制接口管理;使用图形客户端时,则由客户端调用内核。
- Clash Meta Former project name
- Clash Meta 是 Mihomo 项目曾使用的名称,在旧教程、订阅说明与部分客户端名称中仍然可见。遇到名称相近的配置,不应直接假定所有字段都能通用。判断兼容性时,应核对实际内核及其版本支持,而不是只看应用标题中是否包含 Meta。
- 客户端 Client application
- 客户端提供订阅导入、策略选择、日志查看以及系统网络设置等操作界面。界面功能、权限管理方式和内置内核可以分别更新,因此相同内核不代表相同使用体验。比较客户端时,应同时查看平台支持、配置覆盖机制和网络接管方式,参阅选型指南。
- 系统代理 System proxy
- 系统代理把本地 HTTP 或 SOCKS 等代理入口写入操作系统的相关设置,让遵循这些设置的应用将请求交给内核。部分游戏、命令行程序或自行管理网络连接的应用不会使用这一入口。开启系统代理不等于接管全部流量,也不决定连接最终直连还是经过代理节点。
- 节点 Proxy outbound
- 节点通常指一条代理出站配置,包含服务器地址、端口、协议、认证与传输参数。节点名称只是便于识别的标签,名称中的地区并不能单独证明实际出口位置。节点能被导入只说明数据可被读取,是否能够建立连接还取决于参数、服务端状态与当前网络。
PROTOCOL
代理协议
协议定义通信方式;底层传输、认证与 TLS 需要分别核对。
- HTTP 代理 HTTP proxy
- HTTP 代理是常见的应用层代理接口,浏览器通常可以直接指定其地址与端口。访问 HTTPS 网站时,客户端通常通过 CONNECT 方法建立隧道,再在隧道内与网站进行 TLS 通信。代理入口本身是否加密与网站是否使用 HTTPS 是两个问题,不应将两者混为一谈。
- SOCKS5 SOCKS version 5
- SOCKS5 是通用代理协议,可承载 TCP 连接,并在客户端、服务端与应用均支持时转发 UDP。SOCKS5 本身不提供传输加密,不能因为使用了代理端口就认定整段链路已加密。域名由应用本地解析还是交给代理解析,取决于具体应用及其代理选项。
- Shadowsocks Encrypted proxy protocol
- Shadowsocks 使用约定的加密方法与密钥进行代理传输,配置类型常写作
ss。客户端与服务端需要使用兼容的加密方法和认证参数;不同协议代际不能只靠修改名称互相替换。若节点还依赖插件,应另行确认当前内核支持相应插件及其选项。
- VMess VMess protocol
- VMess 是使用 UUID 等参数进行认证的代理协议,可搭配不同底层传输方式。节点配置中的协议类型、WebSocket 等传输设置以及 TLS 属于不同层次,必须与服务端对应。仅确认 UUID 正确并不足以证明配置完整,还需要核对地址、端口、路径与服务器名称等实际参数。
- Trojan TLS-based proxy protocol
- Trojan 通常在 TLS 连接中承载代理数据,并使用密码进行认证。连接失败可能发生在网络连接、TLS 握手或密码认证的不同阶段,应结合日志区分。证书校验依赖服务器名称与证书链等条件,不宜把跳过证书校验作为常规排障步骤。
RULE / POLICY
规则与策略组
规则决定交给谁处理,策略组决定具体使用哪个出口。
- 规则分流 Rule-based routing
- 规则分流是在 Rule 模式下,按配置顺序检查域名、IP、进程等条件,将连接交给首条命中规则指定的策略。越具体的例外通常越需要放在宽泛规则之前。排查出口不符时,应查看实际命中的规则和策略组选择,而不是只检查配置中是否存在目标域名。
- 策略组 Proxy group
- 策略组把节点或其他策略组组织成一个逻辑出口,供规则引用。
select用于手动选择,url-test按测试结果选择,fallback则按可用性与配置顺序回退。组名必须与引用一致;切换组内节点会影响指向该组的新连接,但不一定迁移已经建立的连接。
- GeoIP IP geolocation matching
- GeoIP 根据 IP 地址所属地区的数据进行匹配,例如
GEOIP,CN,DIRECT。它判断的是地址数据,而不是服务注册地或用户所在地。共享基础设施、地址归属变化与数据库更新情况都会影响判断;需要精确处理某类网站时,可以结合域名规则。
- GEOSITE Domain category matching
- GEOSITE 通过域名分类数据匹配服务或站点集合,例如
GEOSITE,category-ads-all,REJECT。分类名称、覆盖范围与更新节奏取决于实际使用的数据源,不是所有数据源都包含相同分类。它与 GeoIP 的区别在于匹配域名集合,而不是根据服务器 IP 判断地区。
- MATCH Catch-all rule
- MATCH 是不附加匹配条件的兜底规则,通常放在
rules列表末尾,例如MATCH,PROXY。这里的PROXY必须对应配置中存在的节点或策略组,并不是固定的内置代理出口。若将 MATCH 放在列表前部,后面的规则就无法再处理已被它匹配的连接。
DNS / NETWORK
DNS 与网络模式
流量接管、域名解析与连接测试是三个不同环节。
- TUN 模式 Virtual network interface
- TUN 模式通过虚拟网络接口与路由设置把流量送入内核,适合处理不遵循系统代理设置的应用。它改变的是流量进入内核的方式,不会取代 Rule、Global 等出站模式。实际接管范围取决于路由、排除项、系统权限及客户端实现,启用后仍需验证局域网与其他 VPN 的兼容情况。
- DNS Domain Name System
- DNS 用于查询域名对应的地址等记录,解析结果会影响后续连接目标与部分 IP 规则判断。Mihomo 的 DNS 设置用于控制内核的解析行为及相关查询路径,但仅启用 DNS 服务,不代表系统或所有应用都已经使用它。浏览器安全 DNS、应用自带解析和系统解析还需要分别检查。
- Fake-IP Synthetic address mapping
- Fake-IP 是一种 DNS 增强模式:向应用返回虚拟地址,并在内核内维护该地址与原始域名的对应关系。内核接收到连接后可利用映射保留域名信息,继续进行规则判断。对依赖真实解析地址的局域网服务或特定应用,可结合
fake-ip-filter排查;过滤域名本身不等于指定直连。
- DNS 泄漏 DNS leak
- DNS 泄漏通常指查询未按预期路径发送,使非预期解析服务接收到请求。浏览器单独启用的安全 DNS、应用自带解析或未被接管的系统请求,都可能造成路径差异。检测页面显示的解析服务名称只能提供线索,应结合系统设置、浏览器配置和内核日志判断,不能只凭名称得出结论。
- 延迟测试 Latency test
- 客户端中的延迟测试通常通过指定目标请求,观察某条代理路径的响应情况。结果受到测试目标、域名解析、连接握手、网络拥塞及测试实现影响,因此不同客户端的结果未必可以直接比较。测试通过不代表所有网站都可访问,较低的测试延迟也不等于更高的下载速度。
SUBSCRIPTION / CONFIG
订阅与配置文件
先确认内容结构,再区分导入、更新与实际加载。
- 订阅 Subscription
- 订阅是通过链接获取可更新节点信息或配置内容的方式,并不是某一种固定代理协议。返回内容可能只有节点,也可能包含 DNS、策略组与规则等完整设置。链接往往带有身份信息,分享截图与日志时应遮挡;实际导入流程见订阅导入教程。
- 订阅格式 Subscription format
- 订阅格式指链接返回内容的结构,例如完整 YAML 配置、节点列表或编码后的分享链接集合。文件扩展名和链接外观不能证明格式正确,还要确认客户端的导入入口支持该结构。完整配置通常不能直接当作只接受节点数据的 provider 使用;解析失败时应先排除登录页、错误页与链接失效。
- YAML Structured configuration text
- YAML 是 Mihomo 配置使用的结构化文本格式,通过缩进、键值与列表表达层级。缩进应使用空格,同级项目保持一致;包含特殊字符的字符串可能需要引号。YAML 语法合法只说明结构能够解析,字段名称、取值与策略引用是否符合内核要求,还需要通过配置检查与日志确认。
- rule-providers Rule set providers
rule-providers用于声明本地或远程规则集,以及内容类型、格式和更新方式。声明完成后,还需要在rules中通过RULE-SET引用规则集并指定出口策略。规则集负责提供匹配条件,不自动决定节点;它与提供节点数据的proxy-providers不能混用。
- 配置更新 Profile update
- 配置更新是重新获取订阅或远程资源的操作,不等于客户端升级或内核升级。下载成功、解析成功与内核实际加载新配置是三个需要分别确认的环节。远程更新可能覆盖直接编辑的订阅内容,长期自定义更适合使用客户端支持的覆写机制;排查步骤见日常维护章节。