从零到精通 · 系统查阅手册

Clash 使用手册:订阅、分流与 TUN 配置

沿着核心概念、客户端选择、安装、订阅、代理模式、规则分流、TUN、维护与进阶配置逐章学习,建立一套可以迁移到不同 Clash 客户端的操作方法。

阅读说明

快速教程与系统手册的分工

快速上手教程面向第一次使用 Clash 的读者,保留导入订阅、选择模式、开启系统代理和验证连接这条最短主线。本页则用于系统查阅:不仅说明按钮在哪里,还解释设置为何这样选、不同平台为什么出现差异,以及配置失效时应当沿哪条路径排查。

建议首次使用者先完成快速教程,再按目录阅读本手册。已经可以正常连接的读者,可以直接跳到规则分流、TUN 或日常维护章节。需要安装包时前往下载页,页面列出的客户端与本文使用的名称保持一致。

核心概念:先分清内核、客户端与配置文件

Clash 不是单一安装包

日常说到“Clash”,可能指代理内核、图形客户端,也可能泛指采用 Clash 配置格式的一整套工具。内核负责读取配置、建立代理连接、匹配规则和转发流量;图形客户端负责把配置、日志、策略组、系统代理和更新操作整理成可点击的界面。mihomo 是当前 Clash 生态中常见的延续内核,许多新客户端使用它提供协议、规则类型、TUN 与 DNS 能力。理解这层关系很重要:同一份订阅在不同客户端中的按钮位置可以不同,但内核实际处理的代理节点、策略组和规则逻辑往往相近。

配置文件通常采用 YAML。它可以包含端口、代理节点、策略组、规则、DNS 和 TUN 设置。订阅则是一种远程配置来源:客户端保存订阅链接,按需下载服务提供方生成的配置,再交给内核加载。订阅链接本身不是“连接按钮”,节点名称也不等同于最终出口;请求先经过规则匹配,再由规则指定的策略组选择具体节点或直连。因此排错时必须区分三个环节:远程订阅能否下载、配置能否被内核解析、流量能否按规则送到可用策略。

一次请求如何经过 Clash

以浏览器访问网页为例,浏览器先把请求交给系统网络栈。如果系统代理已经开启,支持系统代理的应用会把 HTTP 或 SOCKS 请求送往客户端监听端口;如果启用了 TUN,更多 IP 流量会先进入虚拟网络接口。内核取得目标域名或目标地址后,从规则列表顶部开始匹配,命中后把请求交给指定策略。策略可以是某个具体节点,也可以是手动选择、自动测速、故障转移、直连或拒绝。最后,节点按对应协议与远端服务器建立连接,返回的数据再沿原路交给应用。

这条链路解释了常见现象:浏览器正常而某个游戏不通,通常说明该应用没有使用系统代理,可能需要 TUN;所有网站都打不开但订阅更新成功,通常说明配置已下载,问题发生在节点、策略或本地接管环节;只有特定域名异常,则更可能是规则、DNS 或目标服务自身限制。排查不应反复删除客户端,而应先确定故障位于“订阅获取、配置解析、流量接管、规则匹配、节点连接、DNS 解析”中的哪一层。

对象 主要职责 常见问题
图形客户端 管理配置、系统代理、策略组、日志和更新 权限不足、系统代理未接管、界面设置未保存
mihomo 内核 解析配置、匹配规则、转发流量、运行 TUN 与 DNS 字段不兼容、端口占用、配置解析失败
订阅 提供远程配置、节点和策略组 链接失效、更新被拦截、生成内容发生变化
策略组 决定一类请求使用哪个节点或动作 选中不可用节点、自动组测试地址不合适
规则 根据域名、地址、进程等条件分配策略 顺序错误、规则集未更新、最终规则过早命中

选择客户端:按平台、内核与使用场景判断

优先选择仍在维护的图形客户端

选择客户端时,先看操作系统,再看维护状态、内核类型和所需功能。本站下载清单首推 Clash Plus,覆盖 Windows、macOS、Android 与 iOS,适合希望在多个平台使用相近操作逻辑的读者。Windows 与 macOS 还可选择 Clash Verge Rev、FlClash;Windows 另有 Clash Nyanpasu。Android 可选择 Clash Meta for Android、FlClash 或 Surfboard。Linux 桌面环境可使用 Clash Verge Rev 或 FlClash。Clash for Windows 与 ClashX Meta 已停止维护,只适合处理旧配置迁移,不应作为新安装时的默认选择。

