CordCloud - 高速网络服务

mihomo 推荐配置怎么写?先用这份最小模板再按设备调整

更新于 2026-10-24 · cordc.buzz

简答:mihomo 推荐配置不要一开始堆满参数:先备份原 config.yaml,只接入兼容格式订阅,确认节点、代理组、DNS 和规则正常,再按设备需要开启 fake-ip、TUN、IPv6 或远程规则集。

定义:Mihomo 推荐配置,是围绕订阅、代理组、DNS、规则和平台权限整理出的可维护起点,不是一份适合所有设备的固定参数清单。

先看必改字段:10 秒判断该改什么

本站是第三方使用指南站,下面只讨论 mihomo 配置本身。第一次调整时,优先处理订阅地址、控制器密钥、是否允许局域网接入和是否开启 TUN;不要先改一大批 DNS、规则集与节点筛选。

场景先保留暂时不要开启首要检查
Windows 桌面mixed-port、mode: rule、allow-lan: falseTUN、复杂规则集、IPv6系统代理是否指向实际端口,日志是否命中代理组
Android客户端提供的 VPN/TUN 开关、应用分流与桌面端相同的完整 YAML 直接套用VPN 权限、Private DNS、电池限制
Linux 服务器或路由器独立配置目录、专用运行用户、明确路由公开监听控制器、未经确认的规则集TUN 接口、路由表、iptables/nftables 和目录权限
仅本机代理allow-lan: false、控制器绑定 127.0.0.1bind-address: '*'、公网控制器端口占用和本机连接日志

先备份原来的 config.yaml,再在客户端的配置目录中修改或替换它;如果客户端通过启动参数指定配置文件,则按客户端的文件路径加载,不要随意另存为带尖括号的文件名。端口常见为 7897 或 7890,但应以客户端设置页为准。

订阅地址应返回 mihomo 或 Clash 兼容格式。若返回的是完整配置文件,不应把它当成只包含节点的代理提供者;若返回的是纯节点列表,才适合放入 proxy-providers。节点为空时,先在浏览器或客户端查看订阅响应类型、提供者下载状态和解析错误。

最小可用模板:先只改订阅地址和密钥

下面模板使用 proxy-providers 管理纯节点订阅,代理组通过 use 引用提供者。模板没有写 filter 或 exclude-filter,因为筛选正则一旦写错,代理组可能直接变为空。字段含义可对照 Mihomo Proxy Providers 文档 与 Mihomo Proxy Groups 文档。

mixed-port: 7890
allow-lan: false
bind-address: 127.0.0.1
mode: rule
log-level: info
ipv6: false
find-process-mode: strict
external-controller: 127.0.0.1:9090
secret: "请替换为随机密钥"

proxy-providers:
  subscription:
    type: http
    url: "订阅地址"
    path: ./proxy-providers/subscription.yaml
    interval: 3600
    proxy: DIRECT
    health-check:
      enable: true
      url: https://www.gstatic.com/generate_204
      interval: 300
      timeout: 5000
      lazy: true
      expected-status: 204

proxy-groups:
  - name: PROXY
    type: select
    use:
      - subscription
    proxies:
      - AUTO
      - DIRECT

  - name: AUTO
    type: url-test
    use:
      - subscription
    url: https://www.gstatic.com/generate_204
    interval: 300
    timeout: 5000
    tolerance: 50
    lazy: true

  - name: FINAL
    type: select
    proxies:
      - PROXY
      - DIRECT

dns:
  enable: true
  ipv6: false
  default-nameserver:
    - 223.5.5.5
    - 1.1.1.1
  enhanced-mode: redir-host
  nameserver:
    - https://doh.pub/dns-query
    - https://dns.alidns.com/dns-query
  fallback:
    - tls://1.1.1.1
    - tls://8.8.4.4
  fallback-filter:
    geoip: true
    geoip-code: CN
    geosite:
      - gfw
  proxy-server-nameserver:
    - https://doh.pub/dns-query

