mihomo 的配置文件是 YAML 格式,通常命名为 config.yaml。它主要由四部分组成:基础设置、节点(proxies)、代理组(proxy-groups)和分流规则(rules)。
YAML 的两条规矩:缩进只能用空格,不能用 Tab;冒号后面要跟一个空格。大部分"配置文件格式错误"都出在这两点上。
01
基础设置
决定客户端在哪个端口提供代理、按什么模式工作,以及 DNS 怎么解析。
mixed-port: 7890 allow-lan: false mode: rule log-level: info dns: enable: true enhanced-mode: fake-ip
- mixed-port:同一个端口同时提供 HTTP 和 SOCKS 代理。
- mode:rule(按规则分流)、global(全部走代理)、direct(全部直连),日常一般用 rule。
- dns.enhanced-mode:fake-ip 或 redir-host,mihomo 不写时默认 redir-host。fake-ip 先给应用返回一个假地址,真正连接时再按域名分流;个别需要真实 IP 的应用不正常时,把它的域名加进 fake-ip-filter。
02
节点 proxies
每个节点是一个代理服务器。不同协议需要的字段不同,但都有名称、类型、服务器地址和端口。
proxies:
- name: 示例节点
type: ss
server: example.com
port: 8388
cipher: aes-128-gcm
password: "[你的密码]"- name 在整个配置里不能重复,代理组靠它引用节点。
- type 决定协议,例如 ss、vmess、vless、trojan、hysteria2。
- 各协议的完整字段见"协议与配置示例"页。
03
代理组 proxy-groups
把节点组织成策略组,规则里引用的是代理组,而不是单个节点。
proxy-groups:
- name: 默认
type: select
proxies: [自动选择, DIRECT]
- name: 自动选择
type: url-test
proxies: [示例节点]
url: https://www.gstatic.com/generate_204
interval: 300- select:手动选择节点。
- url-test:定时测速,自动选延迟最低的节点;fallback:按顺序使用第一个可用的节点;load-balance:在多个节点间分配连接。
- proxies 里引用的名字必须存在,否则启动会报错。
04
分流规则 rules
从上到下逐条匹配,命中第一条就停止,把流量交给对应的代理组或直连。
rules: - DOMAIN-SUFFIX,example.com,默认 - GEOSITE,cn,DIRECT - GEOIP,CN,DIRECT - MATCH,默认
- 常用类型:DOMAIN、DOMAIN-SUFFIX、DOMAIN-KEYWORD、GEOSITE、GEOIP、IP-CIDR、PROCESS-NAME。
- 规则很多时,可以用 rule-providers 引用外部规则集,再用 RULE-SET 调用。
- 最后一条通常是 MATCH,用来处理前面都没匹配上的流量。
订阅和配置文件是什么关系
服务商提供的订阅链接,返回的通常就是一份完整的配置文件。客户端每次更新订阅,都会用新下载的内容替换旧配置。
所以直接改订阅生成的配置,下次更新时改动会被覆盖。想长期保留自己的规则,应该用客户端提供的覆写或合并功能。各客户端的覆写方法 →
完整示例
在配置检查器中打开mixed-port: 7890
mode: rule
log-level: info
dns:
enable: true
enhanced-mode: fake-ip
proxies:
- name: 示例节点
type: ss
server: example.com
port: 8388
cipher: aes-128-gcm
password: "[你的密码]"
proxy-groups:
- name: 默认
type: select
proxies: [示例节点, DIRECT]
rules:
- GEOIP,CN,DIRECT
- MATCH,默认字段说明依据 mihomo 官方文档整理 · 有错误?提交反馈