docs / all-platform-setup.md

Clash 全平台安装配置大全

Windows、macOS、Android、iOS、Linux 每平台一章,按「下载 → 安装 → 导入订阅 → 系统代理 / TUN → 平台特有坑」的顺序写全。本页是查阅手册,篇幅长、细节多;如果只想在十分钟内跑起来,先看入门指南的主线步骤,卡住了再回本页对应章节找答案。安装包统一从获取客户端页面取,短问答见常见问题

01通用准备工作

五个平台的操作细节不同,但开工前要备齐的东西完全一样。这一章把所有平台共用的前置条件一次讲完,后面每个平台章节默认你已经读过这里。

准备一条订阅链接

Clash 客户端本身只是一个"执行者":它读取配置文件,按配置里的节点和规则转发流量。节点信息来自订阅链接——一条 https:// 开头的 URL,由你的服务提供方签发,客户端定期拉取它来更新节点列表。开始安装前先确认三件事:第一,链接能在浏览器里直接打开,返回的是一段文本(通常是 YAML 或 Base64 编码内容)而不是 404 或登录页;第二,链接类型是 Clash 格式订阅,如果提供方只给了 ss://vmess:// 这类单条分享链接,需要先经过订阅转换才能被 Clash 客户端识别;第三,链接没过期。订阅返回内容异常的判断方法在订阅解析失败排查一文里有逐步说明。

注意:订阅链接等同于账户凭据。不要贴进公开的截图、issue 或聊天群,泄露后任何人都能用它拉取你的节点。怀疑泄露时到服务提供方后台重置链接。

选客户端:各平台首推

Clash 生态的 GUI 客户端有多个,内核一致、界面和附加功能不同。本站全平台首推 Clash Plus:五端可用、订阅管理和 TUN 开关都做在图形界面里,iOS 端直接从 App Store 安装。桌面端的备选是 Clash Verge Rev(Linux 上为首选)和 FlClash。完整对照如下:

平台首推备选下载入口
WindowsClash PlusClash Verge Rev、FlClash、Clash Nyanpasudownload.html#windows
macOSClash PlusClash Verge Rev、FlClashdownload.html#macos
AndroidClash PlusClash Meta for Android、FlClash、Surfboarddownload.html#android
iOSClash Plus(App Store)download.html#ios
LinuxClash Verge RevFlClash、Mihomo 内核download.html#linux

已停止维护的 Clash for Windows 和 ClashX Meta 在下载页保留归档入口,老用户迁移前可以继续用,新装不建议选。

四个必须先认识的名词

  • 混合端口(mixed-port):客户端在本机监听的代理端口,默认 7890,同时接受 HTTP 与 SOCKS5 协议。系统代理和手动配置代理的软件都指向它。
  • 系统代理:操作系统级的代理设置项。开启后,遵守该设置的应用(浏览器、多数桌面软件)会把流量交给 127.0.0.1:7890;不读系统代理的程序(部分命令行工具、游戏)不受影响。
  • TUN 模式:客户端创建一块虚拟网卡,在网络层接管全部出站流量,覆盖不走系统代理的程序。需要管理员/特权授权。两种机制的原理差异见TUN 模式与系统代理对比
  • 策略组与规则:配置文件里决定"哪类流量走哪个节点"的部分,订阅通常已内置一套,新手不需要改。

更多名词解释集中在术语手册,正文里遇到陌生词可以随时跳过去查。

02Windows 安装配置

下载与安装

下载页 Windows 区获取 Clash Plus 安装包(.exe)。当前主流的 x64 机器直接下载默认包即可;ARM 设备(如 Snapdragon 笔记本)先确认包名里的架构标注。运行安装程序时,Windows SmartScreen 可能弹出"Windows 已保护你的电脑"——这是系统对新发布安装包的通用提示,点「更多信息 → 仍要运行」继续。安装向导按默认路径走完即可,安装结束后客户端会出现在开始菜单,首次启动后常驻在任务栏右下角的托盘区,而不是任务栏本体,找不到窗口时先点托盘小箭头展开隐藏图标。

