Documentation

Clash 全平台安装配置大全

Windows、macOS、Android、iOS、Linux,五个平台各一章。每章按同一条主线展开:下载、安装、导入订阅、系统代理与 TUN,再补上该平台特有的坑。本页是系统查阅手册,适合遇到具体问题时按目录定位;如果只想尽快完成第一次连接,先走入门指南的快速上手主线,再回到这里查细节。

一、通用准备工作

不论在哪个平台,部署一套可用的 Clash 环境都可以拆成四步:选择并下载客户端、导入订阅、选择代理模式、开启代理并验证。平台之间的差别集中在安装方式与系统接管流量的机制上,主线是一致的。这一章先把跨平台通用的三件事讲清楚,后面各平台章节不再重复。

客户端怎么选

本站下载页收录的客户端按平台整理如下,全平台首选 Clash Plus——覆盖面最广、界面统一,换设备时不用重新学一套操作。备选客户端各有侧重,详细的功能差异见横向评测

平台首选备选下载入口
WindowsClash PlusClash Verge Rev、FlClash、Clash NyanpasuWindows 下载
macOSClash PlusClash Verge Rev、FlClashmacOS 下载
AndroidClash PlusClash Meta for Android、FlClash、SurfboardAndroid 下载
iOSClash Plus(App Store)iOS 下载
LinuxClash Verge RevFlClash、mihomo 内核Linux 下载

Clash for Windows 与 ClashX Meta 均已停止维护,下载页仍保留归档入口,但新装设备不建议选它们:内核版本停在旧版,新的规则类型与协议特性无法使用。

准备一条订阅链接

订阅链接是一个 https 地址,由代理服务商在用户面板提供,客户端定期访问它来拉取节点列表与分流配置。开始安装前,把这条链接完整复制到剪贴板。注意区分两种东西:订阅链接指向一份完整配置,导入后会出现节点分组;而以协议名开头的单节点分享文本只描述一个节点,导入方式不同,不能混用。

订阅链接等同于账户凭据,任何拿到链接的人都能使用其中的节点流量。不要发到公开群组、不要贴进截图,泄露后应在服务商面板重置。

先弄清三个概念

系统代理与 TUN 模式。系统代理是把「HTTP/SOCKS 代理地址指向本机某端口」写进操作系统的网络设置,浏览器与大部分遵循系统设置的应用会跟随;但命令行工具、部分游戏与不读系统设置的程序会绕开它。TUN 模式则创建一块虚拟网卡,在网络层接管全部流量,覆盖面完整,代价是需要更高的系统权限。日常浏览用系统代理即可,需要全量接管时再开 TUN。

规则、全局与直连。规则模式按配置文件里的分流规则逐条匹配,命中即按对应策略走代理或直连,是日常推荐模式;全局模式所有流量走同一个代理出口,适合规则失效时临时应急;直连模式不代理任何流量,用于对照排查。三种模式在所有客户端里都能一键切换。

本地端口。Clash 默认在本机 7890 端口提供混合代理入口(HTTP 与 SOCKS 同端口),即配置里的 mixed-port。系统代理与手动指定代理的工具,填的都是 127.0.0.1:7890。如果这个端口被其他软件占用,客户端会启动失败或代理不通,改端口的方法见第八章

二、Windows

下载与安装

前往下载页 Windows 区获取安装包,首选 Clash Plus,x64 架构覆盖绝大多数设备。双击安装包后,Windows 的 SmartScreen 可能弹出「已保护你的电脑」提示——这是系统对未大规模分发的安装包的默认拦截,点「更多信息」再点「仍要运行」即可继续。安装路径保持默认即可,自定义到含中文或空格的深层目录偶尔会引发内核启动异常,没有必要冒这个险。

导入订阅

首次启动后进入订阅(或「配置」)页面,把准备好的订阅链接粘贴进输入框,点导入。客户端会下载配置并解析,成功的标志是代理页面出现节点分组与节点列表。如果导入后列表为空或报错,先用浏览器直接打开订阅链接确认它能返回内容,再按订阅失效排查清单逐项检查。

系统代理与 TUN

