全球网络加速服务|低延迟海外网络连接|https://www.lvpn.cc 欧米伽

Mihomo内核配置文件修改指南

更新于 2026-11-07 · oumei.store

简答:修改 Mihomo 配置文件,建议按“定位当前生效文件→备份→只改一个模块→用 mihomo -t 校验→重载并验证”的顺序进行。订阅配置不建议直接长期改原文件,因为更新后可能被重新下载内容覆盖;更稳妥的做法是使用客户端的覆写、扩展配置或内核支持的 provider override。

定义:Mihomo 配置文件是控制代理端口、代理组、规则、DNS、TUN 等行为的 YAML 文件,具体生效内容还可能受到图形客户端覆写和订阅更新机制影响。

先判断:你改的是主配置、订阅文件还是客户端覆写

这篇指南只解决 Mihomo 内核配置文件的修改与验证,不等同于某个图形客户端的固定菜单教程。不同客户端可能把主配置、订阅缓存和覆写文件分开保存,因此“改了但不生效”时,第一步不是继续改字段,而是确认当前运行实例实际加载的是哪一个文件。

配置对象怎么分辨
对象适合修改的内容主要风险
主配置文件端口、运行模式、DNS、TUN、规则和代理组语法错误可能导致内核无法启动;客户端可能重新生成文件
proxy-providers 订阅文件订阅节点的本地缓存或 provider 参数订阅更新后本地手改内容可能消失
客户端覆写或扩展配置自定义代理组、规则、DNS 和部分节点属性字段是否支持取决于客户端和内核版本
rule-providers 规则集域名、IP 或 classical 规则集合格式与 behavior 不匹配时规则可能加载失败

官方文档将代理集合定义为 proxy-providers,可使用 http、file 或 inline 类型;规则集合则通过 rule-providers 引入,并需要匹配实际文件格式。修改前应先确认字段所属对象。查看 proxy-providers 文档;查看 rule-providers 文档

安全修改流程:定位、备份、校验、重载、验证

  1. 定位当前配置。优先在图形客户端的“配置、Profiles、订阅、打开配置目录”之类入口中打开文件,不要凭经验猜固定路径。Linux 独立部署时,官方服务示例使用 /etc/mihomo 存放配置文件;如果你使用的是图形客户端,实际目录以客户端显示为准。查看官方服务目录示例
  2. 备份并保护敏感字段。复制一份完整 YAML,文件名可加上日期和用途。订阅 URL、认证信息、节点密码、API 密钥不要发布到论坛、截图或公开仓库。备份的目标是可以完整回滚,而不是只复制你准备修改的几行。
  3. 一次只改一个模块。先改端口或代理组,再改 DNS、规则或 TUN。YAML 使用空格缩进,不要混用 Tab;冒号、引号、列表层级和节点名称都要保持结构一致。
  4. 用内核校验。在 Mihomo 可执行文件所在目录运行 mihomo -t -f config.yaml;如果你的文件名或路径不同,应替换为实际路径。校验通过只代表配置能够被解析,不代表订阅可下载、节点可连接或 TUN 一定能接管系统流量。
  5. 重载或重启。如果客户端提供“重载配置”,优先使用该功能;使用外部控制 API 时,官方 API 文档提供了 /configs 的读取与重载接口,但是否开放 API、监听地址和认证方式取决于你的配置。查看官方 API 文档
  6. 验证改动。先看运行日志,再检查代理端口、代理组成员、规则命中和 DNS 解析。若只验证 YAML 解析,不要把“校验成功”写成“网络已经连接成功”。

回滚时停止内核,恢复备份文件,再重新校验和重载。如果配置由订阅自动生成,建议保留原订阅文件不动,把自定义内容迁移到客户端支持的覆写或扩展位置。

常改字段与可复制示例

1. 通用运行字段

mode 控制运行模式,可用 rule、global 或 direct;log-level 控制日志详细程度;allow-lan 决定是否允许其他设备通过代理端口访问。开启局域网访问时,应同时限制绑定地址、允许网段或增加认证,避免把代理端口暴露到不需要的网络。官方文档说明,allow-lan: true 会允许其他设备通过 Clash 代理端口访问。查看全局配置文档

mixed-port 可作为同时兼容 HTTP 和 SOCKS 的入口,但具体端口必须避开系统中已被占用的端口。示例只用于配置结构验证,端口和安全策略请按本机环境替换:

mode: rule
log-level: info
allow-lan: false
mixed-port: 7890
ipv6: false

2. proxies、proxy-providers 与 proxy-groups

proxies 用于直接写入代理节点;proxy-providers 用于引用远程、文件或内嵌节点集合;proxy-groups 再通过 proxies 或 use 引用节点和 provider。代理组中的名称必须与实际节点或代理组名称匹配,否则可能出现代理组为空。

下面是仅用于结构验证的最小示例,不包含真实节点,不能直接连接:

proxies: []
proxy-groups:
- name: PROXY
type: select
proxies:
- DIRECT
rules:
- MATCH,DIRECT

官方代理组文档说明,proxies 引用代理或其他代理组,use 引用代理集合;健康检查只检查代理组中直接列出的 proxies,不要误以为所有 provider 节点都会自动被同样检查。查看 proxy-groups 文档

3. rules 与规则优先级

Mihomo 按规则从上到下匹配,越靠前优先级越高;通常应把更具体的域名、网段或进程规则放在前面,把 MATCH 作为兜底规则放在最后。规则集通过 RULE-SET 引用,且必须先在 rule-providers 中定义对应名称。查看路由规则文档

