Clash 使用手册:从零到精通的九个阶段
本页是站内信息量最大的一份文档:从核心概念讲到路由器部署,按阶段线性推进,每章可独立查阅。如果只想在十分钟内完成首次连接,请先看快速上手教程——它是"跟着做就能连上"的主线;本手册负责回答教程里没有展开的"为什么"和"还能怎么配"。两页互为补充,建议先跑通教程,再回到这里逐章加深。
- 九章 · 阶梯式推进
- 全平台覆盖
- 配置示例可直接套用
核心概念:内核、客户端、配置与订阅的关系
在动手安装之前,先花几分钟弄清四个名词的关系,后面每一章都会反复用到它们。理解了这一章,遇到任何客户端界面差异都能自行对应。
Clash 是一条工具链,不是单个软件
日常语境里说的"Clash",实际包含三层:最底层是内核,一个用 Go 编写的命令行程序,负责监听端口、解析规则、转发流量;中间层是配置文件,一份 YAML 文本,告诉内核开哪些端口、有哪些节点、什么流量走什么出口;最上层是客户端,也就是带图形界面的应用,它把内核打包进来,替你管理配置、切换节点、开关系统代理。当前生态里主流内核是 mihomo(由 Clash Meta 内核延续而来),本站下载页提供的各平台客户端均基于该内核。换句话说,不同客户端只是"壳"不同,底层规则语法与行为是一致的——这也是本手册的内容能跨客户端通用的原因。
订阅:托管在远端的配置文件
订阅本质上就是一个 URL,访问它会返回一份完整的 Clash 配置。服务商把节点信息、推荐规则写进这份配置并托管在服务器上,你在客户端里粘贴 URL 完成导入;服务商更新节点后,客户端拉取一次订阅即可同步,不需要手动改任何文本。订阅链接通常内嵌了身份令牌,泄露等于把账号交给别人,第四章会专门讲导入与保管。
代理协议:节点使用的传输方式
配置文件的 proxies 段里,每个节点会声明自己的协议类型。常见的有 Shadowsocks(结构简单、历史最久)、VMess 与 VLESS(V2Ray 系协议,支持多种传输层伪装)、Trojan(模仿 TLS 流量)、Hysteria2(基于 QUIC,弱网表现好)。作为使用者不需要深入协议细节,只需知道:协议由服务商决定并写在订阅里,客户端只要内核支持即可直接使用;mihomo 内核对以上协议均有支持。
一次请求的完整路径
把流程串起来:应用发起请求 → 流量进入 Clash 的入站端口(系统代理或 TUN 虚拟网卡)→ 内核按需完成域名解析 → 自上而下匹配 rules 规则 → 命中的规则指向某个代理组或 DIRECT/REJECT → 流量从对应出口发出。后面的第五、六、七章分别对应这条链路上的"入站"、"规则匹配"和"接管方式与 DNS"三个环节,读的时候可以随时回到这张路径图定位。
选客户端:按平台确定安装对象
各平台可选客户端不止一个,但对多数用户而言选择路径很短。下表与下载页的包清单保持一致,按平台给出首选与备选。
| 平台 | 首选 | 备选 | 说明 |
|---|---|---|---|
| Windows | Clash Plus | Clash Verge Rev / FlClash / Clash Nyanpasu | Clash for Windows 已停止维护,仅作归档 |
| macOS | Clash Plus | Clash Verge Rev / FlClash | ClashX Meta 已停止维护,老用户可继续使用 |
| Android | Clash Plus | Clash Meta for Android / FlClash / Surfboard | 安装后需授予 VPN 权限 |
| iOS | Clash Plus(App Store) | — | 通过 App Store 安装,入口见下载页 iOS 区 |
| Linux | Clash Verge Rev | FlClash | 提供 deb 包,服务器场景可直接跑内核 |
为什么首推 Clash Plus
Clash Plus 是目前唯一覆盖 Windows、macOS、Android、iOS 全平台的选项,界面结构与操作逻辑在各端保持一致:在电脑上学会的订阅管理、节点切换、模式选择,换到手机上不需要重新适应。它内置 mihomo 内核并随版本更新,提供中文界面,对刚接触 Clash 的用户来说学习成本最低。多设备用户尤其建议全平台统一使用同一客户端,排查问题时只需记一套界面。
备选客户端的定位
Clash Verge Rev 与 FlClash 均为活跃维护的开源客户端:前者在桌面端功能全面,支持配置覆写与脚本扩展,适合喜欢折腾配置的用户,也是 Linux 桌面的推荐选择;后者跨 Windows、macOS、Android、Linux,界面简洁。Clash Nyanpasu 仅提供 Windows 版。至于 Clash for Windows 与 ClashX Meta,两者均已停止维护,不再获得内核与安全更新,下载页保留归档仅为老配置迁移过渡之用,新用户不应从它们开始。关于停更背景,可参阅站内资讯的相关讨论。
确定目标后,前往下载页对应分区获取安装包:Windows 客户端、macOS 客户端,其余平台在同页下方。
安装:五个平台的注意事项
安装本身不复杂,但每个平台各有一处容易卡住的系统机制。本章逐平台说明,按你的设备跳读对应小节即可。
Windows
运行下载的安装程序,按向导完成即可。两处提示:其一,Windows 的 SmartScreen 可能弹出"已保护你的电脑"拦截窗,这是系统对下载量较低的可执行文件的通用提示,点击"更多信息"→"仍要运行"继续;其二,安装路径避免使用含中文或空格的目录,部分内核功能(如服务模式)对路径敏感。安装完成后首次启动,客户端会在系统托盘常驻一个图标,主窗口关闭不等于退出,后续开关代理都通过托盘或主界面进行。若计划使用第七章的 TUN 模式,建议在设置中提前安装系统服务,以便内核以足够权限运行。
macOS
打开 dmg 镜像,把应用图标拖入"应用程序"文件夹。首次打开时 Gatekeeper 可能提示开发者验证,若被拦截,前往"系统设置 → 隐私与安全性",在页面底部找到"仍要打开"。客户端首次开启系统代理或 TUN 时,系统会请求安装网络扩展或修改网络设置的授权,需要输入管理员密码放行——这一步是 macOS 的正常权限流程,拒绝后代理将无法生效。Apple Silicon 与 Intel 芯片对应不同安装包,下载页已分别列出,按"关于本机"里的芯片型号选择。
Android
安装 apk 时系统可能要求允许"安装未知来源应用",在弹出的设置页为浏览器或文件管理器授权一次即可。首次启动代理时,系统会弹出 VPN 连接请求,必须允许——Android 客户端通过 VpnService 接管流量,拒绝该权限则完全无法工作。另外建议把客户端加入电池优化白名单(设置 → 电池 → 不受限制),否则部分厂商系统会在息屏后杀掉后台,表现为"手机放一会儿代理就断"。
iOS
iOS 端通过 App Store 安装 Clash Plus,商店入口与说明见下载页的 iOS 分区。安装后首次启动代理时,系统会请求添加 VPN 配置,在弹窗中允许并验证一次即可,之后的开关不再需要重复授权。
Linux
桌面发行版以 deb 包为例,下载后在终端执行:
sudo apt install ./clash-verge-rev_amd64.deb
使用 apt install 而非 dpkg -i 的好处是自动补齐依赖。安装后从应用菜单启动;若使用 TUN 模式,客户端会引导安装带特权的服务进程。服务器或无桌面环境不需要 GUI 客户端,直接运行 mihomo 内核即可,方法见第九章。
订阅导入:让客户端拿到节点
装好客户端后界面是空的——没有任何节点,因为节点信息由你的服务商通过订阅提供。本章覆盖导入、更新与常见失败三个环节。
三种导入方式
最常用的是 URL 导入:在服务商的用户面板复制订阅链接(形如 https://sub.example.com/token/clash.yaml),打开客户端的"配置"或"订阅"页,点击新建/导入,粘贴链接确认。客户端会立即请求该 URL,下载配置并列出全部节点。其次是剪贴板导入:部分客户端检测到剪贴板里有订阅链接时会主动询问是否导入,本质与 URL 导入相同。最后是本地文件导入:如果你手上有一份现成的 YAML 配置(比如自己维护的,见第九章),可以直接以文件方式载入,这种配置不会自动更新,改动需要手动完成。
更新机制
URL 导入的订阅支持更新:手动点击订阅条目上的刷新按钮,客户端会重新请求 URL 并用返回内容整体替换本地配置;多数客户端还支持设置自动更新间隔(常见取值为 12 或 24 小时)。服务商更换节点地址后,更新一次订阅即可恢复可用,遇到"所有节点突然全部超时"时,更新订阅永远是第一个动作。需要注意:更新是整份替换,直接改在订阅配置里的手动修改会被覆盖,持久化的定制应通过客户端的覆写功能或独立本地配置实现。
导入失败的三类原因
其一,链接复制不完整:订阅 URL 通常很长,从聊天工具转发时容易被截断或混入换行,失败时先回到服务商面板重新复制。其二,网络不通:部分订阅服务器本身需要一定网络条件才能访问,可尝试更换网络环境后重试。其三,格式不匹配:订阅分 Clash 格式与其他格式,导入报"解析失败"多半是拿了非 Clash 格式的链接,服务商面板一般提供多种格式入口,认准标注 Clash 的那一个。
注意:订阅链接内嵌了你的身份令牌,任何拿到链接的人都可以消耗你的流量额度。不要在公开场合张贴,截图时务必打码。若怀疑泄露,到服务商面板重置订阅地址。
导入成功后即可进行首次连接:选择节点分组、测延迟、开启代理并验证,操作主线见教程页的连接步骤,更细的延迟数值解读与验证方法见文章《Clash 首次连接全流程》。
代理模式与端口:流量从哪里进、按什么走
节点连上之后,决定体验的是两件事:内核以什么模式决定流量去向,系统流量通过什么入口交给内核。
三种运行模式
| 模式 | 行为 | 适用场景 |
|---|---|---|
| 规则(Rule) | 逐条匹配 rules,按命中结果决定直连或走代理 | 日常默认,境内外流量自动分流 |
| 全局(Global) | 忽略规则,所有流量走当前选中节点 | 临时排查、或确认某站点必须走代理时 |
| 直连(Direct) | 所有流量不经代理直接发出 | 临时停用代理但保留客户端运行 |
绝大多数时间应停留在规则模式:境内流量直连保证速度,境外流量按规则走代理。全局模式是排查工具而非日常选择——长期开全局意味着境内流量也绕道节点,速度与流量额度双输。模式切换的具体入口见教程页模式选择一步。
入站端口
内核通过监听本机端口接收流量,配置文件顶部的端口段决定了监听行为:
mixed-port: 7890 # HTTP 与 SOCKS5 混合端口,推荐统一走它
allow-lan: false # 是否允许局域网其他设备接入
mode: rule # 启动时的默认模式
log-level: info # 日志级别:silent / error / warning / info / debug
external-controller: 127.0.0.1:9090 # RESTful 控制接口,供面板类工具调用
mixed-port 是当前的主流写法,同一端口同时接受 HTTP 与 SOCKS5 两类代理请求,取代了旧配置里分开的 port 与 socks-port。7890 是习惯默认值而非强制,若该端口被其他程序占用(客户端日志会报 bind 失败),改成任意空闲端口即可,注意系统代理设置需要同步。allow-lan 打开后,同一局域网内的手机、电视可以把网关代理指向这台电脑的 IP 与端口,共享代理出口;在公共网络环境应保持关闭。
系统代理:让应用把流量交出来
开启"系统代理"开关时,客户端把操作系统的代理设置指向 127.0.0.1:7890,浏览器等遵守系统代理设置的应用会自动把请求发给内核。它的局限也在这里:只有"遵守系统代理"的应用会被覆盖,许多命令行工具、部分桌面软件会无视该设置——这正是第七章 TUN 模式要解决的问题。如果开了系统代理却发现浏览器或终端没有走代理,按浏览器与终端两条线分别排查,方法见《Clash 系统代理不生效怎么排查》。
规则分流:配置文件的核心机制
规则模式的全部行为由配置文件里的 proxy-groups 与 rules 两段定义。订阅配置已经写好了这两段,理解它们的语法后,你能读懂订阅在做什么,也能开始做自己的定制。配置文件的完整逐段解析见《Clash 配置文件结构详解》,本章聚焦分流机制本身。
代理组:把节点组织成可选策略
规则不会直接指向某个节点,而是指向代理组;代理组再决定用组内哪个节点。常用四种组类型:select 手动选择,组内节点由你在界面上点选;url-test 自动测速,周期性向测试地址发请求,选延迟最低的节点;fallback 故障转移,按列表顺序使用第一个可用节点,失效自动切下一个;load-balance 负载均衡,把连接分散到多个节点。示例:
proxy-groups:
- name: 节点选择
type: select
proxies:
- 自动测速
- 香港节点
- 日本节点
- DIRECT
- name: 自动测速
type: url-test
url: https://www.example.com/generate_204
interval: 300
proxies:
- 香港节点
- 日本节点
这种"手动组里嵌自动组"的写法很常见:日常挂在"自动测速"上省心,需要固定出口(比如登录对地区敏感的服务)时手动切到具体节点。interval 单位为秒,300 表示每五分钟重测一次。
规则:自上而下,首条命中即停
rules 段是一个有序列表,每条格式为"类型,匹配值,出口"。内核对每个连接从第一条开始逐条比对,命中即停止,后面的规则不再参与——因此规则顺序即优先级,精确规则放前、兜底规则放最后。常用类型:
DOMAIN:完整域名精确匹配;DOMAIN-SUFFIX:匹配域名及其全部子域,日常最常用;DOMAIN-KEYWORD:域名包含关键字即命中,覆盖面大,慎用;IP-CIDR:按 IP 网段匹配,常配no-resolve参数避免为纯域名请求触发解析;GEOIP:按 IP 归属地匹配,GEOIP,CN,DIRECT是"境内 IP 直连"的标准写法;MATCH:无条件命中,必须且只能作为最后一条兜底。
rules:
- DOMAIN-SUFFIX,example.com,节点选择
- DOMAIN-KEYWORD,tracker,REJECT
- IP-CIDR,192.168.0.0/16,DIRECT,no-resolve
- GEOIP,CN,DIRECT
- MATCH,节点选择
出口除了代理组名,还有两个内置值:DIRECT 直连、REJECT 直接拒绝连接(常用于拦截遥测类域名)。读订阅自带的规则时抓住主线即可:前段是各类服务的域名/IP 归类,倒数第二条通常是 GEOIP 直连,最后一条 MATCH 把剩余流量交给主选择组。
提示:想给某个网站强制指定出口,不必重写整份配置——在规则列表最前面加一条 DOMAIN-SUFFIX 即可,利用"首条命中即停"的特性覆盖后续所有规则。通过客户端的覆写功能添加,可避免被订阅更新冲掉。
TUN 与 DNS:接管全部流量
第五章说过系统代理的边界:不遵守代理设置的程序管不到。TUN 模式从网络层解决这个问题,是桌面端进阶使用的分水岭。
TUN 的工作方式
开启 TUN 后,内核在系统里创建一块虚拟网卡,并调整路由表把它设为默认出口。此后所有网络流量——无论应用是否支持代理设置——都会先进入这块虚拟网卡,由内核按规则处理。效果上等同于"设备级接管":命令行工具、游戏、系统组件的流量全部纳入分流。代价是需要更高权限:Windows 上要求以服务模式安装内核组件,macOS 上需要授权网络扩展,Linux 上需要特权服务,各客户端的设置页都提供了对应的一键安装入口。开启 TUN 后应关闭系统代理开关,两者同时启用没有意义且可能造成回环。
DNS 接管与 Fake-IP
TUN 模式下 DNS 必须交给内核处理,否则会出现"流量走了代理、域名解析却在本地明文发出"的泄漏,同时基于域名的规则也可能失效。配置文件的 dns 段控制这部分行为:
dns:
enable: true
listen: 0.0.0.0:1053
enhanced-mode: fake-ip
fake-ip-range: 198.18.0.1/16
fake-ip-filter:
- "*.lan"
- "+.local"
nameserver:
- https://doh.example.com/dns-query
enhanced-mode 有两个取值。redir-host 走传统路径:先真实解析域名,再按结果转发,行为直观但多一次解析延迟,且解析结果可能被污染。fake-ip 则在应用查询域名时立刻返回一个保留网段(默认 198.18.0.0/16)内的虚构地址,内核记录"虚构 IP ↔ 域名"的映射;应用连接该虚构 IP 时,内核按域名匹配规则并转发。好处是响应快、规则匹配始终基于原始域名;副作用是少数依赖真实 IP 的场景(局域网设备发现、部分内网服务)会异常,把相关域名加入 fake-ip-filter 排除即可。nameserver 建议使用加密 DNS(DoH/DoT),避免上游解析被干扰。
注意:在 fake-ip 与 redir-host 之间切换后,操作系统与浏览器可能仍缓存着旧的解析结果,表现为部分网站短暂打不开。Windows 下执行 ipconfig /flushdns,或重启浏览器/设备,让缓存失效即可。
什么时候需要 TUN
判断标准很简单:如果你的需求全部发生在浏览器里,系统代理已经够用,不必引入 TUN 的权限复杂度;一旦涉及终端命令行、开发工具、游戏或其他不读系统代理的程序,TUN 是比逐个软件配置代理环境变量更彻底的方案。验证 TUN 是否生效,可在终端直接发起请求观察出口 IP,方法见教程页的验证步�骤。
日常维护:更新、日志与故障对照
配置跑通之后,日常需要做的事不多,但做对能省去绝大多数突发排查。
三样东西保持更新
订阅:开启自动更新或养成每隔几天手动刷新的习惯,服务商侧的节点变动只有更新后才会同步。客户端与内核:客户端更新通常携带内核更新,新内核会跟进协议与规则能力的演进,建议在客户端提示新版本时及时升级。Geo 数据库:GEOIP 等规则依赖的地理数据库,多数客户端提供一键更新入口,数据库过旧会导致部分 IP 归属判断偏差。
学会看日志
客户端的日志/连接面板是最直接的排错入口:连接页能看到每条活动连接命中了哪条规则、走了哪个出口——"这个网站为什么直连了"这类问题看一眼就有答案;日志页则记录内核事件,启动失败、端口占用、订阅拉取错误都会在这里留下明确信息。各面板的功能分区详见《Clash 客户端界面速览》。排查任何问题前,先把日志级别临时调到 debug 获取完整信息,解决后再调回 info。
常见故障速查
| 现象 | 优先检查 |
|---|---|
| 全部节点超时 | 先更新订阅;再确认本机网络本身可用;最后换节点分组测试 |
| 浏览器不走代理 | 系统代理开关是否开启;浏览器是否装有自带代理设置的扩展在抢占 |
| 终端不走代理 | 终端不读系统代理,需设置 http_proxy 环境变量或改用 TUN 模式 |
| 客户端启动报端口错误 | 7890/9090 被占用,改 mixed-port 或退出占用程序 |
| 部分网站打不开、其余正常 | 连接面板查该域名命中的规则;尝试切换节点;fake-ip 切换后清 DNS 缓存 |
| 手机息屏后断连 | Android 电池优化白名单;确认 VPN 权限未被系统回收 |
备份与开机自启
订阅 URL、覆写脚本、自己维护的本地配置,建议在密码管理器或私人笔记里留一份副本,换机或重装时几分钟即可恢复原状。桌面端在设置里开启"开机启动"与"自动连接",配合 TUN 或系统代理,重启后无需手动干预;服务器场景的自启方案见下一章。
进阶路线:从用配置到管配置
走到这里,客户端层面的能力已经完整。进阶方向是把对配置的控制权逐步收回到自己手里,大致分三步。
第一步:覆写与手工微调
订阅更新会整体覆盖配置,所以持久化定制的正确姿势是客户端的覆写(Override)机制:把你的修改(追加规则、调整 DNS、改端口)写成独立片段,客户端在每次订阅更新后自动合并。等你对第六章的语法足够熟悉,可以进一步维护一份完全手写的本地配置:proxies 段从订阅提取,其余各段按自己的需求组织。写 YAML 时最大的坑是缩进——层级只能用空格,同级字段必须严格对齐,一个 Tab 就足以让整份配置解析失败,细节参见配置结构详解一文。
第二步:直接运行内核
脱离 GUI、直接跑 mihomo 内核,适合服务器与长期无人值守场景。从下载页内核区获取对应架构的二进制文件,解压后指定配置目录运行:
# 配置文件放在 ~/.config/mihomo/config.yaml
./mihomo -d ~/.config/mihomo
# 仅校验配置语法,不启动
./mihomo -t -d ~/.config/mihomo
-t 参数值得记住:改完配置先跑一次校验,比启动失败后翻日志高效。Linux 下配合 systemd 写一个服务单元即可实现开机自启与崩溃自动拉起;external-controller 开启后,还可以用网页面板远程查看连接与切换节点,弥补没有 GUI 的不便。
第三步:路由器与旁路由部署
把内核跑在路由器或旁路由上,家里所有设备——包括不能装客户端的电视、游戏机——接入网络即自动获得分流能力,设备端零配置。这条路线涉及硬件选型、透明代理、DNS 接管与自启守护等一整套话题,主路由与旁路由两种拓扑的取舍与完整部署思路,见《路由器与旁路由直跑 Clash 内核:mihomo 部署方案概览》。
建议的学习顺序:先在桌面端把规则模式与 TUN 用顺(第五到七章),再尝试覆写与手写配置(本章第一步),最后才考虑内核直跑与路由器部署——每一步都建立在上一步的排错经验之上,跳级只会把简单问题变复杂。
下载 Clash 客户端
手册对应的各平台客户端均可在下载页获取,首推全平台一致体验的 Clash Plus;首次使用建议配合快速上手教程完成第一次连接。