先看懂客户端的四层结构
常见 Clash 图形客户端虽然名称和布局不同,但核心信息大致分成四层:配置决定有哪些代理节点和规则,代理页决定策略组当前选用哪个出口,连接页展示正在经过内核的会话,日志页记录内核如何处理这些会话。系统代理、TUN 模式和端口设置则位于更底层,负责把设备流量送入 Clash 或 mihomo 内核。
以采用 mihomo 内核的桌面客户端为例,左侧通常能看到“概览”“代理”“配置”“连接”“日志”和“设置”。有些客户端把配置称为“订阅”,把代理称为“策略”,也有客户端把内核设置放进单独的“服务”页面。名称可以变化,数据流向基本不变。
| 界面区块 | 主要用途 | 新用户最常执行的操作 |
|---|---|---|
| 概览页 | 查看运行状态、实时速度、累计流量与当前模式 | 确认内核已启动,观察是否产生上下行流量 |
| 代理页 | 展示策略组、节点、延迟与当前选择 | 在“节点选择”组中切换出口并测试延迟 |
| 配置页 | 管理订阅配置、本地 YAML 文件与更新时间 | 导入订阅、更新配置、设为当前配置 |
| 连接页 | 展示活动连接、目标地址、命中规则和链路 | 确认某个程序是否经过代理 |
| 日志页 | 记录 DNS、规则匹配、连接建立和错误信息 | 按 Warning 或 Error 筛选异常 |
| 设置页 | 管理系统代理、TUN、端口、启动项和内核参数 | 开启系统代理,核对混合端口 |
概览页适合判断“有没有流量进入”
概览页通常显示内核状态、上传速度、下载速度、活动连接数和内存占用。开启系统代理后访问一个新网页,如果连接数从 0 增长到 6,下载速度短暂出现 320 KB/s,说明至少有流量进入内核。这个现象只能证明应用与 Clash 之间建立了连接,不能单独证明远端代理节点可用。
如果概览页始终保持 0 B/s,应先检查系统代理开关和监听端口,而不是频繁切换节点。若概览页已有流量但网页仍打不开,再去代理页、连接页和日志页查找节点超时、DNS 失败或规则误命中。
代理页:策略组和节点不是同一层
代理页最容易产生误解。页面上较大的卡片通常是策略组,策略组展开后列出的才是节点或另一个策略组。配置文件通过 proxy-groups 定义这些关系。规则通常指向策略组名称,而不是直接写死某一个节点。
例如,一条规则把流量交给“节点选择”,该策略组当前选中“自动选择”,而“自动选择”又通过延迟测试选中“东京 02”。实际链路会表现为“节点选择 → 自动选择 → 东京 02”。在连接详情里看到多层链路属于正常情况。
常见策略组类型
- 手动选择:对应
select,由用户指定节点或下级策略组。选择会持续到配置重载、选项失效或客户端重置状态。 - 自动测速:对应
url-test,按测试地址和间隔测量节点,通常选取延迟较低且测试成功的结果。 - 故障转移:对应
fallback,优先使用列表中靠前且健康检查通过的节点。 - 负载均衡:对应
load-balance,按配置策略在多个可用节点之间分配连接。 - 直连与拒绝:
DIRECT表示直接连接目标,REJECT表示阻止匹配流量。
延迟数值应该怎样读
节点右侧的 38 ms、126 ms 或 Timeout,通常来自一次 HTTP 健康检查。它不是完整网页的加载时间,也不等同于 ICMP Ping。测试过程还可能包含 DNS、TCP、TLS 和 HTTP 响应时间,具体取决于配置中的测试 URL 与客户端实现。
| 测试结果 | 通常表示 | 下一步 |
|---|---|---|
| 35–90 ms | 测试地址响应较快 | 可进一步打开网页验证实际访问 |
| 100–250 ms | 可以建立连接,但响应距离或负载较高 | 与同地区其他节点比较稳定性 |
| 500 ms 以上 | 链路拥塞、节点负载较高或测试地址响应慢 | 重复测试两到三次,观察波动 |
| Timeout | 在设定超时时间内没有获得预期响应 | 查看日志中的 DNS、握手或连接错误 |
切换节点的稳妥顺序
- 在代理页找到规则实际引用的主策略组,例如“节点选择”或“代理”。
- 先执行一次延迟测试,排除显示 Timeout 的节点。
- 选择延迟稳定的节点,不要只比较一次测试中的最小数字。
- 新开一个浏览器标签页,避免旧连接继续复用原链路。
- 进入连接页,检查新连接的策略链是否包含刚选择的节点。
配置页:订阅、本地文件和当前配置
配置页管理的是内核输入。一个完整配置通常包含端口、DNS、代理节点、策略组和规则。订阅链接是配置来源之一,本地 YAML 文件是另一种来源。把订阅添加到客户端,只代表配置条目已经保存;只有将它设为当前配置并成功载入,代理页才会出现对应策略组。
配置卡片上的信息分别代表什么
- 配置名称:便于识别来源,可以是客户端生成的名称,也可以手动修改。
- 更新时间:最近一次成功获取或保存配置的时间,不代表所有节点当时都可用。
- 更新间隔:客户端计划重新拉取订阅的周期,常见设置为 6、12 或 24 小时。
- 当前标记:表示内核正在使用这份配置。仅选中卡片但没有载入时,状态可能不会改变。
- 流量信息:部分订阅响应头会提供已用流量、总量和到期时间;未提供时客户端无法显示。
常见操作路径是“配置”→“新建”→“从 URL 导入”,粘贴订阅地址后保存;随后在配置卡片菜单中选择“设为当前”或“启用”。不同客户端也可能把入口写成“订阅”→“添加订阅”。更新时应使用卡片上的更新按钮,而不是反复删除后重新导入。
本地 YAML 配置适合精确控制
本地文件允许直接查看和修改字段。YAML 使用空格表达层级,Tab 缩进或层级错位都可能导致载入失败。下面是一段用于说明界面关系的简化结构,其中端口、策略组和规则会分别映射到设置页、代理页及连接详情:
mixed-port: 7890
mode: rule
log-level: info
proxies:
- name: example-node
type: socks5
server: 127.0.0.1
port: 1080
proxy-groups:
- name: 节点选择
type: select
proxies:
- example-node
- DIRECT
rules:
- DOMAIN-SUFFIX,example.com,节点选择
- MATCH,DIRECT
mixed-port: 7890 表示 HTTP 和 SOCKS 入站可共用 7890 端口。mode: rule 表示按规则处理连接。最后的 MATCH,DIRECT 是兜底规则:前面的规则都未命中时直接连接。实际订阅配置通常还会包含 DNS、规则集合、provider 和更多策略组。
更新配置后为什么选择会变化
订阅更新可能新增、删除或重命名节点。若策略组此前选中的节点不再存在,内核会回到组内可用选项,具体结果取决于客户端状态持久化和策略组类型。代理页突然从“东京 02”变为“自动选择”,不一定是开关失效,也可能是新配置没有同名节点。
更新后可按三个位置核对:配置页确认更新时间已经变化,代理页确认策略组内容已经刷新,日志页确认配置重载没有报错。只看到“下载成功”还不够,因为下载完成与内核载入成功是两个阶段。
连接页:确认某个程序到底走了哪里
连接页是验证分流结果最直接的位置。每条记录通常包括来源地址、目标域名或 IP、网络类型、上传下载量、命中规则、策略链和建立时间。浏览器打开一个页面时可能同时创建十几条连接,因此应配合域名筛选,而不是只看列表顶部。
重点查看四个字段
- Host 或目标地址:确认记录属于正在测试的网站。若只显示 IP,DNS 解析方式或应用协议可能没有提供域名。
- Rule:显示命中的规则,例如
DomainSuffix、GeoIP、RuleSet或最终兜底规则。 - Chains:展示策略组到最终节点的选择链,例如“节点选择 → 香港 01”。
- Process:在系统和权限允许时显示进程名。TUN 模式下能否识别进程取决于平台与客户端实现。
假设访问 example.com 后,连接详情显示规则为 DomainSuffix,策略链为“节点选择 → 新加坡 03”,则可以确认这条新连接按域名规则进入了指定策略组,并最终使用新加坡 03。若策略链显示 DIRECT,应检查规则顺序、运行模式和配置是否已经切换。
旧连接可能继续使用旧节点
切换策略组不会强制迁移已经建立的 TCP 连接。浏览器还可能复用 HTTP/2 或 HTTP/3 会话,因此切换节点后立即刷新页面,连接页仍可能短暂显示旧链路。可以关闭对应连接、新开隐私窗口,或等待旧会话结束后再测试。直接使用“关闭全部连接”会中断正在进行的下载和其他网络任务,应谨慎操作。
日志页:从级别和关键词定位错误
日志页记录内核运行过程。正常访问时会看到连接、规则命中和出站信息;配置或网络异常时可能出现解析失败、连接被拒绝、超时、TLS 握手失败等记录。日志量较大时,先按级别筛选,再按域名、端口或策略组名称搜索,效率高于逐行滚动。
| 日志级别 | 用途 | 适合场景 |
|---|---|---|
| Debug | 输出更细的内部处理过程 | 短时间复现复杂问题,完成后恢复 Info |
| Info | 记录常规连接和运行状态 | 日常使用与基础排查 |
| Warning | 记录可恢复但值得注意的异常 | 筛选 DNS、规则资源或连接波动 |
| Error | 记录导致操作失败的错误 | 排查配置无法载入、端口绑定失败等问题 |
| Silent | 尽量减少日志输出 | 稳定运行且暂时不需要诊断时 |
三个常见错误方向
- connection refused:目标端口明确拒绝连接。可能是节点服务未监听、地址写错,或本机要连接的控制端口没有启动。
- i/o timeout:在限定时间内没有完成读写。需要继续区分 DNS、TCP 建连、TLS 握手或远端响应阶段。
- address already in use:监听端口已被其他进程占用。若混合端口设为 7890,应检查是否已有另一个代理客户端占用 7890。
排查时可先清空当前日志,打开 Info 级别,然后只复现一次问题。例如清空后访问一个目标域名,等待 5 秒,再暂停滚动并搜索该域名。这样能避免旧记录和后台应用连接干扰判断。如果 Info 信息不足,再临时切换 Debug;持续开启 Debug 会显著增加日志数量。
设置页:系统代理、TUN 和端口各管一层
设置页决定流量怎样进入内核。系统代理会修改操作系统的 HTTP、HTTPS 或 SOCKS 代理设置,适用于遵循系统代理的浏览器和桌面应用。TUN 模式创建虚拟网络接口,覆盖范围更广,可接管不读取系统代理设置的应用,但需要相应系统权限和正确的路由、DNS 配置。
端口字段不要混用
- Mixed Port:混合代理端口,常见值为
7890,可接收 HTTP 与 SOCKS 连接。 - HTTP Port:仅用于 HTTP 代理。有些配置使用
7890。 - SOCKS Port:仅用于 SOCKS5 代理,传统配置中常见
7891。 - External Controller:供图形界面或 Dashboard 控制内核,常见地址形式为
127.0.0.1:9090。它不是浏览器代理端口。
如果客户端采用混合端口 7890,终端程序的 HTTP 代理通常应指向 http://127.0.0.1:7890,而不是控制端口 9090。具体值应以当前配置和设置页为准。修改端口后,系统代理地址、浏览器手动代理和终端环境变量也要同步更新。
系统代理与 TUN 的选择
第一次使用时,建议先启用系统代理验证基本链路。此时浏览器产生流量、代理页节点可用、连接页能看到规则命中,说明配置和出口基本正常。若某个应用不遵循系统代理,再考虑开启 TUN。这样可以把“节点不可用”和“TUN 路由异常”分开处理。
部分桌面客户端需要先安装服务模式,才能以较稳定的权限启用 TUN。常见路径是“设置”→“服务模式”→“安装”,再返回“设置”→“TUN 模式”开启。实际路径取决于客户端版本。开启后应检查是否出现新的虚拟网卡、DNS 是否可解析,以及局域网和本地开发服务是否仍按预期访问。
十分钟完成一次界面核对
初次导入配置后,可以按固定顺序完成检查。这个顺序从配置源开始,经过节点选择和流量入口,最后用连接与日志验证结果,能减少在多个页面之间反复切换。
- 第 1 分钟:打开配置页,确认订阅或本地文件存在,并标记为当前配置。
- 第 2 分钟:执行一次更新,确认更新时间变化,且没有配置解析提示。
- 第 3 至 4 分钟:进入代理页,对主策略组执行延迟测试,选择一个连续两次响应稳定的节点。
- 第 5 分钟:进入设置页,确认内核运行,混合端口与系统代理地址一致。
- 第 6 分钟:开启系统代理,新开浏览器窗口访问测试页面。
- 第 7 至 8 分钟:进入连接页,按目标域名筛选,查看命中规则和最终节点。
- 第 9 分钟:回到概览页,确认连接数及上下行流量发生变化。
- 第 10 分钟:进入日志页筛选 Warning 与 Error,确认没有持续出现的端口、DNS 或超时错误。
出现问题时按现象回到对应页面
| 现象 | 先检查 | 重点字段 |
|---|---|---|
| 代理页没有任何节点 | 配置页 | 当前配置、载入状态、更新时间 |
| 所有节点都显示 Timeout | 日志页 | DNS、连接超时、测试 URL |
| 浏览器访问后连接数仍为 0 | 设置页 | 系统代理、监听地址、混合端口 |
| 连接存在但走了 DIRECT | 连接页与配置页 | 命中规则、运行模式、规则顺序 |
| 切换节点后仍显示旧出口 | 连接页 | 旧连接、策略链、新建时间 |
| TUN 开启后无法解析域名 | 日志页与设置页 | DNS 模式、虚拟网卡、路由状态 |
理解界面后,排查思路可以压缩成一条链:配置页确认“加载了什么”,代理页确认“选择了什么”,设置页确认“流量怎样进入”,连接页确认“实际走了什么”,日志页解释“为什么成功或失败”。这五个问题对应五个页面,也覆盖了大多数首次连接故障。