rules:
  - DOMAIN-SUFFIX,lan,DIRECT
  - DOMAIN-SUFFIX,local,DIRECT
  - GEOIP,LAN,DIRECT,no-resolve
  - GEOIP,CN,DIRECT,no-resolve
  - MATCH,FINAL

default-nameserver用于解析 DNS 服务器自身的域名,因此应填写 IP 地址;nameserver是常规域名解析服务器,fallback是备用解析路径。官方 DNS 文档同时说明了 nameserver-policy、proxy-server-nameserver 和 fallback-filter 的用途,可参考 Mihomo DNS configuration。

这份 DNS 示例不是“绝对无泄漏”承诺:不同系统、TUN 状态、应用自带 DNS 和网络环境可能产生不同解析路径。需要判断是否存在 DNS 旁路时,应同时查看 mihomo 连接日志、系统网络设置和路由器或防火墙中的 DNS 请求;不要只根据网页能否打开来判断。

关键参数怎么选:默认行为、推荐起点与故障表现

推荐值不是官方默认值。下表把两者分开,便于先用保守设置启动,再根据实际故障调整。具体字段以 Mihomo 全局配置文档为准。

参数官方文档行为推荐起点何时调整故障表现
mode支持规则、全局等运行模式rule仅在排查代理链路时临时切换设为全局后,所有请求依赖当前代理组
allow-lan控制是否允许局域网设备接入false手机或其他设备确实需要使用本机代理时开启开启后监听端口暴露范围扩大
bind-address控制监听地址,绑定所有地址会扩大可访问范围127.0.0.1局域网共享时按需绑定局域网地址其他设备无法连接,或产生不必要暴露
ipv6控制 IPv6 解析与相关流量false确认 IPv6 出口、DNS 与规则均正常后开启部分网站打不开或流量路径与预期不同
find-process-mode支持进程匹配模式,严格模式适合桌面端桌面端保留 strict路由器或资源有限设备按需关闭进程识别异常或产生额外资源开销
tcp-concurrent开启后会使用 DNS 解析出的多个 IP 并发连接,采用先成功的连接先不写明确需要并发连接并完成对比测试时再开启连接数与资源消耗增加,收益并不保证
mixed-port提供 HTTP 与 SOCKS 混合代理入口使用客户端设置页显示的端口端口被占用或系统代理指向错误时修改系统代理连接失败或启动时报端口占用

端口不是固定写死的内核结论。若启动失败,Windows 可执行 netstat -ano | findstr :7890,Linux 可执行 sudo ss -lntp | grep 7890,macOS 可执行 lsof -nP -iTCP:7890 -sTCP:LISTEN;把命令中的端口替换为设置页实际端口。

DNS:redir-host 先跑通,fake-ip 只在兼容性确认后使用

redir-host是兼容性优先的起点,适合刚导入订阅、办公软件较多或需要先缩小排查范围的场景。fake-ip适合已经确认 TUN、DNS 劫持和应用兼容性正常,并且希望更稳定结合域名规则处理的场景。官方文档将两者列为 enhanced-mode 的可选值,默认行为为 redir-host,详见 DNS configuration。

模式优先适用常见问题处理方法
redir-host新手、办公、兼容性优先规则未命中、解析服务器不可用看 DNS 日志、代理组命中情况和系统代理
fake-ipTUN、域名规则较多局域网域名、企业软件或部分应用异常先切回 redir-host 对比,再在原 DNS 块增加过滤项

切换时不要在 YAML 中新增第二个顶层 dns:,只修改已有块中的字段:

dns:
  enhanced-mode: fake-ip
  fake-ip-filter-mode: blacklist
  fake-ip-filter:
    - '*.lan'
    - '*.local'
    - '+.localhost'

如果使用 nameserver-policy 区分域名解析路径,应同时确认规则集或域名通配符确实覆盖目标域名;如果希望 DNS 请求遵循规则,官方文档提示 respect-rules需要配合 proxy-server-nameserver,否则可能出现代理节点域名解析的先后依赖问题。