“界面看起来熟悉”不是唯一标准。需要 TUN、进程规则、规则集或较新的配置字段时,应确认客户端采用的内核能够识别这些功能。采用 mihomo 内核的客户端通常更适合当前配置生态,但同为 mihomo 客户端,权限申请、配置存储位置、托盘菜单和系统代理实现仍可能不同。订阅服务生成的配置如果依赖特定字段,也应优先遵循服务说明;遇到字段不识别时,先确认内核兼容性,不要直接删改整个配置。

桌面、移动端与服务器不是同一种使用方式

桌面客户端通常同时提供系统代理和 TUN。系统代理配置简单,适合浏览器、即时通信和遵循系统代理设置的软件;TUN 覆盖面更广,适合不读取系统代理的应用。Android 客户端通常通过系统 VPN 接口接管流量,启用时会显示 VPN 状态标识;若系统同时运行其他 VPN 类应用,二者一般不能同时占用接口。iOS 版本同样依赖系统的网络扩展能力,配置入口和后台行为受系统规则影响。移动端应额外关注电池优化、后台限制和按应用代理。

服务器、软路由和容器环境更适合直接运行 mihomo 内核。这类环境没有必要为了图形界面增加桌面依赖,通常通过配置文件、命令行参数和外部控制接口管理。但内核包不等于开箱即用的桌面客户端:使用者要自行准备配置路径、运行用户、服务管理、日志轮转和防火墙规则。仅在个人电脑上浏览网页时,应优先选图形客户端;只有明确需要网关转发、旁路由或自动化部署时,再进入纯内核方案。

平台 优先选择 适合场景 额外注意
Windows Clash Plus、Clash Verge Rev 桌面日常使用、系统代理、TUN TUN 首次启用可能需要管理员权限
macOS Clash Plus、Clash Verge Rev 桌面代理、按规则分流 区分 Apple Silicon 与 Intel 架构
Android Clash Plus、Clash Meta for Android 移动网络、按应用代理 检查 VPN 权限与后台限制
iOS Clash Plus 系统网络扩展接管 通过 App Store 获取并授权配置
Linux Clash Verge Rev、FlClash 桌面环境或图形化管理 确认安装包格式与桌面环境
服务器与路由器 mihomo 内核 网关、服务化运行、自动化配置 需要自行管理服务与防火墙

确认系统架构与安装包类型

Windows 常见桌面设备使用 x64;搭载 ARM 处理器的设备才需要 ARM64。macOS 可在“关于本机”中查看芯片类型:Apple 芯片对应 arm64,Intel 处理器对应 x64。Android 安装包可能分为 arm64、arm 或通用包,近年的主流手机多使用 arm64,但旧设备和特殊模拟器需要按实际架构选择。Linux 除架构外还要区分 deb、rpm 与压缩包:Debian、Ubuntu 常用 deb,Fedora 系列常用 rpm,纯内核压缩包则需要手动部署。

完整客户端清单、平台入口和维护状态集中在下载页。如果旧客户端仍保存重要配置,迁移前先导出配置或记录订阅地址、策略选择与自定义规则,再安装新客户端。不同客户端的数据库和设置目录通常不能直接互相覆盖,稳妥做法是重新导入订阅,再逐项恢复自定义内容。

安装与初始设置:建立可恢复的基础环境

安装前先清理冲突状态

安装客户端前,先退出仍在运行的代理、VPN 和旧版 Clash 客户端,并确认系统代理没有残留。Windows 可在系统网络设置中查看手动代理是否仍然开启;macOS 可在当前网络服务的代理设置中检查 HTTP、HTTPS 与 SOCKS 项。残留代理常导致一种误判:新客户端尚未启动,浏览器却仍把请求发送到已经不存在的本地端口,于是所有网页都无法打开。此时问题不在安装包,而在旧程序退出后没有恢复系统代理。

桌面安装完成后,先启动客户端但不要立即打开所有高级功能。确认界面能够正常显示、内核可以启动、日志中没有持续重复的错误,再导入订阅。首次启动 TUN 时,Windows 可能申请管理员权限或安装虚拟网络组件;macOS 可能要求允许网络扩展或输入系统凭据。权限只需要在功能确实启用时授予。若拒绝了权限,系统代理通常仍可使用,但 TUN 无法建立虚拟接口。

先确定配置目录与自启动策略

图形客户端一般会把设置、订阅索引、内核文件和日志保存在用户目录。不要把程序目录和配置目录混为一谈:卸载应用未必会删除用户配置,覆盖安装也未必会重置设置。遇到异常时应先使用客户端提供的重置、切换配置或清理缓存功能;只有确认配置数据库损坏,才考虑备份后删除配置目录。随意清理用户目录会同时丢失订阅地址、脚本、自定义规则和策略选择。

