代理客户端资料

Clash 配置文档:读懂端口、代理组、规则和 DNS

Clash 配置中的端口负责接入,运行模式决定处理方式,代理与代理组组织出口,规则决定请求去向,DNS 集中管理解析设置。阅读时可沿这条关系核对字段,分清示例端口和客户端默认值,并留意规则顺序、集合引用与健康检查的覆盖范围。

资料整理
本文章节

端口:区分接入位置与客户端默认值

入口端口要结合协议看。程序使用 HTTP 代理还是 SOCKS 代理,决定它应连接哪类入口;mixed-port 可以在同一端口接收 HTTP(S) 和 SOCKS5 连接。

局部示例:

mixed-port: 7892

截至 2026-11-08,mihomo 端口文档给出的示例对应关系如下。数字用于说明字段,不能据此认定客户端采用相同的默认值。

字段接收的连接或适用范围文档示例值
portHTTP(S) 代理7890
socks-portSOCKS4、SOCKS4a、SOCKS5 代理7891
mixed-portHTTP(S) 与 SOCKS5 共用入口7892
redir-port透明代理,仅处理 TCP,适用于 Linux、Android、macOS7893
tproxy-port透明代理,可处理 TCP、UDP,适用于 Linux、Android7894

两个来源需要分开理解: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-CIDRIP 网段;IP-CIDR6 为同义别名
GEOIPIP 分类
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 客户端与内核对照。

第三方整理,与项目方无关。