Clash 全平台安装配置指南
这一页是本站的系统查阅手册:Windows、macOS、Linux、Android、iOS 各占一章,每章从下载安装讲到订阅导入、系统代理与 TUN 设置,再到平台特有的坑。如果你只想尽快连上网络,先去快速上手走一遍主线;卡在某个具体环节时,再回到这里按章节查。
开始之前:通用准备工作
不论用哪个平台,Clash 的使用逻辑都是同一条线:装一个客户端,给它一份配置,让系统流量经过它。这一章把跨平台通用的概念和准备事项一次讲完,后面各平台章节就不再重复。
先分清三个名词
很多安装问题,根源是把三个东西混成了一个。内核指 Mihomo 这类命令行程序,负责真正处理流量、匹配规则,它没有界面。客户端是包着内核的图形软件,比如 Clash Plus、Clash Verge Rev、FlClash,你点的每个开关,最终都会翻译成内核能读懂的参数。订阅是服务商提供的一条链接,客户端定期访问它,拉回一份包含节点与规则的配置文件。三者的关系是:订阅提供内容,客户端负责界面与调度,内核负责干活。更多术语可以查名词解释。
动手前的三样东西
- 一条订阅链接。由你的服务商提供,通常是一个以 https 开头的长网址。它等价于账号凭证,不要发到公开场合。
- 对应平台的安装包。各平台推荐的客户端与获取方式见下载页,全平台首推 Clash Plus,下表是概览。
- 十分钟不被打断的时间。首次配置涉及系统授权,中途切走容易漏掉某个弹窗。
| 平台 | 首选客户端 | 安装包形态 | 要点 |
|---|---|---|---|
| Windows | Clash Plus / Clash Verge Rev | 安装程序(.exe) | 需要 64 位 Windows 10 及以上 |
| macOS | Clash Plus / Clash Verge Rev | 磁盘镜像(.dmg) | 区分 Intel 与 Apple Silicon 两种芯片 |
| Linux | Clash Verge Rev / FlClash | 软件包(.deb 等) | 面向主流 x86_64 发行版 |
| Android | Clash Plus / Clash Meta for Android | 安装包(.apk) | 优先选 arm64 架构版本 |
| iOS | Clash Plus | App Store 安装 | 直接从商店获取,见下载页 iOS 区 |
系统代理与 TUN:一次讲清
各平台章节都会提到这两个词,先在这里说明白。系统代理是在操作系统的网络设置里登记一个代理地址(通常是 127.0.0.1 加一个端口),遵守这个设置的程序——浏览器、大部分常见软件——会把流量交给 Clash。TUN 模式更彻底:客户端创建一块虚拟网卡,系统所有流量先经过这块网卡,不管程序认不认代理设置。
| 对比项 | 系统代理 | TUN 模式 |
|---|---|---|
| 生效范围 | 遵守代理设置的程序 | 几乎全部程序,含命令行与游戏 |
| 额外权限 | 一般不需要 | 需要管理员/服务模式或系统授权 |
| 出问题的概率 | 低,关掉即恢复 | 略高,与安全软件、虚拟网卡有关 |
| 建议 | 日常默认 | 确认某程序不走代理时再开 |
一个实用的判断:先开系统代理,浏览器能正常访问但某个软件不行,再考虑 TUN。上来就开 TUN,一旦出问题,你分不清是节点、规则还是虚拟网卡的责任。
流量从发起到出网,中间经过了什么
把整条链路拆开看,理解后面所有章节都会轻松很多。第一步,某个程序要访问一个网址,它先做域名解析;开启了 DNS 接管的客户端会在这一步就介入,返回一个用于内部标记的地址,而不是让系统直接去问公共 DNS。第二步,程序按系统代理设置或虚拟网卡把连接交给 Clash,内核拿到的是「目标域名或 IP + 端口」这样一条请求。第三步,内核把这条请求丢进规则表,从上到下逐条比对,命中哪条就按哪条的策略处置:DIRECT 就用本机网络直接连出去,某个代理分组就交给分组当前选中的节点。第四步,如果走代理,内核按节点配置的协议完成握手与加密,再把数据转发出去。
这条链路解释了几个常见困惑。为什么「客户端明明开着却没生效」——因为那个程序既不认系统代理,又没开 TUN,流量根本没进第二步。为什么「同一个网站有时直连有时代理」——因为规则里既有域名规则又有 IP 规则,解析结果变化会导致命中不同条目。为什么「换了节点还是打不开某站」——因为问题可能出在第一步的解析上,和节点无关。排障时按这四步依次确认,比反复重启客户端有效得多。
先想清楚你要哪种使用方式
动手之前建议先决定自己属于哪一类,后面照着对应路径走就行。只用浏览器的人最省事:装客户端、导订阅、开系统代理,规则模式默认放着,基本不用再碰任何开关。要用命令行或开发工具的人多一步:桌面系统代理管不到终端,需要额外设置环境变量,Linux 一章给出了完整命令,macOS 与 Windows 的终端同理。家里有多台设备的人可以只在一台常开的电脑上运行客户端,打开局域网共享,让电视、游戏机把代理指过来,省掉逐台配置。某些应用死活不走代理的人才需要 TUN,这也是本手册反复强调"最后才开 TUN"的原因——它解决的问题很具体,带来的变量却最多。
Windows:安装、订阅与服务模式
下载与安装
从下载页 Windows 区获取安装包,首推 Clash Plus,Clash Verge Rev 与 FlClash 同样是可靠选择。安装包是常规的安装向导程序,一路下一步即可;安装路径建议保持默认,放到中文或带空格的深层目录偶尔会引发内核启动异常,排查起来很绕。
首次运行时,Windows 的 SmartScreen 可能弹出「已保护你的电脑」的蓝色提示。这是系统对下载文件的常规拦截,并非病毒警报——点「更多信息」,再点「仍要运行」即可。如果桌面安全软件把安装程序移入隔离区,把文件恢复并加入信任列表后重新安装。
老用户注意:Clash for Windows 已停止维护,不再跟进新的内核与协议特性。仍在使用的建议迁移到 Clash Plus 或 Clash Verge Rev,界面逻辑接近,订阅可以直接复用,详见常见问题里的迁移条目。
导入订阅
打开客户端,找到「订阅」或「配置」页,把服务商给的订阅链接完整粘贴进输入框,点导入。客户端会去拉取配置,成功后列表里出现一个配置项,点击选中激活。之后回到「代理」页,应该能看到节点分组与节点列表——看到节点,说明订阅这一步就通了。如果拉取失败,先检查链接是否复制完整(结尾多个空格、少个字符都会失败),再确认当前网络本身能否访问订阅地址。
系统代理与 TUN
在客户端主界面打开「系统代理」开关,客户端会自动把 127.0.0.1 与混合端口写进 Windows 的代理设置,浏览器立即生效。需要 TUN 时,多数客户端要求先安装「服务模式」——这是一个随系统运行的后台服务,替客户端拿到创建虚拟网卡所需的权限。在设置页找到服务模式的安装按钮,同意 UAC 弹窗,装好后再打开 TUN 开关。开启后如果完全断网,通常是安全软件拦截了虚拟网卡驱动,把客户端加入信任后重试。
平台特有问题
- 开机自启:在客户端设置里勾选自启动即可;若开机后托盘没有图标,检查任务管理器「启动应用」里它是否被禁用。
- 代理残留:客户端异常退出时,系统代理设置可能没被清掉,表现为关了客户端反而上不了网。到「设置 → 网络和 Internet → 代理」里手动关闭「使用代理服务器」即可恢复。
- 端口被占用:日志里出现 bind 相关报错,多半是端口冲突,换一个混合端口(如 7890 改 7897)即可。看日志的方法参考运行日志解读一文。
macOS:芯片版本、授权与系统代理
先选对芯片版本
macOS 的安装包分 Intel 与 Apple Silicon(M 系列)两种。点击屏幕左上角苹果菜单 →「关于本机」,芯片一栏写着 Apple M 开头就下载 Apple Silicon 版,写着 Intel 就下载 Intel 版。装错不会损坏系统,但要么无法启动,要么走转译层白白损失性能。下载页 macOS 区对两种版本做了并列标注。
安装与首次启动
下载得到 .dmg 磁盘镜像,双击打开,把应用图标拖进旁边的「应用程序」文件夹——macOS 的安装就是这一个拖动。首次启动时,系统可能提示应用来自身份不明的开发者或「已损坏」。前者在「系统设置 → 隐私与安全性」页面底部点「仍要打开」;后者是隔离属性作祟,打开终端执行一条命令移除即可:
xattr -d com.apple.quarantine /Applications/应用名称.app
把「应用名称.app」换成实际拖入的应用名。执行后再次双击启动就能正常打开。
导入订阅与系统代理授权
订阅导入的操作与 Windows 一致:订阅页粘贴链接、导入、激活。差别在系统代理:macOS 上首次打开「系统代理」开关时,客户端可能请求安装一个「帮助程序」,并要求输入开机密码——因为修改网络偏好设置需要更高权限。这次授权只需一次,同意后开关就能正常联动。生效范围可以在「系统设置 → 网络 → 当前网络 → 详细信息 → 代理」里核对,能看到 HTTP 与 HTTPS 代理指向 127.0.0.1。
平台特有问题
- TUN 授权:macOS 上开 TUN 同样依赖帮助程序或系统扩展授权,弹窗指向哪里就去哪里点允许;拒绝过一次的话,到「隐私与安全性」里找到对应条目重新放行。
- 代理设置残留:与 Windows 同理,客户端被强制退出后代理设置可能留在系统里。到网络详细信息的「代理」页取消勾选即可。
- ClashX Meta 用户:该项目已停止维护,配置思路仍可参考,但建议逐步迁移到持续更新的客户端。
Linux:软件包、桌面代理与终端代理
安装
Linux 桌面首选 Clash Verge Rev,FlClash 亦可,安装包见下载页 Linux 区。Debian/Ubuntu 系用 .deb 包,下载后在终端安装:
cd ~/Downloads
sudo apt install ./clash-verge.deb
用 apt 而不是 dpkg 的好处是依赖会被自动补齐。安装完成后可以从应用菜单启动,也可以在终端直接敲程序名。如果启动后窗口空白,多与桌面环境的 WebKit 组件版本有关,先把系统包整体更新一遍再试。
桌面环境的系统代理
客户端里的「系统代理」开关在主流桌面(GNOME、KDE)下通常能自动写入设置;若你的发行版没被自动覆盖,手动设置也只是几条命令。以 GNOME 为例:
gsettings set org.gnome.system.proxy mode 'manual'
gsettings set org.gnome.system.proxy.http host '127.0.0.1'
gsettings set org.gnome.system.proxy.http port 7890
gsettings set org.gnome.system.proxy.https host '127.0.0.1'
gsettings set org.gnome.system.proxy.https port 7890
端口以客户端设置页显示的混合端口为准,本文示例统一用 7890。恢复直连时把 mode 设回 'none'。
终端与命令行工具
桌面代理管不到终端。git、curl、包管理器要走代理,靠环境变量:
export http_proxy=http://127.0.0.1:7890
export https_proxy=http://127.0.0.1:7890
export all_proxy=socks5://127.0.0.1:7890
写在当前终端只对当前会话生效;想长期生效就追加到 ~/.bashrc 或 ~/.zshrc。混合端口(mixed-port)同时接受 HTTP 与 SOCKS5 请求,所以三个变量可以指向同一个端口,这也是它叫「混合」的原因,展开的解释见混合端口与局域网共享一文。
平台特有问题
- TUN 权限:创建虚拟网卡需要更高权限,客户端一般通过授权助手解决;弹出输入密码的窗口时同意即可,拒绝后 TUN 开关会立即弹回。
- 开机自启:优先用客户端设置里的自启选项;习惯 systemd 的用户也可以自建 user service,但注意桌面客户端依赖图形会话,starting too early 会启动失败。
- 浏览器例外:Firefox 默认使用自己的代理设置而非系统设置,需要在 Firefox 设置里选择「使用系统代理设置」。
Android:安装包架构与 VPN 授权
选对架构,装对包
Android 安装包按 CPU 架构分为 arm64 与 arm 等版本,近几年的手机几乎都是 arm64,优先下载 arm64 版;拿不准时选 universal 通用包,体积大一点但不会装错。首选 Clash Plus,Clash Meta for Android 与 FlClash 也在下载页 Android 区提供。下载 .apk 后,系统会提示「不允许安装未知应用」,按提示给浏览器或文件管理器授予「安装未知应用」的权限即可继续——这是 Android 对商店外安装的统一流程。
导入订阅
Android 客户端导入订阅有两条路:一是复制订阅链接后打开客户端,在配置页选「从 URL 导入」粘贴;二是部分服务商页面提供「一键导入」按钮,点击后系统询问用哪个应用打开,选择你装的客户端即可自动带入。导入成功后同样要点选激活那份配置——很多「导入了但连不上」的反馈,其实是配置躺在列表里没被选中。
VPN 授权与电池优化
Android 上的 Clash 客户端通过系统的 VpnService 接管流量,不需要 root。首次点击启动按钮时,系统弹出「连接请求」对话框,确认后状态栏会出现钥匙形图标,表示接管已生效。这一步等价于桌面端的 TUN,所以 Android 上没有单独的「系统代理」开关,启动即全局接管,分流交给规则完成。
更重要的是让它活下来:国产定制系统的省电策略非常激进,锁屏一段时间后可能直接杀掉后台,表现为「用着用着断了,打开 app 又好了」。逐项处理:在系统的电池设置里把客户端设为「不受限制」;在最近任务里给它上锁;厂商如有「自启动管理」,一并放行。
平台特有问题
- 分应用代理:客户端设置里一般有「访问控制」,可以指定哪些 app 走代理、哪些绕过。银行类 app 对代理敏感,加入绕过列表可以减少风控误伤。
- 与其他 VPN 冲突:Android 同一时刻只允许一个应用占用 VpnService,启动失败时先确认没有别的 VPN 类应用在运行。
- 私人 DNS:系统「私人 DNS」设为强制加密解析时,可能与客户端的 DNS 接管互相干扰,排查 DNS 问题时先把它改回自动。
iOS:App Store 获取与 VPN 配置
获取客户端
iOS 上推荐 Clash Plus,通过 App Store 安装,入口在下载页 iOS 区,应用官网是 clashplus.io。商店安装意味着更新由系统自动完成,不需要自己管安装包,这也是 iOS 一章比其他平台短的原因——最容易出错的环节被商店接管了。
导入订阅
打开应用,在配置或订阅页粘贴订阅链接导入,与其他平台一致。iOS 的剪贴板权限提示(「××想要粘贴来自××的内容」)点允许即可。导入后确认配置被激活,能在节点列表里看到分组与节点,再进行下一步。
VPN 配置授权与日常开关
首次点击连接时,iOS 会弹出「"Clash Plus"想添加 VPN 配置」的系统对话框,点「允许」并验证密码或面容——这一步是把应用登记进系统的 VPN 框架,只需做一次。之后状态栏出现 VPN 标志即代表接管生效。日常开关既可以在应用内操作,也可以到「设置 → VPN」里切换;两处状态是同步的。
使用注意
- 规则同样生效:iOS 上的接管方式类似 TUN,但分流依旧按配置里的规则走,国内流量直连不受影响,不必频繁开关。
- 切换配置后重连:更换或更新订阅后,断开再连接一次,确保新配置完整加载。
- 耗电感知:常驻 VPN 会带来少量额外耗电,属正常现象;若耗电异常,先检查是否有规则导致流量绕远路。
配置文件:读懂 YAML 里的每一段
订阅拉回来的就是一份 YAML 配置。日常你不需要手写它,但看得懂,排障时就能少走一半弯路。下面是一份骨架级的最小示例:
mixed-port: 7890 # 混合端口,同时接受 HTTP 与 SOCKS5
allow-lan: false # 是否允许局域网设备接入
mode: rule # 运行模式:rule / global / direct
log-level: info # 日志级别
dns:
enable: true
enhanced-mode: fake-ip
nameserver:
- https://223.5.5.5/dns-query
proxies: [] # 节点列表,由订阅填充
proxy-groups:
- name: 手动切换
type: select
proxies: [] # 分组成员,由订阅填充
rules:
- GEOIP,CN,DIRECT # 中国大陆 IP 直连
- MATCH,手动切换 # 其余流量交给分组
关键字段逐个说
- mixed-port:本机程序连接 Clash 的入口端口。系统代理里填的 127.0.0.1:7890,指的就是它。冲突时改成任意空闲端口,系统代理会随之联动。
- allow-lan:设为 true 后,同一局域网内的电视、游戏机可以把代理指到这台电脑,配合防火墙放行使用,完整做法见局域网共享代理一文。
- mode:rule 按规则分流,global 一切走代理,direct 全部直连。日常应默认停在 rule,三种模式的取舍见代理模式入门。
- dns:fake-ip 模式用虚拟 IP 加速解析流程,是目前的主流默认;遇到某些软件解析异常时,可尝试改为 redir-host 对照排查。
- proxy-groups:把节点组织成组。select 是手动选择,url-test 按测速自动选,fallback 主节点失效时顺位切换。你在客户端界面点的节点切换,本质就是在改 select 组的选中项。
- rules:自上而下逐条匹配,命中即停。DOMAIN-SUFFIX 按域名后缀、GEOIP 按 IP 归属地、MATCH 兜底。规则顺序错了,表现往往是「某网站明明该直连却走了代理」。
规则顺序为什么如此重要
规则表是"自上而下、命中即停"的,这意味着两条规则的先后顺序会直接改变结果。举个具体例子:如果你在最上面写了一条把某个大厂域名全部代理的规则,而下面才是"大陆 IP 直连"的 GEOIP 规则,那么这个大厂在国内的服务也会被绕出境,表现为访问变慢、甚至触发异地登录验证。反过来,如果把 GEOIP,CN,DIRECT 放在最前面,某些部署在境内节点上但你确实需要代理访问的域名,就会被提前判为直连。
因此写规则的常规顺序是:先放最精确的例外(单个域名),再放规则集或域名后缀这类成片的规则,然后是按 IP 归属地的粗判,最后用 MATCH 兜底。订阅自带的规则通常已经按这个层次排好,你自己加规则时把它插到对应层次里,而不是一律往最上面堆。改完之后不要靠感觉判断,打开连接记录看一下:每条连接后面都写着它命中的规则名和最终走向,这是验证规则是否按预期工作的唯一可靠方式。
三种模式各自适合什么时候
rule 模式是日常唯一推荐的默认值,它让配置里的规则决定每条流量的走向,国内直连、境外代理,既省节点流量又避免内网服务被绕远。global 模式把所有流量无条件交给当前选中的节点,只在两种场合有用:一是怀疑规则写错了,用它作为对照实验——如果 global 下能访问、rule 下不行,问题就锁定在规则而非节点;二是临时访问某个被规则误判为直连的站点。direct 模式让所有流量直连,相当于软关闭代理但保留客户端运行,适合确认"某个问题在不走代理时是否依然存在"。
需要提醒的是,长期停在 global 有实际代价:国内的图片、视频、下载流量全部计入节点用量,速度反而更慢,部分需要本地 IP 的服务(网银、运营商页面、公司内网)会直接失败。所以用完对照实验,记得把模式切回 rule。
手工修改与订阅更新的关系
直接编辑订阅生成的配置文件要小心:下次订阅更新会整体覆盖,你的改动随之丢失。想长期自定义,优先用客户端提供的「覆写/Override」机制,或在服务商的订阅转换环节加入自定义规则——让修改活在订阅之外,而不是和它抢同一份文件。
GEOIP 规则依赖本地的 GeoIP 数据库,客户端设置里通常有「更新 GeoData」按钮。发现地域判断明显不对(大陆网站被判成境外)时,先更新数据库再怀疑规则。
验证、日常维护与排障入口
三步确认一切正常
- 看节点:代理页能列出节点分组,对分组执行延迟测试,多数节点有数值返回。全部超时先怀疑订阅或本地网络,而不是急着换客户端。
- 看直连:访问一个国内网站,应该秒开且走 DIRECT——在客户端的连接记录里能看到匹配的规则名。直连都慢,问题在本地网络。
- 看代理:访问一个需要代理的网站,连接记录里应显示命中某条规则并指向你选中的节点。到这一步都对,链路就是通的。
日常维护只有三件事
第一,定期更新订阅:服务商调整节点后,旧配置里的节点会陆续失效,客户端一般支持设定自动更新间隔,打开它。第二,偶尔更新 GeoIP 数据库,保证地域规则判断准确。第三,跟随客户端更新:新版本往往同步了内核修复,更新前记得订阅链接已保存好——它是唯一需要备份的东西,配置本身随时可以重新拉取。