“开机启动”和“启动时开启系统代理”是两个不同选项。前者只负责运行客户端,后者会修改操作系统的代理设置。移动办公设备可以开启客户端自启动,但建议先观察几次重启行为,再决定是否自动接管网络。若设备经常进入需要网页认证的公共网络,自动开启代理可能让认证页无法弹出;这时先暂停系统代理完成网络认证,再恢复连接。TUN 的自动启动也应在基础配置稳定后开启,避免开机阶段因权限或 DNS 设置异常影响全部网络。

端口设置要保持职责清楚

Clash 配置常见端口包括 HTTP 端口、SOCKS 端口和混合端口。混合端口可以在同一监听端口接收 HTTP 与 SOCKS 请求,适合多数个人设备。端口号只要未被其他程序占用即可,不需要为了“速度”频繁修改。允许局域网连接会让同一网络中的其他设备有机会访问监听端口,因此只在确有共享需求时开启,并配合监听地址、访问控制和系统防火墙限制来源。

mixed-port: 7890
allow-lan: false
mode: rule
log-level: info
ipv6: false

external-controller: 127.0.0.1:9090

上面的基础片段表示启用混合端口、仅允许本机访问、使用规则模式并把控制接口限制在本机。不同客户端可能由界面生成这些字段,手动编辑前应确认客户端是否会在保存时覆盖文件。控制接口用于图形界面与内核通信,不应直接暴露到不受信任的网络。日志级别日常使用选择 info 即可;debug 会产生更多诊断信息,适合短时间排错,长期启用会增加日志体积并干扰关键信息判断。

用最小闭环验证安装

基础验证按固定顺序进行:先确认内核状态为运行中;再导入一份可用配置;选择策略组中的节点;开启系统代理;最后使用浏览器访问普通网页。如果失败,先观察客户端连接记录与日志:完全没有连接记录,说明流量没有进入客户端;有记录但显示直连,说明规则命中了 DIRECT;有代理记录但握手失败,说明节点连接或网络环境存在问题。这个最小闭环完成后,再启用 TUN、DNS 劫持、脚本或复杂规则,可以显著降低排错难度。

订阅导入与更新:管理远程配置的完整周期

订阅链接、配置文件与节点链接的区别

订阅链接通常返回一份由服务端生成的配置,内容可能包括多个节点、策略组、规则和 DNS 设置。单个节点链接只描述一个代理节点,不能自动提供完整分流结构;本地 YAML 文件则是某一时刻保存的静态配置,不会自行跟随远端变化。导入前先确认手中内容的类型:如果客户端要求填写 URL,应提供以 HTTPS 开头的订阅地址;如果使用文件导入,应选择完整 YAML;如果只有单个节点链接,则需要客户端支持从剪贴板解析或自行加入现有配置。

订阅地址相当于配置访问凭据,不适合发布到截图、论坛或公共仓库。客户端通常会把地址保存在本机配置数据库中。跨设备同步时,优先在每台设备中分别导入订阅,或使用服务方提供的集中管理方式;不要把包含订阅地址的配置文件放进公开同步目录。示例地址应使用测试域名,例如:

https://example.invalid/api/profile/clash?token=xxxx

一次正确的导入流程

在客户端中打开“订阅”“配置”或“Profiles”页面,选择从 URL 新建配置,粘贴链接后为配置填写容易识别的名称。更新间隔可按配置变化频率设置,日常使用通常不需要每隔几分钟刷新。保存后手动执行一次更新,确认客户端显示配置名称、更新时间或策略组,而不是只看到“已添加”状态。然后切换到这份配置,让内核重新加载。某些客户端把“下载订阅”和“启用配置”分成两个动作,只更新而不切换时,当前运行的仍可能是旧配置。

导入完成后不要立刻删除旧配置。先检查关键策略组是否存在、规则模式能否选择、常用节点是否显示,再完成连接测试。确认新配置稳定后,可以保留一份旧配置作为短期回退。多份配置并存时应使用明确名称,例如“日常订阅”“本地规则测试”,避免都叫 config 或 default。配置切换会改变策略组和规则,客户端可能无法把旧策略选择映射到新配置,因此切换后需要重新确认出口组。

更新失败时按层排查

订阅更新失败首先看错误类型。超时通常表示客户端无法访问订阅服务器;证书或系统时间错误会影响 HTTPS 建立;返回未授权通常表示地址失效或访问条件变化;下载成功但解析失败,则说明返回内容不是有效配置,可能是网页错误信息、编码异常或包含当前内核不识别的字段。先复制订阅地址到允许访问的浏览器环境中确认是否能取得内容,但不要把返回内容公开。若浏览器可访问而客户端失败,检查客户端是否设置了订阅更新使用代理、直连或当前代理。