在客户端里打开「系统代理」开关,Clash 会把 127.0.0.1:7890 写进 Windows 的 Internet 代理设置,浏览器立即生效。开启 TUN 模式则多一个前置条件:虚拟网卡的创建需要管理员权限。Clash Verge Rev 的做法是先在设置里安装「服务模式」——装好一个随系统运行的后台服务后,TUN 开关才可用,之后每次开启不再需要手动提权;Clash Plus 会在首次开启 TUN 时请求一次授权。TUN 开启后,系统代理开关可以关掉,两者不必同时开。

Windows 特有问题

  • 端口冲突。迅雷、开发调试工具等常占用 7890 附近端口。客户端日志出现 bind: address already in use 字样时,在配置或客户端设置里把 mixed-port 改成 7897 等空闲端口。
  • 开机自启。在客户端设置里开启「开机启动」即可;若同时希望开机就进入 TUN 模式,必须先装好服务模式,否则自启后 TUN 会因为权限不足静默失败。
  • 安全软件误报。代理内核的工作方式是转发网络流量,个别杀毒软件会将其标记为可疑并隔离内核文件,表现为客户端反复提示内核启动失败。把安装目录加入信任区即可,内核 mihomo 的源代码公开可查。
  • UWP 应用不走代理。商店应用默认被系统禁止访问本机回环地址,因此连不上 127.0.0.1 的代理端口。部分客户端提供「UWP 回环豁免」工具,勾选需要代理的商店应用即可;或直接改用 TUN 模式绕开限制。

三、macOS

选对芯片架构

macOS 安装包分 Apple Silicon(M 系列芯片)与 Intel 两个版本。不确定自己是哪种时,点左上角苹果菜单→「关于本机」,「芯片」一栏写 Apple M 开头的选 Apple Silicon 包,写 Intel 的选 Intel 包。下载页 macOS 区为两种架构分别提供按钮,装错架构的直接后果是无法启动或转译运行性能下降。

首次打开与 Gatekeeper

从浏览器下载的 dmg 安装后首次打开,macOS 可能提示「无法打开,因为 Apple 无法检查其是否包含恶意软件」。两种处理方式:在访达中右键点击应用图标选「打开」,弹窗里再点一次「打开」;或前往系统设置→隐私与安全性,在页面底部找到被拦截的应用,点「仍要打开」。若提示「应用已损坏」,是下载文件被打上了隔离标记,在终端执行一条命令移除即可(路径按实际应用名替换):

xattr -dr com.apple.quarantine /Applications/Clash\ Plus.app

导入订阅与系统代理

订阅导入流程与 Windows 一致:订阅页粘贴链接、导入、确认节点列表出现。打开「系统代理」后,客户端通过系统接口把 HTTP、HTTPS 与 SOCKS 代理写入当前活跃网络服务(Wi-Fi 或有线),正常退出时会自动恢复。如果客户端异常崩溃,代理设置可能残留导致断网,手动清理位置在系统设置→网络→当前网络「详细信息」→「代理」,取消勾选各代理协议即可。

TUN、开机自启与其他注意点

macOS 上开启 TUN 需要系统授权:客户端会引导安装一个特权组件或系统扩展,期间要求输入管理员密码,属于正常流程,授权一次后长期有效。开机自启在客户端设置里开启后,会注册为系统「登录项」,可在系统设置→通用→登录项中确认。另外注意两点:系统代理只作用于当前网络服务,换用另一块网卡后需要确认开关状态;ClashX Meta 已停止维护,仅建议无法运行新客户端的老设备使用,新机器一律选 Clash Plus 或 Clash Verge Rev。

macOS 每次系统大版本升级后,建议重新打开一次客户端确认特权组件仍然有效;若 TUN 无法启动,重装一次服务组件通常即可恢复。

四、Android

下载与安装

下载页 Android 区获取 APK。近几年的主流机型选 arm64 版本即可;老设备或电视盒子可能是 armv7 架构,装 arm64 包会提示不兼容,换 arm 版本。首次安装浏览器下载的 APK 时,系统会要求授予「允许安装未知应用」权限,按提示为浏览器或文件管理器开启一次即可,这是 Android 对商店外安装的标准流程。

导入订阅

