端口:区分接入位置与客户端默认值
入口端口要结合协议看。程序使用 HTTP 代理还是 SOCKS 代理,决定它应连接哪类入口;mixed-port 可以在同一端口接收 HTTP(S) 和 SOCKS5 连接。
局部示例:
mixed-port: 7892
截至 2026-11-08,mihomo 端口文档给出的示例对应关系如下。数字用于说明字段,不能据此认定客户端采用相同的默认值。
| 字段 | 接收的连接或适用范围 | 文档示例值 |
|---|---|---|
port | HTTP(S) 代理 | 7890 |
socks-port | SOCKS4、SOCKS4a、SOCKS5 代理 | 7891 |
mixed-port | HTTP(S) 与 SOCKS5 共用入口 | 7892 |
redir-port | 透明代理,仅处理 TCP,适用于 Linux、Android、macOS | 7893 |
tproxy-port | 透明代理,可处理 TCP、UDP,适用于 Linux、Android | 7894 |
两个来源需要分开理解:mihomo 端口说明列的是字段示例;截至 2026-11-08,Clash Verge Rev 的客户端 FAQ则将默认代理端口写为 7897。填写代理端口时,应核对正在使用的客户端实际显示的设置。
若要让其他设备通过本机入口连接,还要连着读 allow-lan、bind-address 及访问范围设置:
allow-lan控制是否开放给其他设备使用。bind-address决定绑定地址,"*"表示所有 IP。lan-allowed-ips与lan-disallowed-ips分别列出允许和禁止的 IP 范围;两者冲突时,禁止项优先。authentication为 HTTP(S)、SOCKS、混合代理入口配置用户名与密码;skip-auth-prefixes指定免验证的 IP 段。
external-controller 属于外部控制 API,secret 是其访问密钥。阅读配置时,要把控制 API 与代理入口分开核对,不能只看到端口数字就判断用途。
运行模式:先确认规则是否参与
局部示例:
mode: rule
截至 2026-11-08,mihomo 通用设置文档列出的默认运行方式是 rule。三个取值对应不同的处理路径:
mode 的值 | 处理方式 |
|---|---|
rule | 通过路由规则决定去向 |
global | 使用全局代理,并在 GLOBAL 策略组中选择出口 |
direct | 所有请求直连 |
配置里存在 rules,并不代表当前请求必然交给它处理。应先确认 mode,再追踪规则的条件和目标。
同一部分还可能出现日志与进程相关设置。log-level 可取 silent、error、warning、info、debug,日志在控制台和控制页面输出。find-process-mode 的取值为 always、strict、off。
截至 2026-11-08,文档将 strict 列为进程匹配的默认值,并建议路由器使用 off;ipv6 的默认值为 true,用于控制内核是否接收 IPv6 流量。这些开关各有职责,不能用它们代替运行模式判断。
代理:看清顶层列表与条目字段
proxies 是出站代理数组。下面的空列表仅展示这一段的位置,不包含可用出口:
proxies: []
真实的代理条目需要 name、type、server、port,其中 name 不能重名。读到一个条目时,可以先辨认名称和协议类型,再看其余参数。
这里也会出现 port,但位置与用途不同:顶层的 port 是 HTTP(S) 代理入口;代理条目中的 port 属于该出站代理。判断字段含义时,要同时看它归在哪一段。
截至 2026-11-08,mihomo 出站代理文档说明,通用字段 udp 的默认值为 false,TUIC 等基于 UDP 的协议默认开启。阅读 UDP 请求的处理路径时,还要检查出口是否支持 UDP。
出站代理另有 ip-version、interface-name、routing-mark、tfo、mptcp、dialer-proxy、smux 等通用字段。它们与名称、协议、地址和端口承担不同职责,不能仅凭条目名称判断连接行为。
代理组:把引用关系与选择方式连起来
proxy-groups 定义策略组。每组都需要 name 和 type。以下只展示一个组的名称与手动选择类型,未列出可选出口:
proxy-groups:
- name: 手动选择
type: select
组里的 proxies 用名称引用出站代理或其他策略组;use 则引用代理集合。看到组名后,应继续追踪它引用了谁,而不是停留在名称本身。
type | 出口如何选择 |
|---|---|
select | 由使用者选择 |
url-test | 测试后自动选择;tolerance 表示容差,单位为毫秒 |
fallback | 当前出口超时后,依列表顺序寻找可用出口 |
load-balance | 根据 strategy 分配,例如 consistent-hashing |
健康检查还要看范围。url 与 interval 配合使用,间隔单位是秒;只有 interval 不为 0,才启用定时测试。策略组的这项检查覆盖 proxies 中的代理,不涵盖通过 use 引用的代理集合。
因此,组内出现检查地址,不等于该组引用的全部出口都受同一项检查管理。遇到 use,还需查看对应的 proxy-providers,了解集合自己的检查、过滤和覆写设置。
filter、exclude-filter 用词语或正则表达式筛选,expected-status 指定检查期望收到的 HTTP 状态码;hidden 与 icon 供前端使用。截至 2026-11-08,策略组内的 interface-name、routing-mark 已在文档中标为弃用。字段位置可对照 mihomo 策略组说明。
规则:顺着列表查条件与去向
rules 从上向下匹配,排在前面的条目先判断。下面展示空规则列表的结构,不包含分流条件:
rules: []
阅读已有条目时,要同时辨认匹配条件与处理目标。常见类型可以这样区分:
| 类型 | 匹配对象或作用 |
|---|---|
DOMAIN | 完整域名 |
DOMAIN-SUFFIX | 域名后缀 |
DOMAIN-KEYWORD | 域名中的词语 |
DOMAIN-REGEX | 用正则表达式匹配域名 |
GEOSITE | 域名分类 |
IP-CIDR | IP 网段;IP-CIDR6 为同义别名 |
GEOIP | IP 分类 |
DST-PORT | 目标端口 |
PROCESS-NAME | 进程名称 |
NETWORK | 网络类型 |
RULE-SET | 引用规则集合 |
AND、OR、NOT | 组合判断条件 |
SUB-RULE | 引用子规则 |
MATCH | 承担兜底匹配 |
找到 MATCH 后,要检查它在列表中的位置及其目标。它负责兜底,但规则仍按排列次序判断,不能只检查是否写了这一项。
UDP 请求还存在继续匹配的情况:若命中的代理不支持 UDP,请求会向下寻找其他规则。因此,条件吻合并不足以单独证明最终去向。
遇到 RULE-SET,应继续找 rule-providers。规则集合可通过 HTTP、本地文件或内联内容载入,集合定义与引用处需要一起阅读。
DOMAIN-WILDCARD 支持 * 和 ?,其通配方式与配置其他位置的 Clash 格式通配符存在区别。写法需对照 mihomo 路由规则说明,不能直接从别处搬用。
DNS:确认解析设置集中在哪一段
DNS 设置归在 dns 下。下面仅展示空映射,未设置解析行为:
dns: {}
这一段涉及是否启用 DNS、解析模式、上游服务器、解析分流以及 fallback 过滤。解析模式包括 fake-ip 和 redir-host。
阅读 DNS 时,可以先辨认启用状态和解析模式,再查看上游与分流设置。路由部分的 rules 用于判断请求交给哪个出口;DNS 段集中处理解析相关设置。两部分要分别看清,再放回整份配置理解。
字段分类可从 mihomo 配置文档目录继续查阅。回看整份配置时,按入口端口、mode、代理与代理组、规则顺序、DNS 设置逐段核对,便能追踪各部分如何关联。
若字段关系已经清楚,仍遇到导入或连接问题,可转到Clash 导入与连接问题排查。不同客户端的定位可参考Clash 客户端与内核对照。
第三方整理,与项目方无关。