“通过代理更新订阅”有一个常见循环:当前配置的节点全部失效,订阅更新又必须经过当前代理,于是客户端无法取得新配置。此时可临时切换为直连更新,或使用仍可用的备用配置完成更新。相反,在当前网络无法直连订阅服务器时,则需要通过可用代理更新。不同客户端对更新通道的命名不同,应在订阅设置、全局设置或网络设置中查找,而不是反复重新添加同一个地址。

现象 优先检查 处理方向
连接超时 当前网络、更新通道、系统代理 在直连与代理更新之间切换测试
未授权或访问被拒绝 订阅地址是否完整、服务状态 重新取得有效地址,不手工猜测参数
解析 YAML 失败 返回内容、缩进、内核兼容性 保留日志位置,检查首个解析错误
更新后节点没变化 是否启用了新配置、是否命中缓存 切换配置并重新加载内核

自动更新需要保留回退空间

启动时自动更新适合配置较稳定、设备网络可靠的场景,但不应把它当作唯一维护方式。远端配置如果临时生成失败,自动更新可能把可用配置替换成异常内容。较稳妥的做法是保留最近可用配置、开启合理更新间隔,并在重要出行或网络切换前手动更新和测试。对于自行维护的本地覆盖规则,应确认订阅更新不会直接覆盖修改;客户端若支持覆写、合并或脚本功能,应把自定义内容放在独立层,而不是直接编辑每次都会被替换的订阅文件。

代理模式:规则、全局与直连如何选择

规则模式是日常使用的默认选择

规则模式会逐条检查请求目标,根据域名、IP、进程或规则集把流量交给不同策略。常见配置会让本地网络和无需代理的目标直连,把特定目标交给代理组,再用最后一条兜底规则处理未命中的请求。它的优势不是“自动选择最快节点”,而是让不同类型流量采用不同路径。最终使用哪个节点,仍由命中的策略组决定。多数日常场景应保持规则模式,因为它兼顾访问范围、局域网服务和不同应用的连接需求。

规则模式出现“部分网站正常、部分网站异常”时,不要立即改成全局。先在连接记录中找到目标请求,查看命中的规则和策略。若目标被错误判为直连,可以加入更精确的域名规则;若被送往错误策略组,应调整规则目标或策略组选择;若根本看不到域名,只显示 IP,则需要检查 DNS 模式、嗅探或应用是否直接连接地址。全局模式可以作为诊断工具:切到全局后恢复,说明节点本身大概率可用,问题集中在规则或 DNS;全局也失败,则优先检查节点和流量接管。

全局模式不是“性能加强模式”

全局模式通常把所有已进入内核的流量交给同一个全局策略组,不再按普通分流规则决定路径。它适合短时间验证节点、临时访问规则尚未覆盖的目标,或在明确知道全部流量都应使用同一路径时启用。全局模式不会让不遵循系统代理的应用自动进入 Clash,也不会绕过操作系统权限;某个程序在规则模式下完全没有连接记录,切换全局模式通常仍然无效,此时需要处理系统代理、应用代理设置或 TUN。

长期使用全局模式可能使本地服务、打印机、局域网设备和原本应直连的业务也经过代理。部分配置会为局域网地址保留特殊处理,但不能假设所有客户端行为完全相同。需要访问路由器管理页、局域网存储或开发环境时,如果发现连接绕远,应恢复规则模式并为本地网段保留 DIRECT。全局模式下的出口取决于“GLOBAL”策略组当前选择,不等于自动使用列表中的第一个节点。

直连模式用于恢复与定位问题

直连模式会让进入内核的流量不经过代理节点,常用于网络认证、订阅直连更新、验证目标在本地网络是否可达,以及临时恢复普通网络。它与“退出客户端”并不完全相同:客户端仍可能保持系统代理或 TUN 接管,只是转发动作改为 DIRECT。排查系统代理残留时,应同时测试直连模式和完全关闭接管;如果直连模式可用但退出客户端后不可用,可能是系统 DNS、代理设置或网络接口状态尚未恢复。

日常默认

规则模式

按规则把不同请求交给代理、直连或其他策略,适合长期使用与精细分流。

短时诊断

全局模式

让已接管流量统一进入全局策略,适合验证节点和排除规则影响。

恢复网络

直连模式

保留客户端接管但不使用代理节点,适合认证、更新和对照测试。

模式切换后的验证方法