Android 客户端普遍支持三种导入方式:直接粘贴订阅链接、扫描二维码、从剪贴板自动识别。在配置页新建订阅、粘贴链接、保存并更新,列表出现节点分组即成功。移动网络下首次更新订阅偶尔超时,切换到 Wi-Fi 重试一次再下结论。

VPN 工作方式与分应用代理

Android 客户端通过系统的 VpnService 接口接管流量,不需要 root。首次点击连接时,系统弹出「连接请求」授权窗,确认后状态栏出现钥匙图标,表示虚拟专用网通道已建立,效果等同于桌面端的 TUN 模式——所有应用流量默认经过 Clash 分流。需要更细粒度控制时,用「分应用代理」功能:在允许列表模式下只有勾选的应用走代理,排除列表模式下勾选的应用直连。银行、支付类应用建议加入排除列表,避免风控误判。

后台保活

Android 上最常见的问题不是配置,而是进程被杀:锁屏一段时间后代理断开、通知消失。逐项处理:在系统设置的电池选项里把客户端设为「不受限制」或加入电池优化白名单;国产定制系统(MIUI、EMUI、ColorOS 等)还需在自启动管理里放行,并在最近任务卡片上锁定应用。做完这三步,绝大多数机型可以稳定常驻。

判断是否被系统杀后台的简单办法:断联后下拉通知栏,若客户端常驻通知也一并消失,基本可以确定是系统回收了进程,按上面三步处理,而不是去改配置。

五、iOS

从 App Store 安装

iOS 平台通过 App Store 安装 Clash Plus,搜索或从下载页 iOS 区的商店链接直达。应用的官方网站是 clashplus.io,版本更新说明与功能文档以官网为准。iPhone 与 iPad 使用同一个应用,界面自适应。

导入订阅与首次连接

打开应用后在订阅页粘贴链接导入,与其他平台一致。第一次点击连接时,iOS 会弹出「要求添加 VPN 配置」的系统窗口——这是 NetworkExtension 框架的标准授权流程,点「允许」并验证一次密码或面容后,系统设置里会出现对应的 VPN 配置项。之后的连接与断开都在应用内一键完成,也可以在系统设置→VPN 里查看当前状态。

iOS 特有注意点

  • 配置规模。iOS 给网络扩展进程的内存配额有限,节点数量极多、规则集庞大的订阅可能出现加载缓慢。遇到时优先精简订阅或让服务商提供轻量版配置,而不是反复重装。
  • 网络切换。在 Wi-Fi 与蜂窝网络之间切换时,通道会自动重建,期间有一两秒的短暂中断,属于正常行为。
  • 按需连接。应用内可开启开机与联网后自动连接,依赖系统的按需规则实现,开启后无需每次手动打开应用。

六、Linux 与服务器

桌面发行版安装

桌面 Linux 首选 Clash Verge Rev,下载页 Linux 区提供 deb 与 rpm 两种格式;FlClash 作为备选同样可用。Debian/Ubuntu 系用 apt 安装本地包会自动处理依赖:

sudo apt install ./clash-verge-rev_amd64.deb

Fedora 系对应 sudo dnf install ./clash-verge-rev_x86_64.rpm。安装完成后从应用菜单启动,订阅导入流程与其他桌面平台一致。部分发行版启用了严格的 AppArmor 或 SELinux 策略,首次运行内核创建 TUN 设备时可能被安全模块拦截,日志里会出现 permission denied 但权限看起来又没问题的情况;这时先临时把对应模块设为宽容模式确认是不是它在拦截,确认后再为内核二进制单独写一条放行策略,而不是长期关闭整个安全模块。

如果你的桌面环境同时装了多个网络管理组件(例如 NetworkManager 与 systemd-networkd 并存),客户端写入的系统代理有时只对其中一个生效,表现为浏览器走了代理、系统托盘的网络设置里却看不到。遇到这种不一致,优先以环境变量方式为具体应用指定代理,避免依赖图形化的全局开关。

系统代理与环境变量

GNOME 与 KDE 都有图形化的系统代理设置,客户端的「系统代理」开关会写入其中,浏览器与大部分桌面应用跟随生效。但 Linux 下大量工作发生在终端,而终端程序读的是环境变量,不是桌面设置。临时让当前终端会话走代理:

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