代理组与分流:手动、测速、故障转移各司其职

select适合手动固定节点,url-test适合根据测试地址选择延迟较低的节点,fallback适合按顺序在可用节点之间切换。测速只反映测试地址、当前网络和当时状态,不等于所有网站的实际速度。

  • 手动选择:保留 PROXY,用于固定地区或对比不同线路。
  • 自动测速:保留 AUTO,用于快速比较可用性和测试地址延迟。
  • 故障转移:需要优先使用固定节点、失败后再切换时,再增加 fallback 组;字段说明见 代理组文档。
  • 直连对照:DIRECT用于局域网、明确直连的域名或判断故障是否来自代理链路。

分流规则从上到下匹配,最后使用 MATCH 兜底。示例中的 GEOIP,CN,DIRECT表示把命中中国 IP 的流量交给直连,但它依赖可用的 GeoIP 数据。首次加载或更新规则、GeoIP 数据时,远程下载可能因网络、证书、权限或路径失败;因此要在提供者状态中确认资源已成功加载。规则类型与 GEOIP、RULE-SET、MATCH的用法见 Mihomo Route Rules 文档。

远程规则集应先声明,再在 rules中引用,名称必须完全一致:

rule-providers:
  office:
    type: http
    url: "规则文件地址"
    path: ./rule-providers/office.yaml
    interval: 86400
    proxy: DIRECT
    behavior: domain
    format: yaml

rules:
  - RULE-SET,office,DIRECT
  - GEOIP,CN,DIRECT,no-resolve
  - MATCH,FINAL

rule-providers的下载代理、格式、行为和本地路径要求,参见 Mihomo Rule-Providers 文档。首次排错时建议先删除远程规则集,确认基础连接正常后再逐个恢复。

TUN 与平台权限:先用系统代理,再按需开启

TUN不是系统代理的同义词。系统代理主要影响遵守 HTTP、HTTPS 或 SOCKS 设置的应用;TUN通过虚拟网卡和路由接管更多流量,因此更依赖平台权限、路由和 DNS 设置。官方 TUN 文档将 auto-redirect限定为 Linux,并要求同时启用 auto-route;不要把它当成 Windows、macOS 或 Android 的通用开关,详见 Mihomo TUN 文档。

tun:
  enable: true
  stack: system
  auto-route: true
  auto-detect-interface: true
  dns-hijack:
    - any:53
    - tcp://any:53
平台建议权限与限制故障表现及处理
Windows先系统代理,后 TUN按客户端要求启用服务模式或管理员权限,并放行核心程序strict-route可能阻止 DNS 泄漏,但可能影响 VirtualBox 等应用;异常时先关闭它对比
macOS确认系统代理后再启用 TUN按系统提示在隐私与安全性中放行应用;TUN 设备名需符合 macOS 要求检查应用隔离、网络防火墙和 TUN 设备状态
Android优先使用客户端的 VPN/TUN 开关确认 VPN 权限;Private DNS 开启时,DNS 可能无法被自动劫持检查 Private DNS、应用分流和电池限制
Linux/路由器使用专用用户和独立配置目录运行用户需能读取配置并写入缓存;auto-redirect仅适用于 Linux检查 TUN 接口、路由表、iptables/nftables、目录权限
iOS使用支持相应协议与订阅格式的 iOS 客户端不能把桌面端完整 TUN YAML 直接套用按 iOS 客户端的字段和权限重新配置

strict-route: true不是所有设备都应默认开启。官方文档说明它会强化路由并在 Windows 上增加阻止 DNS 泄漏的防护,但也可能使某些应用异常;如果 TUN 后局域网、虚拟机或企业软件无法访问,先关闭 strict-route并对比日志,再判断是否需要恢复。

