mihomo 内核 · 规则分流参考站

Clash Verge官网 客户端下载与配置参考

本站整理 mihomo 内核说明、订阅导入步骤与 规则分流写法,五平台客户端与内核文件的下载入口集中在下载页;首次使用按安装、导入订阅、选择模式、验证连通四步走完即可。

永久免费 代码开源 中文文档 GPL-3.0 许可

配置抽屉

五个配置项,决定客户端怎么分流

mode、dns、tun、proxy-providers 与 external-controller 是配置文件里最常被改动的五段。左侧切换查看每一段解决什么问题,右侧是对应的 config.yaml 片段。

mode 决定内核拿到一条连接之后怎么处理。rule 按规则表从上往下匹配,命中哪一条就走哪条对应的策略;global 把全部流量交给同一个出口,direct 相当于临时关掉代理。日常保持 rule 即可,只有在判断「是规则写错了还是节点不通」时才切到 global 做对照。客户端界面上的模式开关改的就是这一行,切回 rule 之后要确认策略组里至少有一个可用节点,否则命中 PROXY 的连接会直接失败。

mode: rule        # rule / global / direct
log-level: info
ipv6: false
规则模式全局模式直连模式分流顺序

dns 段决定域名由谁解析、走哪条链路。enhanced-mode 设成 fake-ip 时,内核先返回一个虚拟地址给应用,真实解析在代理链路里完成,明文查询不会出现在本地网络;设成 redir-host 则先解析再连接,兼容性更好但更容易被中间设备看到。nameserver 填加密解析地址(DoH 或 DoT),fallback 用来兜住被污染的返回结果。改完这一段建议重启内核,只重载配置有时不会重建解析缓存。

dns:
  enable: true
  enhanced-mode: fake-ip
  nameserver:
    - https://223.5.5.5/dns-query
  fallback:
    - tls://1.1.1.1:853
fake-ipDoH域名解析DNS 泄漏

tun 由内核创建一块虚拟网卡,把系统层面的流量整体接管,不再依赖应用是否遵守系统代理设置。终端命令、容器、游戏客户端这类不读代理配置的程序,只有开启 tun 之后才会走规则。开启前先确认权限:Windows 需要以管理员身份运行,macOS 首次开启会要求授权安装网络组件。stack 选 gvisor 兼容性最好,system 借用系统协议栈、吞吐更高,但个别系统上会和防火墙冲突。不需要接管全局流量时保持关闭即可。

tun:
  enable: true
  stack: gvisor      # gvisor / system / mixed
  auto-route: true
  dns-hijack:
    - any:53
虚拟网卡系统代理gvisor全局接管

proxy-providers 把订阅链接从 proxies 里拆出来,交给内核按固定间隔拉取,多个策略组可以共用同一份节点集合,订阅换地址时只改这一处。health-check 决定可用性探测的地址与间隔,探测失败的节点在策略组里会被暂时跳过;path 指定缓存文件位置,拉取失败时内核继续用上一次的缓存,不会因为一次网络抖动把节点清空。interval 的单位是秒,设得太短会被订阅服务限流,一般从 3600 起步。

proxy-providers:
  sub-a:
    type: http
    url: "https://example.com/api/v1/client/subscribe?token=xxxx"
    interval: 3600
    path: ./providers/sub-a.yaml
    health-check:
      enable: true
      url: https://www.gstatic.com/generate_204
      interval: 300
订阅更新健康检查节点过滤本地缓存

external-controller 是内核暴露出来的控制接口,客户端界面、第三方面板与脚本靠它读取当前策略、切换节点、查看连接列表。GUI 客户端启动内核时会自动写入这一行并生成随机密钥,手动部署内核时才需要自己指定。默认监听 127.0.0.1:9090,只有本机能访问;要放到局域网或者服务器上,必须同时设置 secret,否则同网段任何人都能改你的分流规则和节点选择。

external-controller: 127.0.0.1:9090
secret: "your-password"
控制接口面板密钥本地监听

开源生态

内核、客户端与规则集的维护边界

同一份配置文件可以被不同客户端驱动,因为真正解析它的是内核。理清三层各自负责什么,换客户端或者换内核时就不必把规则重写一遍。

客户端与内核是两层

mihomo 负责解析配置、建立连接、执行规则;Clash Verge Rev、FlClash 这类客户端负责界面、订阅管理与内核进程的启停。同一个内核可以被不同客户端驱动,配置文件格式一致,换客户端时把 profile 导出再导入即可,规则与策略组不需要重写。

分支关系与配置兼容

原版 Clash 内核已经停止维护,社区在它的配置格式上继续开发,形成 Meta 与 mihomo 这一支,新增了 VLESS、Hysteria2、TUIC 等协议支持,以及 rule-providers、proxy-providers 这类配置能力。现在仍在更新的客户端基本都以 mihomo 为内核,配置文件里能写哪些字段,以 mihomo 的文档为准。

规则集是独立维护线

分流规则被拆成域名、IP、进程等类型的清单文件,由不同项目分别维护,内核通过 rule-providers 按需拉取。这样更新规则不需要改动配置文件,客户端只要保留引用即可。挑选规则集时看更新频率与分类粒度,比看条目总数更有意义。

更新机制分三层

客户端的更新分三层:界面、内核、订阅与规则集。多数客户端把内核当作可替换组件,设置里能指定版本或者手动替换二进制文件;订阅与规则集按各自配置的间隔定时拉取。出现连接异常时,先确认三层的配置与时间是否对得上,再去看具体报错。

常见问题精选

上手前最常遇到的四个问题

这里放最常被问到的四条,完整的分类问答在常见问题页,术语解释在术语手册。

订阅更新失败先检查什么

先确认订阅链接本身能在浏览器里打开并返回内容,再回到客户端看更新日志与时间戳。多数失败是链接过期、域名被本地 DNS 拦下,或者订阅服务临时限流;把链接重新导入一次,通常能排除缓存与旧配置的干扰。

订阅与节点排查清单 →

客户端显示已连接但网页打不开

按顺序查三处:dns 段是否启用并指向加密解析,模式是否被切到了 direct,连接日志里目标域名命中了哪条规则。三项都正常时,再换一个节点验证是不是出口本身的问题。

连接异常排查步骤 →

rule 模式和 global 模式有什么区别

rule 按规则表逐条匹配,不同域名走不同出口;global 把全部流量交给同一个出口。模式只改变内核的处理方式,不影响节点本身,排查问题时切到 global 做对照最快。

术语手册:模式与分流 →

自定义规则写在配置文件的哪一段

写在 rules 段,语法是「类型,匹配内容,策略名」三部分。规则多了可以拆成单独的规则集文件,用 rule-providers 引入,这样更新规则不必改动主配置。

协议手册:规则写法 →

查看全部常见问题 →

下载Clash