切换模式后,应重新发起一次请求,不能只看之前已经建立的连接。浏览器可能复用现有连接,应用也可能保留 DNS 缓存,因此测试时可以打开新的无痕窗口、重新加载目标或短暂重启应用。随后在连接列表中确认新请求命中的模式和策略。若客户端支持清理连接,可在切换后关闭旧连接,但不需要频繁重启内核。记录“模式、命中规则、策略组、具体节点、错误信息”五项,通常比只记录“能开或打不开”更容易找到差异。

选择模式时还要区分“代理模式”和“流量接管方式”。规则、全局、直连决定进入内核后的处理逻辑;系统代理与 TUN 决定哪些流量能够进入内核。两个维度互相独立。规则模式配合 TUN 可以处理更多应用,全局模式配合系统代理仍然只能覆盖遵循系统代理的软件。理解这一点后,许多看似矛盾的现象会变得清楚。

规则分流:从匹配顺序到策略组设计

规则从上到下匹配,首次命中即停止

Clash 规则列表具有明确顺序。请求从第一条开始检查,命中后直接使用该规则指定的策略,不再继续向下匹配。因此,范围越精确的规则通常越靠前,范围较大的规则集和最终兜底规则放在后面。如果把广泛的域名后缀或 IP 段放得过早,后面的精确规则就永远没有机会生效。排查规则时,不能只确认“配置里有这条规则”,还要确认它位于哪一条更宽规则之前或之后。

常见规则类型包括精确域名、域名后缀、域名关键字、IP 网段、源地址、目标端口、进程名称和规则集引用。域名规则依赖内核能够取得目标域名;如果请求只表现为 IP,域名规则可能无法匹配。IP 规则则要考虑解析结果与 IPv4、IPv6 差异。进程规则在桌面平台较有价值,但受系统权限和客户端实现影响,不应把所有核心分流都建立在进程识别之上。

rules:
  - DOMAIN,api.example.com,DIRECT
  - DOMAIN-SUFFIX,example.org,Proxy
  - DOMAIN-KEYWORD,media,Media
  - IP-CIDR,192.168.0.0/16,DIRECT,no-resolve
  - DST-PORT,22,Direct-or-Proxy
  - MATCH,Final

示例中,精确域名首先直连,example.org 及其子域进入 Proxy,名称包含 media 的域名进入 Media,本地网段直连,目标端口为 22 的请求交给单独策略,剩余请求由 Final 处理。策略名称必须与 proxy-groups 中的名称完全一致,包括大小写和空格。no-resolve用于避免某些 IP 规则为了匹配而额外触发域名解析,但是否适用要结合规则类型和配置目标判断。

策略组把规则与具体节点解耦

规则最好指向语义清楚的策略组,而不是直接写某个节点名称。例如规则指向“Media”“Work”或“Final”,策略组内部再选择具体节点。这样订阅更新导致节点增删时,规则层不需要全部重写。手动选择组适合由使用者明确决定出口;自动测试组会定期访问测试地址,根据响应选择节点;故障转移组按顺序尝试可用节点;负载均衡组则按配置算法分配连接。不同组解决的问题不同,不能仅凭名称推断行为。

proxy-groups:
  - name: Proxy
    type: select
    proxies:
      - Auto
      - DIRECT

  - name: Auto
    type: url-test
    use:
      - main-provider
    url: https://www.gstatic.com/generate_204
    interval: 300
    tolerance: 80

url-test测量的是到指定测试地址的一次请求表现,不代表视频带宽、长连接稳定性或所有目标的实际体验。测试地址应长期可访问、响应体小,并与真实使用网络路径具有一定代表性。间隔过短会产生额外请求,间隔过长则可能无法及时发现节点变化。tolerance用于减少延迟接近时的频繁切换,避免策略在多个节点之间来回变化。自动组适合一般访问,重要会话或需要固定出口的业务更适合手动选择组。

规则集与远程提供者

规则数量较多时,可使用 rule-providers 把不同类别拆成独立文件,由主配置引用。这样可以单独更新规则集,也便于复用。但远程规则同样存在下载失败、格式不兼容和更新改变行为的风险。应为规则提供者设置合理更新间隔和本地缓存路径,首次启用后检查日志是否下载成功。规则集类型、行为类型和文件格式需要匹配;domain、ipcidr 与 classical 的内容结构不同,混用会导致解析错误或规则无法按预期工作。

修改规则时采用“最小覆盖”思路:先为明确异常的域名增加一条精确规则,验证命中后再决定是否扩大到域名后缀或规则集。不要因为一个子域异常就把整个顶级域名全部送往同一策略,也不要把最终 MATCH 提到前面。客户端若支持覆写或合并规则,应把本地规则放进持久化覆盖层,避免订阅更新后丢失。关于 DNS 与规则如何相互影响,可继续阅读Clash DNS 配置详解

