安装前先确认芯片架构与客户端形态
macOS 上的“Clash”可能指图形客户端,也可能指 mihomo 等命令行内核。图形客户端负责订阅导入、策略组选择、系统代理开关和日志展示;内核负责读取配置、监听本机端口并执行规则。安装图形客户端时出现的网络扩展、VPN 配置或辅助工具授权,来自客户端采用的流量接管方式,并不表示订阅服务取得了同样的系统权限。
Apple Silicon 与 Intel 安装包不能混选
搭载 M1、M2、M3、M4 系列芯片的 Mac 使用 Apple Silicon,对应安装包常标记为 arm64、aarch64 或 Apple Silicon。较早的 Intel Mac 对应 x64、x86_64 或 Intel。点击屏幕左上角苹果菜单,进入「关于本机」,可直接查看“芯片”或“处理器”字段;也可以在终端执行:
uname -m
- 输出
arm64:选择 macOS ARM64 或 Apple Silicon 构建。 - 输出
x86_64:选择 macOS x64 或 Intel 构建。 - Apple Silicon 有时可以通过 Rosetta 2 运行 Intel 应用,但原生 ARM64 构建通常更适合长期使用。
下载页还应区分应用安装包与独立内核。常见的 .dmg 文件需要打开磁盘映像,再把应用拖入“应用程序”;.pkg 文件由系统安装器执行;压缩包解开后得到的单个可执行文件通常是内核,不能按图形客户端的步骤寻找菜单栏图标。
把应用放入“应用程序”后再首次启动
- 打开下载得到的
.dmg。 - 将客户端图标拖到“应用程序”文件夹,不要长期从磁盘映像或“下载”目录运行。
- 推出磁盘映像,再从 Finder 的「应用程序」中启动客户端。
- 首次启动后确认菜单栏、程序坞或主窗口是否出现客户端入口。
固定放在“应用程序”目录可以避免升级后路径变化,也便于系统识别登录项、辅助工具和网络扩展所属的宿主应用。若直接在只读磁盘映像中运行,客户端可能无法写入自身更新内容;如果从随机解压目录启动,多次下载还可能留下名称相同但版本不同的副本。
处理“无法打开”与开发者安全提示
macOS 的安装安全提示主要由 Gatekeeper、应用签名、公证状态和下载隔离属性共同触发。提示文案不同,处理路径也不同。不要把“无法确认开发者”“应用已损坏”“应用需要更新”视为同一个故障。
出现“无法确认开发者”时使用单次放行
如果确认安装包来自所选客户端的上游项目发布入口,可以先在 Finder 中定位应用,按住 Control 键点击应用,选择「打开」,然后在确认框中再次点击「打开」。另一条路径是 macOS 13 及以后版本的「系统设置」→「隐私与安全性」,在安全区域找到刚被拦截的应用,选择「仍要打开」。这属于针对该应用的单次确认,不需要修改整台 Mac 的全局安全级别。
macOS 12 及更早版本通常使用「系统偏好设置」→「安全性与隐私」→「通用」。菜单名称不同,但原则相同:先实际启动一次让系统记录拦截,再在安全设置中核对应用名称和来源。
“应用已损坏”不等同于普通未识别提示
“已损坏,无法打开”可能来自下载不完整、签名状态异常、应用被二次修改,或旧构建与当前 macOS 不兼容。先删除当前副本,重新下载与芯片架构相符的构建,并确认应用已经完整复制到“应用程序”。如果上游发布说明明确列出最低系统版本,也要核对当前系统是否满足要求。
需要进一步检查时,可在终端查看应用签名与系统评估结果。以下示例以安装在标准目录中的 Clash Verge Rev 为例,命令只读取状态:
codesign -dv --verbose=4 "/Applications/Clash Verge Rev.app" 2>&1
spctl --assess --type execute --verbose=4 "/Applications/Clash Verge Rev.app"
codesign 输出可用于查看标识符、签名机构和运行时设置;spctl 会给出系统是否接受该应用的评估结果。如果应用名称不同,应在 Finder 中把实际应用拖入终端来得到准确路径。不要根据论坛中的旧命令批量移除所有应用的安全属性。
网络扩展、VPN 配置与系统代理有什么区别
Clash 客户端常见的接管方式包括系统代理和 TUN。系统代理主要修改 macOS 当前网络服务的 HTTP、HTTPS 或 SOCKS 代理设置;TUN 则通过虚拟网络接口接管更广范围的 IP 流量。客户端是否请求网络扩展、VPN 配置或管理员授权,取决于它怎样实现 TUN,而不是由“规则模式”“全局模式”这些代理策略决定。
| 提示或入口 | 主要用途 | 适用情况 | 核对位置 |
|---|---|---|---|
| 系统代理 | 把支持 macOS 代理设置的应用指向本机监听端口 | 浏览器和多数桌面应用 | 「系统设置」→「网络」→当前网络→「详细信息」→「代理」 |
| VPN 配置 | 注册由客户端管理的网络隧道配置 | 采用 Network Extension 的 TUN 实现 | 「系统设置」→「网络」→「VPN 与过滤器」 |
| 网络扩展 | 允许应用加载网络隧道或内容过滤扩展 | 客户端首次启用相关能力 | 「系统设置」→「通用」→「登录项与扩展」中的相关扩展区域 |
| 管理员认证 | 安装或更新特权辅助工具、调整受保护的网络配置 | 部分客户端的服务模式或 TUN 实现 | 系统认证对话框与客户端服务状态 |
| 钥匙串访问 | 读取或保存客户端创建的凭据项目 | 需要持久保存敏感配置或辅助服务凭据时 | 「应用程序」→「实用工具」→「钥匙串访问」 |
只使用系统代理时通常不需要 VPN 配置
客户端开启“系统代理”后,会把代理服务器写入当前网络服务。常见本机地址是 127.0.0.1,常见 mixed 监听端口是 7890;旧配置也可能分别使用 HTTP 端口 7890 和 SOCKS 端口 7891。这些数值不是所有客户端的固定标准,应以客户端「设置」→「端口设置」、运行日志或当前配置中的 mixed-port、port、socks-port 为准。
系统代理适合遵循 macOS 网络代理设置的应用,但终端中的 curl、包管理器、开发工具和部分跨平台应用可能忽略它们。此时浏览器能访问而终端失败,不代表网络扩展损坏。应检查应用自己的代理设置,或给当前终端会话配置明确的 HTTP_PROXY、HTTPS_PROXY 与 ALL_PROXY。
启用 TUN 时可能出现 VPN 或过滤网络内容提示
当客户端采用 Apple Network Extension 建立 TUN,macOS 可能提示应用希望添加 VPN 配置,或请求允许网络扩展。确认对话框中的应用名称确实是刚刚操作的客户端后,可以允许。授权完成后,在 macOS 13 至 15 中打开「系统设置」→「网络」→「VPN 与过滤器」,通常可以看到由该客户端管理的项目。
另一些客户端通过特权辅助工具创建虚拟接口或维护路由表,首次安装服务时会要求输入管理员账户密码或使用 Touch ID。这个提示用于系统级授权,不是订阅账户登录。输入的是当前 Mac 管理员凭据,凭据由 macOS 认证窗口处理,不应填写订阅链接、代理节点密码或网站账号。
正确判断钥匙串提示是否可信
macOS 上有两类容易混淆的密码窗口。第一类是系统管理员认证,通常显示用户名、密码输入框或 Touch ID,用于安装辅助工具、修改网络配置或启动特权服务。第二类是钥匙串访问对话框,通常写明某个应用想访问钥匙串中的具体项目,并提供「拒绝」「允许」或「始终允许」等选项。
先核对请求者、钥匙串项目和触发动作
- 确认提示是否紧接着安装服务、启用 TUN、设置开机启动或保存凭据等操作出现。
- 查看请求访问的应用名称,是否与当前启动的客户端一致。
- 查看钥匙串项目名称,是否能对应到客户端、辅助工具或已配置的认证信息。
- 如果提示在客户端未运行时反复出现,先选择「拒绝」,再检查登录项、旧版本残留和钥匙串项目。
「始终允许」意味着以后同一签名身份的应用访问该项目时减少重复询问,适合已经核对清楚、且客户端正常运行确实依赖该项目的情况。若无法判断用途,先选择单次「允许」并观察客户端功能是否恢复,比直接授予长期访问更容易定位问题。
升级后反复询问可能与签名或旧项目有关
客户端升级、应用名称变化、签名身份变化,或从不同发布渠道覆盖安装后,钥匙串可能把新版本视为不同的请求者。先退出所有同名客户端,确保“应用程序”中只保留准备使用的一份,再重新启动。随后打开「钥匙串访问」,在“登录”钥匙串中按客户端名称搜索,查看项目的创建时间和“访问控制”列表。
不要一次删除整个登录钥匙串。若已确认某个项目只属于被卸载的旧客户端,可以先记录名称,再删除该单项并让当前客户端重新创建。删除后若客户端要求重新输入代理认证信息或重新安装辅助服务,应按照当前版本的设置流程完成。
按顺序完成首次配置与授权
同时开启多个开关会让问题难以定位。更稳妥的顺序是先验证客户端和内核能启动,再导入配置,然后验证本地端口,最后依次开启系统代理或 TUN。
第一步:启动客户端并确认内核状态
打开客户端后,先进入「设置」或「设置」→「内核设置」,查看内核是否已就绪。不同客户端可能把状态放在首页、日志页或服务管理页。若日志持续出现配置解析错误,应先修正配置,不要通过重复授权解决。常见错误包括 YAML 缩进不正确、策略组引用了不存在的代理、规则指向未定义的 PROXY 策略组,以及端口已被其他进程占用。
可在终端检查常见端口是否已经监听:
lsof -nP -iTCP:7890 -sTCP:LISTEN
lsof -nP -iTCP:7891 -sTCP:LISTEN
lsof -nP -iTCP:9090 -sTCP:LISTEN
7890 和 7891 常用于代理监听,9090 常被配置为外部控制接口,但实际端口必须以当前配置为准。如果同一端口由旧客户端占用,应先完全退出旧客户端,而不是随意修改多个配置文件。
第二步:导入订阅并选择当前配置
- 进入客户端的「配置」或「订阅」页面。
- 使用订阅服务提供的地址导入配置。
- 等待下载完成,检查更新时间和配置名称。
- 把新导入的配置设为当前配置。
- 进入「代理」或「策略组」,为需要手动选择的策略组指定可用节点。
导入成功只表示客户端取得了配置文件,不等于系统流量已经进入 Clash。还需要确认内核加载成功、策略组存在可选项,并开启系统代理或 TUN 中至少一种接管方式。订阅更新还可能覆盖订阅内的直接修改;长期自定义规则应使用客户端支持的覆写、合并或脚本机制。
第三步:先测试系统代理,再决定是否启用 TUN
开启客户端的“系统代理”后,可以执行 scutil --proxy 查看 macOS 当前代理状态。输出中的 HTTP、HTTPS 或 SOCKS 开关应与客户端设置对应。若客户端显示已开启而系统输出没有变化,检查当前网络服务是否切换、客户端是否获得修改网络配置所需的授权,以及是否有另一款代理工具正在覆盖设置。
scutil --proxy
curl --proxy http://127.0.0.1:7890 https://example.org/
第二条命令显式把请求发送到本机 7890 端口,适合区分“内核和节点可用”与“系统代理未被终端采用”。如果显式代理成功,但直接运行 curl https://example.org/ 失败,重点检查终端代理环境,而不是重新安装网络扩展。
只有在需要接管不遵循系统代理的应用、UDP 流量或更完整的应用流量时,再考虑 TUN。开启后如果出现 VPN 配置或管理员认证提示,应按前文核对应用名称与触发动作。TUN 正常建立后,日志通常能看到虚拟接口、路由或 DNS 模块启动信息;具体接口名称由客户端和内核实现决定。
授权后仍无法连接的分层排查
系统代理开启但浏览器没有流量
- 检查「系统设置」→「网络」→当前使用的 Wi-Fi 或以太网→「详细信息」→「代理」,服务器是否为
127.0.0.1,端口是否与客户端一致。 - 确认客户端内核正在运行,而不是只有界面驻留在菜单栏。
- 检查浏览器是否安装了独立代理管理扩展,或使用了自己的代理配置。
- 查看规则命中日志,确认请求走向不是
REJECT,且目标策略组已有可用节点。 - 暂时退出其他会修改系统代理的网络工具,避免多个程序交替写入设置。
TUN 开启后立刻断网
先关闭 TUN,确认基础网络恢复,再检查客户端日志中的第一条错误。常见方向包括虚拟接口创建失败、路由冲突、DNS 监听端口冲突和辅助服务未启动。如果系统设置中存在多个旧客户端留下的 VPN 配置,可以先关闭不用的配置,但不要在未确认归属时批量删除公司 VPN、远程办公或其他网络扩展。
还应检查配置中的 DNS 部分是否与当前内核版本兼容。mihomo 支持的 DNS 选项会随版本演进,旧 Clash 配置不一定能原样迁移。出现“字段不存在”“类型错误”或监听地址冲突时,应按当前客户端内置内核的文档调整,而不是把 DNS 故障归因于 macOS VPN 授权。
重启后代理开关失效
进入「系统设置」→「通用」→「登录项与扩展」,检查客户端是否被允许在登录时打开,以及相关后台项目是否仍启用。不同客户端可能提供“开机启动”“静默启动”“启动后设置系统代理”三个独立选项;只开启第一个通常仅启动界面,并不保证自动接管流量。
如果客户端需要特权服务,还要在其「设置」→「服务模式」或「TUN 设置」中查看服务状态。升级后服务版本与客户端不一致时,优先使用客户端提供的“重新安装服务”或“修复服务”功能,并留意随后出现的系统管理员认证窗口。
退出客户端后系统仍保留代理
异常退出可能来不及恢复系统代理。重新打开同一客户端,先开启再关闭一次系统代理,通常可以让客户端执行完整清理。也可以在「系统设置」→「网络」→当前网络→「详细信息」→「代理」中检查 HTTP、HTTPS 和 SOCKS 项目,确认不需要的开关已经关闭。
升级、更换客户端与卸载时清理权限
覆盖升级同一客户端前先退出旧版本,并确认菜单栏图标消失。安装后核对版本号、内核版本、当前配置和系统代理状态。若新版首次启动再次申请网络扩展或辅助服务授权,应检查应用签名与来源后按需允许;系统重新确认权限并不等于订阅配置丢失。
更换客户端时不要同时接管系统网络
从 ClashX Meta、Clash Verge Rev、FlClash 或其他客户端之间切换时,可以先导出需要保留的配置或记录订阅入口,然后在旧客户端中依次关闭系统代理、关闭 TUN、退出应用。新客户端启动并验证本地端口后,再开启一种接管方式。两款客户端同时监听 7890 或同时修改系统代理,会造成端口占用、状态显示与实际设置不一致。
卸载不只是把应用拖进废纸篓
- 在客户端内关闭系统代理和 TUN。
- 若客户端提供“卸载服务”或“移除辅助工具”,先从设置页执行。
- 退出客户端,确认活动监视器中没有同名进程继续运行。
- 在「系统设置」→「网络」→「VPN 与过滤器」中检查该客户端创建的配置。
- 在「系统设置」→「通用」→「登录项与扩展」中检查登录项和后台项目。
- 确认不再需要本地配置后,再删除应用及其专属配置目录。
如果只是升级或临时排障,不建议先删除全部配置。保留一份可用配置和最近日志,可以判断问题发生在应用升级、内核加载、系统权限还是订阅内容。完成安装后,最小验证闭环应包括:应用可启动、内核无配置错误、本地端口在监听、显式代理请求成功、系统代理或 TUN 只启用一种预期路径、退出后系统网络能恢复。