导入订阅

打开主窗口,进入「配置」(Profiles)页,把订阅链接粘贴进 URL 输入框,点导入。客户端会下载订阅内容并生成一份配置文件,列表里出现一张新的配置卡片,点选它设为当前配置。切到「代理」页,能看到策略组和节点列表,说明订阅解析成功;列表为空或报错,按订阅排查文逐项检查。界面各区块的功能划分见客户端界面速览

系统代理与 TUN

回到主界面打开「系统代理」开关,客户端会把 127.0.0.1:7890 写入 Windows 的 Internet 选项,浏览器流量立即生效。需要接管命令行工具、UWP 应用之外的全局流量时,改用 TUN 模式:首次开启会请求管理员权限安装虚拟网卡服务(部分客户端叫"服务模式",需先在设置里安装系统服务再开 TUN)。开启后在「设置 → 网络和 Internet → 高级网络设置」里能看到一块新的网络适配器,即 TUN 虚拟网卡。系统代理与 TUN 二选一即可,同时开不会更快。

平台特有坑

  • 端口被占用:启动报 bind: address already in use,说明 7890 被其他程序(常见是另一个代理客户端的残留进程)占着。定位方法:
netstat -ano | findstr :7890
tasklist /FI "PID eq <上一步查到的PID>"

结束占用进程,或在客户端设置里把混合端口改成 7891 等空闲端口。完整步骤见端口冲突排查文

  • UWP 应用不走代理:商店应用默认被系统隔离在回环地址之外,即使开了系统代理也连不上 127.0.0.1。用 TUN 模式绕开,或用系统自带的 CheckNetIsolation 工具给单个应用放行回环。
  • 安全软件拦截虚拟网卡:部分安全软件会阻止 TUN 驱动安装或删除服务文件。安装服务失败时,先在安全软件里把客户端安装目录加入信任区,再重试。
  • 开机自启没生效:在客户端设置里开启自启后,还要确认 Windows「任务管理器 → 启动应用」里对应项是"已启用"状态,部分优化软件会把它禁掉。

03macOS 安装配置

下载:先分清芯片架构

macOS 安装包分 Apple Silicon(M 系列芯片)与 Intel 两个版本,装错架构要么打不开要么走转译层性能打折。确认方法:点左上角苹果菜单「关于本机」,芯片一栏写"Apple M…"就下 arm64 包,写"Intel"就下 x64 包;终端里跑 uname -m,输出 arm64x86_64 也能判断。到下载页 macOS 区按架构取 Clash Plus 的 .dmg

安装与首次启动放行

双击挂载 dmg,把应用图标拖进 Applications 文件夹。首次打开时 Gatekeeper 可能提示"无法打开,因为它来自身份不明的开发者"或"已损坏":前者到「系统设置 → 隐私与安全性」页面底部点「仍要打开」;后者是隔离属性所致,终端执行一次即可:

xattr -dr com.apple.quarantine "/Applications/<客户端名>.app"

启动成功后,客户端图标出现在屏幕顶部菜单栏而不是 Dock——这是 macOS 端 Clash 客户端的通用形态,主窗口从菜单栏图标点开。

导入订阅与系统代理

订阅导入流程与 Windows 一致:配置页粘贴 URL、下载、选中。开启「系统代理」时,客户端会把代理写入当前网络服务(Wi-Fi 或以太网)的代理设置,首次操作会弹系统授权框,要求输入登录密码或 Touch ID——这是修改网络设置的正常授权,必须允许,否则开关会自动弹回。验证方法:「系统设置 → 网络 → Wi-Fi → 详细信息 → 代理」里,Web 代理(HTTP)和安全 Web 代理(HTTPS)应指向 127.0.0.1:7890

TUN 模式