TUN 与 DNS:接管更多流量并保持解析一致

TUN 解决的是流量入口问题

系统代理依赖应用主动读取操作系统代理设置。浏览器和多数桌面应用通常支持,但游戏、命令行工具、部分商店应用和使用自定义网络栈的软件可能完全忽略系统代理。TUN 会建立虚拟网络接口,通过路由把更多 IP 流量送入内核,因此能覆盖更广的应用范围。它不是一种新的代理模式:流量进入 TUN 后,仍然要按规则、全局或直连模式处理,也仍然由策略组决定出口。

首次启用 TUN 时,客户端可能需要管理员权限、网络扩展权限或 VPN 权限。Windows 上还要关注其他虚拟网卡、企业安全软件和已有 VPN;macOS 上要确认网络扩展已获系统允许;Android 与 iOS 通常会把 TUN 表现为系统 VPN,会与其他占用同一接口的应用冲突。若启用后所有网络立即中断,应先关闭 TUN 恢复基础连接,再查看日志中的接口创建、路由写入和 DNS 监听错误,而不是继续切换节点。

常见 TUN 参数的作用

tun:
  enable: true
  stack: mixed
  auto-route: true
  auto-detect-interface: true
  dns-hijack:
    - any:53
    - tcp://any:53

dns:
  enable: true
  listen: 0.0.0.0:1053
  enhanced-mode: fake-ip
  fake-ip-range: 198.18.0.1/16
  nameserver:
    - https://1.1.1.1/dns-query
  fallback:
    - tls://8.8.8.8:853

auto-route让内核自动写入必要路由,auto-detect-interface用于识别当前出站网络接口,适合会在有线、无线和移动热点之间切换的设备。stack决定 TUN 使用的网络栈实现,mixed 是常见选择;若某个平台出现兼容问题,可以根据客户端文档在 system、gvisor 或 mixed 之间测试,但一次只改一个参数。dns-hijack用于把符合条件的 DNS 请求交给内核,减少应用绕过 Clash DNS 的情况。

示例中的地址仅用于说明字段结构。实际 DNS 服务器要结合当前网络可达性、隐私要求和配置来源选择。不要简单叠加大量 nameserver 与 fallback;服务器越多并不必然越稳定,反而会让查询路径和排错结果变复杂。若订阅已经提供 DNS 段,先理解现有逻辑再修改。客户端使用图形开关生成 TUN 配置时,也应避免同时在订阅文件和全局设置中写两套互相冲突的 DNS 参数。

fake-ip 与 redir-host 的差异

fake-ip 模式会为域名返回保留地址段中的映射地址,内核通过映射关系保留原始域名,从而更早进行域名规则匹配。它通常具有较好的分流能力,但某些局域网服务、特殊应用或依赖真实解析结果的程序可能需要加入 fake-ip-filter。redir-host 更接近传统解析流程,返回实际 IP,再结合解析结果进行转发,兼容思路较直观,但域名信息保留和匹配路径有所不同。选择时应依据客户端默认值和实际兼容性,不需要为了追求某个名称而频繁切换。

出现“网页能打开但某个局域网设备找不到”“应用登录失败但浏览器正常”时,可以检查 DNS 日志、fake-ip 过滤项和局域网域名。过滤应尽量精确,例如针对特定本地域名后缀,而不是把所有域名都排除。修改后清理应用自身 DNS 缓存或重新建立连接,否则旧解析结果可能继续生效。若系统启用了其他加密 DNS、浏览器安全 DNS或企业 DNS 客户端,还要确认它们是否绕过了 Clash 的解析路径。

TUN 常见冲突的定位

TUN 开启后完全断网,优先检查虚拟接口是否创建成功、默认路由是否写入、当前物理接口是否识别正确。只有部分应用异常,则查看该应用请求是否进入连接列表,以及是否被排除在 TUN 路由之外。访问局域网异常时检查私有网段规则和路由排除项。休眠唤醒后失效,可能是网络接口发生变化而路由未及时刷新,可先关闭再开启 TUN,确认是否恢复,再考虑自动检测接口和客户端更新。

同时运行容器、虚拟机、游戏平台加速工具或企业 VPN 时,路由表会更复杂。排错时先暂时退出其他会修改路由的程序,验证单独运行 Clash TUN 是否正常;随后逐个恢复,观察冲突出现在哪一步。若工作环境强制使用企业 VPN,不应擅自覆盖其路由,应优先使用系统代理或遵循网络管理要求。TUN 的目标是扩大接管范围,不是强行改变所有受管理网络策略。

日常维护与故障排查:建立稳定的检查顺序

维护重点是配置、内核与系统状态