需要长期生效就把这几行写进 shell 的配置文件,或封装成 alias 按需开关。git、curl、wget 等工具都遵循这组变量;个别工具(如部分容器运行时)有自己的代理配置入口,需单独设置。

TUN 权限

Linux 上创建 TUN 设备需要 CAP_NET_ADMIN 能力。图形客户端一般提供授权按钮,底层通过 pkexec 提权完成;如果直接运行内核二进制,可以用 setcap 一次性赋权,之后无需 root 即可开 TUN:

sudo setcap 'cap_net_admin,cap_net_bind_service=+ep' /usr/local/bin/mihomo

无桌面环境:直接跑 mihomo 内核

服务器、软路由与 NAS 上没有图形界面,直接运行 mihomo 内核是标准做法,下载页内核区提供各架构的二进制。约定俗成的目录布局是把配置放在 /etc/mihomo/config.yaml,内核二进制放 /usr/local/bin/mihomo,然后写一个 systemd 服务让它随系统运行:

[Unit]
Description=mihomo daemon
After=network.target

[Service]
Type=simple
ExecStart=/usr/local/bin/mihomo -d /etc/mihomo
Restart=on-failure

[Install]
WantedBy=multi-user.target

保存为 /etc/systemd/system/mihomo.service 后启用:

sudo systemctl daemon-reload
sudo systemctl enable --now mihomo

之后用 systemctl status mihomo 查看运行状态,journalctl -u mihomo -f 追日志。首次启动内核会自动下载 GeoIP 与 GeoSite 数据库,服务器网络不通外网时需要手动把数据文件放进配置目录,否则规则匹配无法工作。

七、验证与日常维护

确认代理真的生效

开启代理后不要凭感觉判断,用两个证据交叉确认。第一,浏览器访问任意 IP 查询站点,出口 IP 显示为节点所在地区即说明浏览器流量已走代理。第二,命令行直接对代理端口发起一次请求,观察是否能拿到响应头:

curl -x http://127.0.0.1:7890 -I https://www.example.com

返回 HTTP/2 200 之类的状态行说明代理链路通畅。桌面客户端的连接面板也值得看一眼:里面实时列出每条连接命中的规则与出口策略,是判断「某个应用到底走没走代理」的最直接证据。更完整的首次连接验证流程,见首次连接验证指南

订阅更新与 GeoIP 数据

节点信息会随服务商调整而变化,订阅需要定期更新——各客户端都支持设定自动更新间隔,一般 24 小时一次足够。另一类需要维护的数据是 GeoIP 与 GeoSite 数据库,规则里的 GEOIP,CNGEOSITE 类条目全依赖它们;数据库过旧会导致部分域名与 IP 归类错误,表现为个别网站分流异常。客户端设置里通常有「更新 GeoIP 数据库」入口,几个月手动点一次即可。

日志与排错顺序

出问题时把日志级别从 info 临时调到 debug,信息量会大很多。推荐的排错顺序是三层递进:先在节点列表做延迟测试确认节点本身可用;再看连接面板确认目标域名命中了预期规则;最后怀疑 DNS——把浏览器无痕窗口打开重试,排除本地缓存干扰。跳着查往往会把简单问题复杂化。测速数字怎么读、节点怎么挑,可参考节点挑选指南

关于延迟测试本身,有一点值得澄清:客户端里显示的延迟毫秒数,是它向一个测试地址发起请求、拿到响应所花的往返时间,反映的是「到那个测试目标」的链路状况,不等于你访问任意网站都有同样的速度。它也只衡量延迟,不衡量带宽——一个延迟很低的节点未必吞吐量大,看视频卡顿而网页很快就是典型表现。所以挑节点时不要只盯着最小的那个数字,延迟接近的几个节点里,优先选倍率低、负载轻的;真正判断能不能流畅看片,还得实际跑一段流量。频繁全量测速也不是好习惯,它本身会产生一批连接、给节点增加负担,把自动测速间隔设成几分钟一次就够了。

八、配置常见问题

配置文件长什么样

Clash 的配置是一份 YAML 文件,订阅拉取到的就是它。日常使用不需要手写,但读懂关键字段对排错帮助很大。一个精简的骨架:

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