macOS 上开启 TUN 同样需要授权:客户端会请求安装特权助手或系统扩展,按提示在「隐私与安全性」里允许。开启后 ifconfig 能看到一块 utun 开头的接口。终端工具、不读系统代理的 App 此后都会被接管。

平台特有坑

  • 代理只写进了一个网络服务:系统代理是按网络服务(Wi-Fi、以太网、USB 网卡)分别存的。切换了网络接口后发现代理"失效",通常是当前接口没有被写入,重开一次系统代理开关即可。
  • 端口占用:macOS 下定位命令是 lsof -nP -iTCP:7890 -sTCP:LISTEN,输出里能看到占用进程名与 PID。
  • 退出后代理残留:客户端异常退出可能来不及还原系统代理,表现为断网。到网络设置的代理页手动取消勾选,或重开客户端再正常关闭一次。
  • 老用户从 ClashX Meta 迁移:ClashX Meta 已停止维护,下载页保留归档;迁移到 Clash Plus 时订阅链接直接重新导入即可,不需要搬配置文件。

04Android 安装配置

下载:选对 ABI

Android 安装包(.apk)按 CPU 架构分包,常见两种:arm64-v8a 对应近几年绝大多数手机,armeabi-v7a 对应老旧 32 位设备。拿不准就先装 arm64 包,提示"未安装应用"或闪退再换 v7a。到下载页 Android 区取 Clash Plus;偏好精简界面可选 Surfboard,想要与桌面端一致体验可选 FlClash。

安装与授权

浏览器直接下载 apk 后点击安装,系统会提示"出于安全考虑,已禁止安装未知来源应用",按提示进入设置,给当前浏览器(或文件管理器)授予"安装未知应用"权限,返回后继续安装。部分厂商系统(MIUI、ColorOS 等)会追加一次风险确认,选择继续即可。

导入订阅

打开客户端,进入配置/Profiles 页,新建配置并选择"从 URL 导入",粘贴订阅链接保存。客户端拉取成功后列表出现配置项,勾选启用。部分客户端支持从剪贴板自动识别订阅链接,复制链接后打开 App 会直接弹导入确认。

VPN 通道:Android 的"TUN"

Android 上没有桌面式的系统代理开关,客户端通过系统 VpnService 接口建立本地 VPN 通道接管流量,效果等同于桌面端的 TUN,不需要 root。首次点击连接按钮时,系统弹出"连接请求"对话框,必须点允许;状态栏随后出现钥匙形 VPN 图标,表示接管生效。注意这个"VPN"只是本机流量通道,数据仍由 Clash 内核按规则处理。

平台特有坑

  • 后台被杀:国产 ROM 的省电策略是头号问题——锁屏一段时间后代理断开、通知栏图标消失,就是客户端进程被系统回收了。处理:在系统设置里把客户端的电池策略改为"无限制/不优化",并在最近任务卡片上锁定它;MIUI 还需在"自启动管理"里放行。
  • 分应用代理:客户端设置里的 Access Control/分应用代理可以指定只有白名单应用走 VPN,银行类 App 检测到 VPN 拒绝运行时,把它排除在外即可。
  • 与其他 VPN 冲突:Android 同一时间只允许一个 VpnService 生效,开启 Clash 连接会自动断开其他 VPN 类应用,属正常行为。
  • 订阅在移动网络下更新失败:部分订阅域名在移动网络下解析异常,切到 Wi-Fi 或先连接代理再更新订阅。

05iOS 安装配置

从 App Store 安装

iOS 端首推 Clash Plus,直接在 App Store 搜索安装,或从下载页 iOS 区点击商店链接跳转。官网为 clashplus.io,应用功能说明和更新记录以商店详情页为准。iOS 的应用分发走系统商店,安装流程没有额外授权步骤,和装普通 App 一样。

导入订阅

打开 App,进入配置页,选择"通过 URL 添加",粘贴订阅链接确认。如果服务提供方的页面提供"一键导入 Clash"按钮,在 iOS 的 Safari 里点击它会直接唤起 App 完成导入,比手动粘贴更省事。导入后在节点列表里确认策略组已加载。