Clash 客户端稳定运行后,不需要频繁清空配置或更换节点。日常维护可以固定为四项:按需更新订阅、关注客户端与内核维护状态、定期检查日志体积、保留可恢复的配置来源。订阅更新后简单验证常用策略组即可;客户端更新前记录当前配置位置和关键开关,更新后先确认内核启动、系统代理和 TUN 状态。直接覆盖安装通常不会改变订阅,但仍应为自定义规则和本地配置保留独立备份。

日志用于定位问题,不适合长期保持 debug 级别。正常运行时使用 info,可以看到配置加载、监听端口、订阅更新和连接错误。出现问题后复现一次,再从复现时间点附近读取日志。搜索第一条明确错误通常比盯着最后一行有效,因为后续错误可能只是前面失败的连锁结果。分享日志前应删去订阅地址、节点认证信息和个人路径,只保留错误类型、相关字段与必要上下文。

按“范围”判断故障位置

所有应用都无法联网时,先切换直连模式并关闭 TUN,检查普通网络是否可用;随后确认内核状态和端口占用。只有遵循系统代理的应用正常,其他应用异常,说明需要检查 TUN 或应用自身代理。只有一个网站异常,查看命中规则、DNS 结果和目标服务状态。只有某个节点异常,换同策略组中的其他节点对照。订阅无法更新但现有连接可用,则把问题限定在订阅地址与更新通道,不要重置整个客户端。

延迟测试只能反映测试地址上的短请求表现。一个节点显示较低延迟,却可能受带宽、丢包、拥塞或目标线路影响,在视频和大文件场景下表现不佳。反过来,延迟略高的节点也可能更加稳定。判断实际体验时,应结合连接成功率、持续传输、目标服务响应和一段时间内的稳定性。延迟数字的原理与误区可参考Clash 延迟测试数字怎么看

故障范围 第一步 第二步 暂时不要做
全设备断网 关闭 TUN 与系统代理 检查普通网络和残留代理 立即删除全部配置
所有代理请求失败 切换节点 查看握手与超时日志 连续修改多项 DNS 参数
单个域名异常 查看连接记录 核对规则与 DNS 长期使用全局模式掩盖问题
订阅更新失败 保留当前配置 测试直连或代理更新 在未备份时覆盖旧配置
TUN 开启后异常 先关闭 TUN 恢复网络 检查权限、接口与路由 同时运行多个 VPN 工具排错

端口、时间与缓存是容易忽略的基础项

端口占用会让内核无法监听,日志通常会出现 address already in use 一类信息。先退出旧客户端和重复内核进程,再确认端口是否释放。系统时间明显不准会导致 HTTPS 证书验证和部分协议握手失败,应开启可靠的时间同步。DNS 和连接缓存则会让修改不能立即表现:规则切换后旧连接仍可能继续使用原策略,DNS 修改后应用可能保留旧结果。测试时重新建立连接,必要时重启目标应用,而不是每次都重启整台设备。

系统代理关闭失败时,可在操作系统网络设置中手动恢复。Windows 还应检查自动配置脚本和手动代理是否同时残留;macOS 需要按当前网络服务检查代理项目。客户端异常退出后,TUN 路由通常会被清理,但少数情况下虚拟接口或路由状态可能暂时保留,重启客户端并正常关闭一次往往比直接删除驱动更稳妥。移动端则可在系统 VPN 设置中断开连接,再重新授权客户端。

建立可复现的排错记录

有效的排错记录至少包括操作系统、客户端名称、使用的接管方式、代理模式、问题发生时间、目标应用、命中策略和关键日志。描述“不能用”无法区分订阅、规则、DNS 与节点问题;描述“规则模式下浏览器请求命中 DIRECT,全局模式命中 Proxy 后恢复”就能直接指向规则层。每次测试只改变一个变量,并记录改变前后的结果。复杂问题可以复制当前配置建立测试副本,避免在日常配置上连续叠加临时修改。

如果更新客户端后出现新问题,先确认配置是否仍被选中、内核是否切换、TUN 权限是否保留,再考虑回退。旧客户端停止维护时不宜长期停留,迁移到新客户端后应重新验证系统代理、策略组和自定义覆盖。关于原版、Meta 与 mihomo 的关系,可阅读Clash 内核版本区别与选择,避免把客户端版本变化与内核差异混为一谈。

进阶路线:从图形设置走向可维护配置

先学会阅读配置,再开始重写配置

进阶配置的第一步不是从空白文件开始,而是读懂一份已经可以运行的配置。先识别基础监听、DNS、代理提供者、策略组、规则提供者和最终规则,再追踪一个真实请求会经过哪些字段。对订阅生成的配置建立副本,在副本中做最小修改并通过客户端的配置检查功能验证。YAML 对缩进敏感,列表项、对象层级和字符串中的特殊字符都可能导致解析失败;编辑器应使用空格缩进,并避免自动把普通字符替换成排版符号。