dns:
  enable: true
  enhanced-mode: fake-ip
  fake-ip-range: 198.18.0.1/16
  nameserver:
    - 223.5.5.5
    - 119.29.29.29

mixed-port 是本地混合代理端口;allow-lan 决定局域网内其他设备能否借用本机代理;mode 对应规则/全局/直连三种模式;dns 段控制域名解析行为。订阅配置在此之外还会包含 proxies(节点)、proxy-groups(策略组)与 rules(分流规则)三大段。

读懂策略组

策略组是 Clash 里最容易被忽略、却最能决定使用体验的一段。一条分流规则命中后,并不直接指向某个具体节点,而是指向一个策略组,再由策略组决定这条流量实际走哪个节点。常见的策略组有三类:手动选择(select)让你在客户端界面里点选当前出口,适合按需切换地区;自动测速(url-test)按固定间隔测试组内各节点延迟,自动选最快的一个,适合追求稳定低延迟又不想手动干预;故障转移(fallback)按顺序使用节点,当前节点不可用时才切到下一个,适合把主力节点排在前面、备用节点垫后。理解了这层间接关系,你就能明白为什么「切换节点」有时要在策略组里操作而不是在节点列表里,以及为什么同一条规则在不同时间会走不同节点。

进阶配置里还会出现策略组嵌套:一个 select 组的成员是另外几个 url-test 组,分别对应不同地区的自动优选。这样界面上你只需在「香港/日本/美国」之间做一次地区选择,组内节点的优选交给客户端自动完成,兼顾了可控性与省心。修改策略组结构时同样要注意顺序与命名一致——规则里引用的策略组名必须和 proxy-groups 段里定义的名字逐字一致,差一个空格都会导致该规则找不到出口而报错。

多份配置如何管理

不少人手里不止一条订阅,或者一条订阅之外还想叠加自己的规则。客户端普遍支持保存多份配置并一键切换,但同一时刻只有一份处于激活状态。管理上有两个实用习惯:一是给每份配置起有意义的名字并标注来源与更新日期,时间一长很容易忘记哪份是哪份;二是自定义规则尽量不要直接改在订阅拉取的配置里,因为下次更新订阅会把你的改动整个覆盖。更稳妥的做法是使用客户端的「覆写」或「配置合并」功能——把订阅作为基础层,自己的规则、DNS 偏好等放在独立的覆写层,更新订阅时覆写层不受影响,始终生效。

YAML 解析报错

手动改过配置后客户端报「配置解析失败」,九成是 YAML 格式问题,按三条检查:缩进必须用空格(约定两个),混入 Tab 立即报错;键名冒号后必须有一个空格;值里包含冒号、井号等特殊字符时要用引号包住整个值。改配置前先备份原文件,是成本最低的保险。

Fake-IP 相关异常

配置里 enhanced-mode: fake-ip 表示 DNS 使用 Fake-IP 模式:客户端先返回一个保留网段的虚假地址加快连接建立,真实解析在代理链路上完成。它能减少 DNS 泄露、加快首包,但个别依赖真实 IP 的场景会异常——局域网设备发现、部分游戏平台登录等,需要把相关域名加进 fake-ip-filter 列表。原理与完整的适用场景清单,见Fake-IP 模式详解

自定义规则不生效

在订阅基础上追加自己的分流规则时,记住一条原则:规则自上而下匹配,命中即停。自定义条目如果放在了更宽泛的通配规则之后,永远轮不到它生效——精确的域名规则要排在 GEOIPMATCH 这类兜底规则之前。各规则类型的语法与排序建议,见规则语法与优先级解析

订阅更新失败

点更新后转圈报错,按四层排查:本机网络是否通畅、订阅链接在浏览器里能否直接打开、返回内容是否为合法配置格式、客户端是否设置了「通过代理更新订阅」却处于断连状态。逐项自查的完整清单已整理成文:订阅失效排查步骤。更多零散问题,常见问题页按基础认知、安装配置、使用技巧与故障排查四类持续收录。


本页随客户端生态变化持续修订。安装包一律从下载页获取;第一次动手,配合入门指南按步骤走完即可。