首次启用 VPN 配置

iOS 与 Android 类似,通过系统 Network Extension 建立 VPN 通道接管流量。首次点击连接时,系统弹出"'Clash Plus'想添加 VPN 配置"的对话框,点允许并通过 Face ID/Touch ID 或锁屏密码验证。此后「设置 → 通用 → VPN 与设备管理 → VPN」里会出现对应条目,连接状态与 App 内开关联动,状态栏出现 VPN 角标即为生效。

平台特有坑

  • 切换节点后个别 App 不生效:部分应用会复用旧连接,切换节点或规则后表现为"还走老路线"。彻底关闭该 App 再打开,或断开重连一次 VPN 即可。
  • VPN 开关自动弹回:通常是订阅里没有可用节点或配置解析失败,先到 App 内日志页看报错,再按常见问题里订阅相关条目处理。
  • 低电量模式下断连:系统在低电量模式可能回收后台网络扩展,重新打开 App 点一次连接即可恢复。
  • 多设备同步:同一 Apple 账户的 iPhone/iPad 各自独立安装配置,订阅链接需要分别导入,VPN 配置不随 iCloud 同步。

06Linux 安装配置

GUI 客户端安装

Linux 桌面首选 Clash Verge Rev,提供 .deb.rpm 包;备选 FlClash。到下载页 Linux 区按发行版取包后本地安装:

# Debian / Ubuntu 系
sudo apt install ./clash-verge-rev_amd64.deb

# Fedora / openSUSE 系
sudo rpm -i clash-verge-rev.x86_64.rpm

apt install ./包名 而不是 dpkg -i 的好处是依赖会被一并解决。安装后从应用菜单启动,订阅导入流程与其他桌面端一致:配置页粘贴 URL、下载、选中激活。

系统代理:桌面环境差异

GNOME/KDE 桌面下,客户端的"系统代理"开关会写入桌面环境的代理设置,Firefox、Chromium 等遵守该设置的应用即刻生效。GNOME 下可以用 gsettings 验证:

gsettings get org.gnome.system.proxy mode
# 输出 'manual' 即已接管

大量 Linux 程序(尤其命令行工具)不读桌面代理,只认环境变量,临时给当前 shell 挂代理:

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 可持久化,但注意它会影响所有终端会话,不用时记得 unset

TUN 模式与权限

创建 TUN 虚拟网卡需要 CAP_NET_ADMIN 能力。Clash Verge Rev 通过内置服务方式申请特权,在设置里安装服务后即可开启 TUN;手动运行内核的场景则给二进制授权:

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

开启后 ip addr 能看到新的 utun/Meta 接口,路由表由内核的 auto-route 自动维护。

无桌面环境:Mihomo 内核 + systemd

服务器和软路由不需要 GUI,直接跑 Mihomo 内核。从下载页内核区取对应架构的压缩包,解压后把二进制放到 /usr/local/bin/mihomo,配置文件放 /etc/mihomo/config.yaml(把订阅返回的 YAML 保存为该文件),然后写一个 systemd 单元:

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

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

[Install]
WantedBy=multi-user.target

保存为 /etc/systemd/system/mihomo.service,依次执行 sudo systemctl daemon-reloadsudo systemctl enable --now mihomo。验证代理是否可用:

curl -x http://127.0.0.1:7890 -I https://www.gstatic.com/generate_204
# 返回 HTTP/2 204 即链路正常

平台特有坑

  • AppImage/Flatpak 沙箱:沙箱分发形态下客户端可能无法安装特权服务,TUN 不可用,优先用 deb/rpm 原生包。
  • Wayland 托盘图标缺失:部分 Wayland 桌面默认不显示托盘,装上桌面环境对应的托盘扩展(如 GNOME 的 AppIndicator 扩展)即可。
  • systemd 服务读不到订阅更新:内核本身不管理订阅,配置文件要靠定时任务自己拉取更新(curl -o /etc/mihomo/config.yaml "订阅链接" 配 cron),更新后 systemctl restart mihomo 生效。