导入后六步验证:语法、订阅、连接、DNS、规则、应用

  1. 语法:重新加载配置,检查重复顶层键、缩进、组名、提供者路径和引用名称。
  2. 订阅:确认返回内容是兼容格式,提供者不是空列表,下载状态没有超时或解析错误。若节点为空,先删除筛选条件,再检查订阅类型和 URL。
  3. 连接:在 PROXY 中手动选择节点,访问 HTTPS 网站并查看连接日志。
  4. DNS:查看 DNS 请求是否由 mihomo 接收,确认系统、浏览器或应用没有使用另一条 DNS 路径;开启 TUN 后再检查 Private DNS、局域网 DNS 和路由器转发。
  5. 规则:在连接日志中确认命中的规则和策略组,检查 GEOIP,CN、远程 RULE-SET 与最后的 MATCH是否按顺序生效。
  6. 应用:分别测试浏览器、命令行、办公软件和需要 UDP 的应用。浏览器正常而单个软件失败时,先确认该软件是否遵循系统代理,再对比 TUN 开关前后的结果。

验证是否走代理,应优先看连接日志中实际命中的策略,或对比开启与关闭代理时的出口 IP;不要只用延迟数字判断。远程规则或 GeoIP 首次下载失败时,先暂时移除远程提供者,保留最小规则验证基础连接,再恢复下载配置。

安全与长期维护:订阅更新不要覆盖你的手改项

不需要局域网共享时,保持 allow-lan: false,将 external-controller绑定在 127.0.0.1,并设置非空且不重复使用的 secret。不要把控制器监听到 0.0.0.0后直接暴露到公网,也不要公开包含订阅地址、节点信息或 API 密钥的完整配置。

长期维护可分成三层:基础配置由客户端或内核读取;订阅节点由 proxy-providers管理;远程规则由 rule-providers管理;本地只保留少量覆写。每次更新前保留上一份可用配置,更新后重新执行六步验证。若客户端支持覆写或扩展配置,应把长期修改放在那里,而不是直接编辑可能被订阅更新覆盖的文件。

需要排查具体设备的系统代理、端口或连接日志时,可继续阅读本站的连接问题排查、设备配置指南和使用指南。

常见问题

Mihomo 推荐配置是不是越完整越好?

不是。先用最小配置确认订阅、代理组、DNS 和规则正常,再按设备需求增加 fake-ip、TUN、IPv6 或远程规则集。配置越复杂,出现问题时需要排查的变量越多。

为什么导入后 PROXY 或 AUTO 组为空?

先检查订阅是否返回 mihomo 或 Clash 兼容格式、proxy-provider 是否下载成功,以及是否误写了 filter 或 exclude-filter。不要把尖括号文字当成正则;先删除筛选项,确认节点出现后再使用真实表达式。

Mihomo 应该用 fake-ip 还是 redir-host?

兼容性优先时先用 redir-host;已经确认 TUN、DNS 劫持和应用兼容性正常,并且需要更稳定结合域名规则处理时,再尝试 fake-ip。出现局域网或企业软件异常时,先切回 redir-host 对比。

为什么配置里的 DoH 地址启动后仍然解析失败?

DoH 域名本身需要先解析。应保留 IP 形式的 default-nameserver,并检查网络是否允许访问配置的 DNS 服务;同时查看 DNS 日志和 proxy-server-nameserver 是否可用。

开启 TUN 后无法访问局域网怎么办?

先关闭 TUN确认节点和系统代理本身正常,再检查 strict-route、DNS 劫持、局域网域名和平台路由。strict-route 可能影响部分虚拟机或局域网应用,异常时可暂时关闭进行对比。

订阅更新后手动修改的配置不见了怎么办?

不要继续直接修改自动生成的订阅文件。把长期修改迁移到客户端支持的覆写或扩展配置中,用 proxy-providers 管理节点、rule-providers 管理远程规则,并保留更新前的可用配置。

相关阅读

参考资料

  1. General configuration - mihomo docs
  2. DNS configuration - mihomo docs
  3. Proxy Providers - mihomo docs
  4. proxy-groups configuration - mihomo docs
  5. Route Rules - mihomo docs
  6. Rule-Providers - mihomo docs
  7. Tun - mihomo docs