rules:
- DOMAIN-SUFFIX,example.com,PROXY
- IP-CIDR,192.168.0.0/16,DIRECT,no-resolve
- MATCH,DIRECT

4. DNS 与 TUN:不要一次同时改完

DNS 配置涉及 nameserver、fallback、proxy-server-nameserver、direct-nameserver 和 enhanced-mode 等字段。官方文档特别区分了代理节点域名解析与普通域名解析,修改时应先保证代理节点域名能够解析,再处理规则分流。查看 DNS 配置文档

TUN 是系统流量接管功能,可能改变系统路由和 DNS。官方文档列出 auto-route、auto-redirect、auto-detect-interface、dns-mode 和 dns-hijack 等选项;Windows、Linux、macOS 的行为并不完全相同。建议先确认普通代理端口可用,再单独启用 TUN,并准备关闭 TUN 的回滚方案。查看 TUN 配置文档

tun:
enable: false
auto-route: true
auto-detect-interface: true

上面的示例明确关闭 TUN,仅用于验证 YAML 层级;不要直接把它当成适用于所有系统的可连接配置。启用 TUN 前还要检查管理员或系统权限、网卡选择、DNS 模式和现有 VPN 是否冲突。

修改后不生效或启动失败:按现象排查

Mihomo 配置问题速查
现象优先检查处理方法
启动时报 YAML 错误缩进、Tab、冒号、引号、列表层级恢复备份后只重新加入一段;再运行 mihomo -t -f config.yaml
改完后完全没变化是否改错文件、是否被客户端覆写、是否需要重载从客户端打开当前配置目录,读取运行配置或重载后再验证
代理组为空节点名称、provider 名称、use 与 proxies 引用先用最小代理组验证名称匹配,再加入过滤条件
订阅更新后改动消失是否直接编辑订阅缓存文件将长期改动迁移到覆写、provider override 或扩展配置
端口无法启动端口被其他程序占用、权限不足更换未占用端口或停止冲突程序,再重新校验和重载
开启 TUN 后断网系统权限、DNS 劫持、路由、网卡和其他 VPN先关闭 TUN 恢复普通代理,再逐项启用并查看日志
DNS 解析异常nameserver、代理节点解析链路、fake-ip 过滤暂时使用更简单的 DNS 配置,确认代理节点域名解析正常后再增加策略

排障时不要同时修改代理组、规则、DNS 和 TUN。最短路径是:恢复能启动的备份→只改一个字段→校验→重载→查看日志→验证一个目标域名或端口。这样才能判断问题来自语法、加载文件、节点、规则还是系统接管。

适合长期保留的修改策略

  • 只改本机偏好:优先放在客户端支持的覆写或扩展配置中,例如自定义代理组、规则顺序和 DNS 参数。
  • 只改订阅节点属性:优先使用 provider 的 override,例如增加节点名前缀、过滤名称或调整部分通用属性;具体字段以当前官方文档和客户端支持情况为准。
  • 只改规则集合:使用独立的 rule-providers 文件,明确写出 behavior 和 format,不要把 domain、ipcidr、classical 三种格式混用。
  • 需要 TUN:先完成普通端口代理验证,再单独备份并启用 TUN;出现断网时立即回滚到关闭 TUN 的配置。
  • 无法确认字段:不要照抄其他页面的示例值。字段是否存在、名称是否改变、客户端是否覆盖,应以当前 Mihomo 官方文档和客户端说明为准。

本站是第三方使用指南站,不是 Mihomo 或任何图形客户端的官方网站。本文中的示例只用于说明配置结构,真实订阅地址、节点名称、端口和系统权限都需要按你的环境替换。

常见问题

Mihomo 配置文件通常在哪里?

没有适用于所有客户端的固定路径。图形客户端通常提供“打开配置目录”或类似入口;Linux 独立服务的官方示例使用 /etc/mihomo。应以当前客户端显示的工作目录和实际启动参数为准。

直接修改订阅配置为什么会恢复?

因为订阅更新可能重新下载并替换本地缓存文件。需要长期保留的代理组、规则或节点属性,建议迁移到客户端支持的覆写、扩展配置或 proxy-providers 的 override 中。

mihomo -t 校验通过是不是已经能连接?

不是。-t 主要用于检查配置能否解析。订阅下载、节点认证、DNS 解析、端口占用、规则命中和 TUN 权限仍需分别验证。

代理组为空应该改哪里?

先检查 proxy-groups 中引用的节点名、代理组名、provider 名称以及 use 和 proxies 的位置。名称不匹配或过滤条件排除了全部节点,都可能导致代理组为空。

改完 DNS 后无法上网怎么办?

先恢复备份或暂时关闭复杂 DNS 策略,确认代理节点域名可以解析,再逐步加入 nameserver、proxy-server-nameserver、fake-ip 或规则相关设置。

开启 TUN 后断网怎么回滚?

先在客户端关闭 TUN,或把配置中的 tun.enable 改为 false,恢复普通代理端口并重载。之后再单独检查系统权限、网卡、DNS 劫持、路由和其他 VPN 冲突。

相关阅读

参考资料

  1. Mihomo 官方配置文档
  2. Mihomo 官方全局配置文档
  3. Mihomo 官方 proxy-providers 文档
  4. Mihomo 官方 proxy-groups 文档
  5. Mihomo 官方路由规则文档
  6. Mihomo 官方 rule-providers 文档
  7. Mihomo 官方 DNS 配置文档
  8. Mihomo 官方 TUN 配置文档
  9. Mihomo 官方 API 文档
  10. Mihomo 官方服务部署文档