07配置常见问题

核心字段速查

不管在哪个平台,配置文件顶部这几个字段决定客户端的基础行为,排错前先确认它们:

字段常见默认值作用
mixed-port7890HTTP + SOCKS5 混合监听端口
allow-lanfalse是否允许局域网其他设备连入本机代理
moderule分流模式:rule 按规则 / global 全局 / direct 直连
log-levelinfo日志级别,排错时临时调成 debug
external-controller127.0.0.1:9090外部控制 API,供面板类工具连接

一份能跑起来的最小配置骨架长这样(节点与规则由订阅提供,此处省略):

mixed-port: 7890
allow-lan: false
mode: rule
log-level: info
external-controller: 127.0.0.1:9090
dns:
  enable: true
  enhanced-mode: fake-ip
  nameserver:
    - https://223.5.5.5/dns-query

订阅更新失败

更新按钮转圈后报错,按顺序排查:①浏览器直接打开订阅链接,看返回的是配置文本还是错误页——错误页说明链接过期或被提供方限制;②客户端里检查更新订阅时是否勾选了"通过代理更新",当前代理不可用时改为直连更新(或反过来);③订阅是通用分享链接而非 Clash 格式时,需要经订阅转换服务生成 Clash 订阅再导入。逐项细节见订阅排查清单

代理已开但网页打不开

开关是绿的、浏览器一直转圈,可能坏在任意一环:节点本身失效、选中的策略组指向了不可用节点、DNS 解析被污染、系统代理没写入成功。先在代理页对全部节点做延迟测试,全部超时说明订阅节点问题;个别可用则切换到可用节点;节点正常但特定网站打不开,多半是规则把它分到了直连,临时切 global 模式验证。完整的九步排查见连上但无法上网排查清单

规则不生效或分流不对

Clash 规则自上而下匹配,命中即停。自定义规则要放在订阅规则之前才有机会命中;写在 MATCH 兜底规则之后的任何规则永远不会被执行。验证某个域名命中了哪条规则,最直接的办法是打开日志页(级别调到 info 以上),访问目标网站,看日志里该连接的匹配记录。域名规则(DOMAIN-SUFFIX)只对能拿到域名的连接生效,直连 IP 的流量要用 IP-CIDR 规则覆盖。

fake-ip 与 DNS 的常见困惑

enhanced-mode: fake-ip 模式下,内核给每个域名返回一个 198.18.0.0/16 段的假 IP,真实解析在出口侧完成——所以 ping 某域名看到 198.18 开头的地址是正常现象,不是故障。个别依赖真实 IP 的程序(局域网发现、部分游戏启动器)异常时,把对应域名加进 fake-ip-filter 列表,或整体换回 redir-host 模式。改完 DNS 相关配置后建议重启客户端,让系统的 DNS 缓存失效。

端口冲突与多客户端共存

两个代理客户端同时开,后启动的会报端口占用。要么退干净旧客户端(注意托盘残留进程),要么给其中一个改 mixed-port。改端口后,所有手动指向 7890 的地方(环境变量、软件内代理设置)都要同步改,漏一处就表现为"改完端口反而断网"。三平台定位占用进程的命令汇总在端口冲突排查文

还没解决?

短问答形式的高频问题集中在常见问题页,按基础认知、安装配置、使用技巧、故障排查四类组织;配置文件字段与协议名词到术语手册查;客户端本体问题先到获取客户端确认装的是当前维护中的版本。

08日常维护与调优

装好并跑通只是起点。客户端会更新、订阅会变动、系统会升级,长期稳定使用靠的是几个固定习惯。这一章把维护动作、性能调优和安全边界一次说清,内容与平台无关,五个平台通用。

