安装前:区分客户端、内核与 macOS 权限
在 Mac 上搜索“Clash 安装”,会遇到不同项目的安装包。Clash for Windows 曾提供 macOS 版本,但已经停止维护;使用 Clash 或 Clash Meta(mihomo)内核的其他客户端,并不共享同一套授权流程。界面名称相似,也不代表需要相同的网络扩展或后台服务。
先确认三个信息:Mac 的处理器、macOS 版本,以及客户端项目名称与版本。打开苹果菜单 →「关于本机」,查看芯片或处理器;也可以在「终端」执行以下只读命令:
sw_vers -productVersion
uname -m
arm64 通常对应 Apple 芯片环境,x86_64 对应 Intel 环境;从 Rosetta 转译的终端运行时,架构输出可能反映转译环境,因此下载时仍以「关于本机」为准。Apple 芯片优先选 ARM64 安装包,Intel 选 x64;Universal 安装包通常同时包含两种架构。
- 应用启动放行:由 Gatekeeper 检查下载来源、签名与公证等信息,处理的是“能否启动”。
- 网络扩展或 VPN 授权:用于部分客户端的流量接管实现,处理的是“能否建立网络隧道”。
- 辅助程序或服务模式:用于安装需要较高权限的后台组件,不等于网络扩展。
- 钥匙串访问:用于读取密码、令牌或其他受保护项目,与是否允许联网是两回事。
首次安装:移入应用程序,再处理启动提示
按固定位置安装,避免从磁盘映像反复启动
- 从项目发布渠道或本站安装包页面选择对应系统与架构的版本,阅读该版本要求的最低 macOS 版本。
- 打开 DMG,将应用拖入「应用程序」;ZIP 则先解压,再移动完整的
.app应用。 - 推出安装磁盘映像,从 Finder →「应用程序」启动客户端。
- 首次启动先不启用 TUN,完成配置导入,再检查普通代理连接。
固定安装位置有助于减少更新、辅助服务注册与应用身份判断中的混乱。不要同时运行下载目录里的副本和「应用程序」里的副本;如果菜单栏出现两个相同图标,先退出两者,再从最终安装位置启动一次。
“无法验证开发者”与“应用已损坏”不是同一种提示
在 macOS 13 Ventura、macOS 14 Sonoma 或 macOS 15 Sequoia 中,启动被系统拦截后,可到「系统设置」→「隐私与安全性」查看底部的安全提示。只有确认来源且系统提供相应选项时,才使用「仍要打开」,并按系统要求验证身份。不同系统版本的按钮文案与可用操作可能不同。
“无法检查是否包含恶意软件”“无法验证开发者”“应用已损坏”对应的检查结果并不相同。若系统明确提示包含恶意软件或将损坏电脑,应停止运行,重新确认来源与项目公告,而不是套用普通放行步骤。较新系统也可能不再提供旧教程中的右键打开绕过方式。
网络扩展、VPN 与后台服务怎样授权
导入配置后,先看客户端设置中的接管方式。仅打开「系统代理」时,客户端一般把 macOS 的 HTTP、HTTPS 或 SOCKS 代理指向本机端口;只有遵循这些设置的应用才会使用它。切换到 TUN 时,客户端可能请求添加 VPN 配置、启用网络扩展,或者安装服务模式所需的辅助程序。
| 看到的提示 | 通常对应的操作 | 应核对的内容 |
|---|---|---|
| 允许添加 VPN 配置 | 创建由系统管理的隧道配置。 | 请求是否来自刚启动的客户端,名称是否符合预期。 |
| 系统扩展被阻止 | 允许客户端声明的扩展加载。 | 提示中的开发者或团队是否与发行方相符。 |
| 安装辅助工具,要求管理员认证 | 注册或更新特权后台服务。 | 是否刚主动点击安装服务或启用相应模式。 |
| 允许访问钥匙串中的项目 | 读取受保护的凭据或密钥。 | 请求程序、项目名称与当前操作是否有关。 |
macOS 15 的扩展入口
在 macOS 15 Sequoia,可检查「系统设置」→「通用」→「登录项与扩展」中的「网络扩展」入口,查看对应客户端是否获准启用。VPN 配置还可以在「系统设置」→「VPN」查看;部分版本也可从「网络」相关页面进入。以系统实际列出的配置名称为准,不要凭图标猜测。
macOS 13、14 与系统扩展提示
macOS 13、14 上,若弹窗明确要求到「隐私与安全性」允许系统软件,请在尝试启用后及时进入该页查看提示。若没有对应项目,先回到客户端确认启用动作是否成功触发,并检查它是否实际采用网络扩展实现。没有扩展条目,不等于安装失败。
按系统提示完成认证后,再回客户端重新连接;系统要求重启时才重启。若出现要求降低启动安全性、关闭 SIP 或安装旧式内核扩展的教程,先暂停操作。现代网络扩展与内核扩展不是同一机制,不应为了普通代理设置直接修改整机安全策略。
钥匙串反复弹窗:按请求对象逐项排查
“某应用想使用登录钥匙串”与“某应用想访问钥匙串中储存的某项目”,排查方向不同。前者可能涉及钥匙串锁定或密码不同步,后者更多涉及项目访问控制。弹窗中的项目可能是客户端保存的凭据,也可能来自系统代理认证或其他关联程序,不能一律点击「始终允许」。
先看程序名、项目名与密码类型
- 记录弹窗里的请求程序和目标项目名称,确认刚才是否进行了导入、连接或更新操作。
- 确认请求程序是已安装的客户端或其已知辅助组件;路径、名称异常时先取消。
- 如果弹窗要求解锁「登录」钥匙串,输入该钥匙串的密码;它通常与当前 macOS 登录密码相同,但并非始终如此。
- 一次允许后观察是否仍重复出现,再检查是否有多个应用副本或旧后台进程。
管理员认证密码、订阅网站密码和钥匙串密码不是可互换的概念。尤其在通过恢复方式重设 Mac 登录密码后,旧「登录」钥匙串可能仍使用之前的密码。连续输入新登录密码不会自动解锁旧钥匙串。
在钥匙串访问中检查,不先删除整个钥匙串
用 Spotlight 搜索「钥匙串访问」,选择「登录」钥匙串,再搜索弹窗中显示的项目名称。macOS 15 的「密码」应用主要用于管理密码与通行密钥,不能替代钥匙串访问里的全部项目与访问控制功能。
- 更新后开始弹窗:应用签名身份或访问控制可能发生变化;先确认更新来自原项目,再考虑重新授权。
- 移动应用后开始弹窗:检查是否仍有旧副本运行,退出后只启动「应用程序」里的版本。
- 每次启动都要求解锁:检查登录钥匙串是否处于锁定状态,以及是否设置了睡眠或闲置后锁定。
- 只有某一项目反复请求:先查看该项目的「访问控制」。不要直接改成允许所有应用访问。
仅在确认某个项目由该客户端创建、凭据可以重新取得时,才考虑删除该单项并重新登录或导入。重置默认钥匙串会影响本机保存的其他凭据;如果不知道旧密码,应先查阅 Apple 的恢复说明并确认影响,不把重置作为安装 Clash 的常规步骤。
“应用已损坏,无法打开”:先查来源与签名
这个提示不一定说明下载过程损坏,也可能涉及签名失效、应用内容被修改、打包方式或系统安全评估。先退出应用,重新从确认过的发布渠道下载同一架构的安装包,完成解压并放入「应用程序」后再试。不要把陌生网站提供的“修复版”覆盖到原安装目录。
用只读命令收集信息
下面命令检查应用的签名与 Gatekeeper 评估结果,不会修改应用。输入命令前半段后,将 Finder 中的客户端应用拖到终端,让系统填入真实路径;每条命令分别执行。不要把本段说明文字一并粘贴进终端。
codesign --verify --deep --strict --verbose=2
spctl --assess --type execute --verbose=4
xattr -l
每条命令都需要在末尾加一个空格,再拖入待检查的 .app。codesign 用于检查签名完整性,spctl 用于查看系统执行策略评估,xattr -l 列出扩展属性。即使签名验证通过,也不能单凭这一项判断软件来源可靠;仍需核对开发者与发布渠道。
不要把清除隔离属性当作通用修复
com.apple.quarantine 是下载文件常见的隔离属性,它的存在本身不是故障。直接递归删除扩展属性,或全局关闭 Gatekeeper,会改变系统原本的检查流程,却不能修复失效签名、缺失文件或不兼容的运行环境。
如果原项目明确说明某个已知版本的分发问题,应严格按该版本文档处理,并将操作范围限制在确认过的应用。若系统报告签名资源被修改、文件缺失,优先重新下载或换用受支持版本。把完整报错、macOS 版本、处理器架构交给项目维护者,比反复执行不明修复脚本更有助于定位。
授权完成后:用系统代理与 TUN 分步验证
权限通过只说明相应操作获准,不代表订阅、节点和 DNS 都已正常工作。先在客户端选中配置,确认配置加载成功,再选一个可用策略。以下端口以 7890 为示例,实际应以客户端的 HTTP 或 mixed 监听端口为准;不同客户端默认值可能不同。
- 先关闭 TUN,仅启用系统代理。在 macOS 13–15 中进入「系统设置」→「网络」→ 当前连接 →「详细信息」→「代理」,核对启用项目、地址与端口。
- 本机代理地址通常为
127.0.0.1,确认端口与客户端一致,避免还指向已经退出的旧客户端。 - 执行下面的显式代理请求,检查本地 HTTP 代理链路;此步骤不依赖终端是否读取系统代理设置。
- 普通代理可用后,再按需要启用 TUN,观察客户端日志与系统 VPN 状态,每次只改变一项设置。
scutil --proxy
lsof -nP -iTCP:7890 -sTCP:LISTEN
curl -I --max-time 15 --proxy http://127.0.0.1:7890 https://example.com/
scutil --proxy 显示系统代理状态;lsof 用于查找示例端口的监听进程;curl 设置了 15 秒超时。出现 HTTP 响应说明该次请求已获得服务器响应,但不证明所有应用或 TUN 路由都正常。提示连接被拒绝时,先查监听地址与端口;超时时,再结合日志检查节点、路由和 DNS。
如果系统代理正常、只有 TUN 失败,优先检查扩展、辅助服务与其他 VPN 冲突;如果两者都失败,先检查配置和节点。不要同时开启两个接管全部流量的 VPN 或 TUN 客户端,否则路由与 DNS 可能互相覆盖,症状看起来就像“授权了仍然不能上网”。
常见问题:哪些权限可以暂时不授予
只是浏览器使用代理,需要开启网络扩展吗?
通常不需要。客户端提供本地 HTTP 或 SOCKS 代理后,浏览器可以按系统设置或自身代理配置使用。系统代理不能保证接管所有应用,但也不应因此自动升级为 TUN;先按实际需求选择接管范围。
安装后要求完全磁盘访问权限,应直接开启吗?
普通代理连接通常不依赖完全磁盘访问。先查当前客户端文档,确认是哪项功能需要该权限。网络扩展授权、管理员认证与完全磁盘访问相互独立,不能用开启后者替代前两者。
更新后又要求管理员密码或钥匙串授权,正常吗?
辅助服务更新可能再次需要管理员认证,应用身份变化也可能触发钥匙串确认。重点是核对请求是否紧随主动更新、程序名称与来源是否一致。如果没有进行更新却不断弹窗,应先取消并检查后台进程,而不是连续批准。
授权按钮找不到,需要重新安装系统吗?
先确认系统版本、客户端采用的接管机制与组织管理限制。只有网络扩展型实现才会出现相应扩展条目;采用辅助服务的客户端应检查其服务状态。保存具体报错并按项目文档排查,通常无需从重装系统开始。