配置拆分应围绕维护边界:订阅负责远程节点,本地覆写负责个人规则,规则提供者负责可复用分类,全局设置负责设备级端口、TUN 和界面行为。不要把所有内容堆进一个每次订阅更新都会替换的文件。客户端支持 merge、override 或脚本时,应先确认合并顺序:同名字段是覆盖、追加还是深度合并,会直接影响最终配置。修改后查看客户端实际生成并交给内核的配置,而不是只看输入片段。

代理提供者适合管理动态节点

proxy-providers:
  main-provider:
    type: http
    url: https://example.invalid/provider.yaml
    path: ./providers/main.yaml
    interval: 3600
    health-check:
      enable: true
      url: https://www.gstatic.com/generate_204
      interval: 600

proxy-groups:
  - name: Main
    type: select
    use:
      - main-provider
    proxies:
      - DIRECT

proxy-providers 可以把节点来源与主配置分开,主配置通过 use 引用提供者。远程文件应采用内核支持的 provider 格式,路径用于本地缓存,更新间隔控制重新获取频率。健康检查用于判断节点对指定测试地址的可达性,但结果仍不代表全部目标体验。多个提供者并存时,可以按用途分别建立策略组,不必把所有节点塞入一个巨大列表。提供者更新失败时,本地缓存通常仍有机会继续使用,因此缓存路径应放在客户端可写且会被保留的位置。

外部控制接口与局域网开放要分别管理

external-controller 允许图形界面或管理面板读取内核状态并执行切换操作。个人电脑上优先监听回环地址,只有需要从其他设备管理时才考虑局域网监听,并同时配置访问凭据、系统防火墙和可信网段。allow-lan 控制代理端口是否允许局域网设备连接,与控制接口不是同一个开关。开放代理端口不代表应开放控制接口,反之亦然。任何面向局域网的监听都应明确用途和访问范围。

在软路由或服务器中运行时,还要决定内核以哪个用户启动、配置和缓存目录由谁写入、服务失败后如何重启。使用系统服务管理器比在终端中长期挂起进程更可靠。更新内核前应保留当前可执行文件和配置,先执行配置检查,再重启服务并观察日志。容器部署则需要明确端口映射、网络模式、TUN 设备权限和配置卷,不应把宿主机全部目录直接映射给容器。

DNS、嗅探与规则要作为一套系统设计

高级配置经常同时启用 fake-ip、DNS 劫持、域名嗅探和规则集。它们的共同目标是尽可能保留域名信息并正确分类流量,但重复或互相冲突的设置会增加误判。嗅探可以从部分 HTTP、TLS 或 QUIC 流量中恢复域名,对直接连接 IP 的应用有帮助;它并不能解密业务内容,也不是所有协议都能得到域名。应从客户端默认范围开始,只为明确问题调整端口或排除项。

设计 DNS 路径时画出三个问题:系统请求交给谁、内核向哪些上游查询、解析结果如何参与规则。若使用 nameserver-policy,可为特定域名指定解析服务器,但规则范围要精确,防止大量查询被意外送往不适合的上游。fallback-filter 用于判断哪些结果进入备用解析逻辑,应结合地理数据、网段和域名条件理解。相关字段的完整关系可查阅nameserver、fallback 与劫持参数说明

形成自己的变更流程

可维护配置需要一套固定流程:复制当前可用配置,写明本次只解决一个问题;修改后执行语法检查;在直连可恢复的环境中加载测试;观察连接记录、规则命中和日志;确认稳定后再合并到日常配置。对于规则集和代理提供者,记录来源、用途和更新方式。删除不再使用的字段,避免同一功能在图形设置、覆写文件和订阅中重复定义。

学习顺序可以沿三条线推进。第一条是规则线:掌握 DOMAIN、IP-CIDR、PROCESS-NAME、RULE-SET 与 MATCH 的匹配边界。第二条是网络线:理解系统代理、TUN、路由、DNS 和 IPv6。第三条是运维线:掌握配置拆分、日志、服务管理和回退。完成这三条线后,再研究 mihomo 扩展协议与特殊规则类型。可先阅读mihomo 内核功能差异,确认哪些字段属于当前内核,再决定是否加入配置。

下一步

按实际平台完成一次完整配置

先在下载页选择仍在维护的客户端,再用快速教程完成首次连接。遇到具体设置时返回本手册对应章节,逐层确认接管、规则、策略、节点和 DNS。