客户端与内核的更新节奏

Clash 生态的更新分两层:GUI 客户端负责界面、订阅管理和系统集成,内核(目前主流是 Mihomo)负责实际的协议实现与流量转发。两者版本相对独立,大多数客户端在设置里同时给出"检查客户端更新"和"更新内核"两个入口。建议的节奏是:客户端跟随正式版更新,不必追每一个预发布版本;内核在遇到具体问题(新协议不支持、某类节点握手失败、TUN 在新系统版本上失效)时再升,平时运行稳定就不要频繁替换。升级前先把当前能用的配置文件导出备份一份,升级后如果出现异常,可以立刻回滚到旧版本客户端并恢复配置,而不是在故障状态下反复试错。系统大版本升级(例如 Windows 或 macOS 的年度更新)之后,TUN 所依赖的虚拟网卡驱动和特权服务有可能失效,表现为开关能打开但没有任何流量,这时重新执行一次"安装服务"操作通常就能恢复。

订阅的备份与多份共存

把订阅链接当成账户凭据保管:记录在密码管理器里,不要只依赖客户端的本地存储,重装系统或换机时才不会丢。多数客户端支持保存多份配置文件并一键切换,合理的用法是主用一份、备用一份来自不同提供方,主线路整体异常时切换备份即可继续工作,而不必现场重新导入。手工改过的配置不要直接写在订阅拉取覆盖的文件里——更新一次就会被冲掉;应使用客户端提供的覆写、扩展脚本或本地规则功能,把自定义部分与订阅内容分开存放。定期清理不再使用的旧配置,列表里堆几十份过期订阅只会让排查时选错文件。

性能与资源占用

延迟测试结果只反映到节点的握手往返时间,不等于实际下载速度,更不等于稳定性。选节点时优先看连续几次测试的波动幅度:一直稳定在两百毫秒的节点,通常比时快时慢、偶尔超时的节点体验好得多。策略组里启用自动选择(url-test)可以让内核按周期挑选延迟最低的出口,适合日常;但对需要长连接的场景(视频会议、远程桌面、下载大文件)手动固定一个节点更不容易中断。资源占用方面,Clash 内核本身内存占用不高,异常升高一般来自两种情况:一是连接数堆积,长期不关闭的连接在连接页里越积越多,重启客户端即可释放;二是 fake-ip 的缓存条目过多,重启同样会清空。规则数量对 CPU 的影响很小,不必为了"省资源"去精简订阅自带的规则集。

安全边界与使用规范

三条边界值得反复强调。第一,不要开启 allow-lan 之后不做限制:允许局域网设备接入意味着同网段任何人都能使用你的代理,在公共 Wi-Fi 下等于把出口开放给陌生人;确实需要给平板或电视共享时,配合 bind-address 限定监听范围并只在受信任的网络里启用。第二,不要从搜索结果里的第三方镜像站下载客户端安装包,代理客户端持有你的全部流量,被植入后门的后果远大于普通软件;安装包只从项目官方仓库或本站获取客户端页给出的入口取,下载后核对发布页给出的校验值。第三,外部控制端口(external-controller)默认只监听回环地址,不要改成 0.0.0.0 并暴露到公网,否则任何人都可以远程切换你的节点甚至读取配置。

建立自己的排查记录

长期使用中遇到的问题会重复出现。建议维护一份简单的记录:出现什么现象、当时改了什么、最终怎么解决。有了这份记录,同样的故障第二次出现时不用从头排查。排查时的固定顺序仍然是:确认流量是否进入 Clash(看连接页有没有新记录)→ 确认节点是否可用(延迟测试)→ 确认规则是否命中预期出口(日志页)→ 确认 DNS 解析是否正常。四步之内定位不到的问题,再去比对客户端版本与系统环境的变化。把日志级别临时调成 debug、复现一次问题、再调回 info,是收集有效信息最省力的做法,也是向社区提问时最应该附上的内容。

下载客户端