先区分:应用启动、网络权限还是凭据访问

macOS 上的 Clash 客户端并不共用一套授权流程。应用窗口、Clash Meta(mihomo)内核、特权辅助程序与网络扩展是不同组件;其中有些客户端只使用系统代理,有些通过辅助程序启动 TUN,也有客户端使用 Apple 的网络扩展机制。看到 TUN 开关,不等于一定需要批准网络扩展。

处理前先记录弹窗原文、发起请求的程序名称和出现时机。应用还没显示窗口就被系统阻止,先查启动限制;只有开启 TUN 才失败,先查辅助程序或网络权限;窗口能打开,但读取订阅凭据时索要密码,则转向钥匙串。不要把三种问题都当成安装包损坏。

提示或现象 优先检查 暂不需要做的操作
无法验证开发者、Apple 无法检查是否包含恶意软件 来源、签名与「隐私与安全性」中的启动提示 反复修改订阅或 DNS
应用已损坏、会损坏电脑 完整提示、下载来源及项目发布说明 直接移除隔离属性或关闭系统保护
系统扩展被阻止、请求添加 VPN 配置 扩展所属开发者、网络配置和管理策略 删除整个登录钥匙串
某程序想使用登录钥匙串中的机密信息 请求程序、具体条目及访问控制 把订阅密码填进系统授权框

安装前确认系统、芯片与应用位置

记录系统版本与处理器架构

点击苹果菜单 →「关于本机」,记录 macOS 版本与芯片。下载页的 Apple Silicon 通常对应 arm64,Intel 对应 x86_64;Universal 包则可能同时包含两种架构,具体以项目发布说明为准。Apple Silicon 运行部分 Intel 应用时可能提示安装 Rosetta,这不是网络扩展授权。

需要向维护者提交信息时,可以在「终端」执行以下只读命令。第一条显示系统版本,第二条显示当前执行环境的架构;如果终端本身通过 Rosetta 运行,第二条结果可能是 x86_64,因此仍需结合「关于本机」判断硬件。

sw_vers
uname -m

从固定位置启动同一份应用

  1. 从项目发布页或已确认来源取得适配当前系统的安装包,核对最低 macOS 要求。
  2. 如果是 DMG,将应用拖入「应用程序」文件夹,再退出磁盘映像;不要长期从 DMG 内启动。
  3. 退出下载目录、桌面或旧磁盘映像里的另一份客户端,之后只从「应用程序」启动。
  4. 记录客户端版本及内核名称。应用升级与内核升级并不总是同一件事,报错反馈时应分别说明。

固定应用位置可以减少启动错副本、辅助程序路径不一致等干扰,但不能保证钥匙串不再询问。程序签名、条目权限和系统安全策略仍会影响授权结果。

「无法验证开发者」与「已损坏」分开处理

系统提供「仍要打开」时

对于已经确认来源、且只是尚未获系统认可的应用,先正常尝试启动一次,然后进入苹果菜单 →「系统设置」→「隐私与安全性」,查看「安全性」区域是否出现刚刚被阻止的应用及「仍要打开」按钮。只有名称与刚才操作一致时才继续,并按系统要求完成身份验证。

在 macOS 15 上,不应继续依赖旧教程中「按住 Control 点按图标就一定能绕过」的说法;对部分未正确签名或未公证的软件,系统要求从「隐私与安全性」处理。不同系统小版本的提示文字可能不同,按钮是否出现也受拦截原因影响。

  • 提示无法检查恶意软件:属于需要进一步判断来源的安全提示,不代表已经确认应用安全。
  • 提示会损坏电脑或被移到废纸篓:停止运行,查看项目是否撤回该构建,重新获取可信版本。
  • 提示已损坏:可能涉及下载不完整、签名异常或应用被改动,不能仅凭这句话断定原因。
  • 提示不支持此 Mac:先核对芯片架构与最低系统要求,授权按钮无法解决兼容性问题。

如果安装包重新下载后仍出现相同警告,保留弹窗截图、系统版本和安装包来源信息。对于学校或公司管理的 Mac,「仍要打开」可能被管理策略限制,应联系管理员,不要尝试绕过设备管理。

网络扩展、VPN 配置与 TUN 辅助程序授权

先确认客户端实际使用哪一种机制

系统代理通常只修改 HTTP、HTTPS 或 SOCKS 代理设置,由愿意遵循这些设置的应用使用;TUN 则通过虚拟网络接口接管流量。mihomo 支持 TUN,但 macOS 客户端如何取得权限取决于它的封装实现:可能通过特权服务,也可能采用其他网络组件。没有网络扩展条目,不足以证明 TUN 安装失败。

当客户端明确提示安装服务或辅助程序时,只使用该客户端提供的安装入口,并核对系统授权框中的应用名称。这个步骤常需要管理员身份验证;它与订阅服务的账号密码无关。不要执行来源不明、要求以管理员权限运行的一长串终端命令。

macOS 15 的扩展与网络配置位置

  1. 如果弹窗明确说明系统扩展被阻止,进入「系统设置」→「通用」→「登录项与扩展」,查看「扩展」区域的「网络扩展」,核对开发者和组件名称。
  2. 如果系统要求添加 VPN 配置,阅读请求中的应用名称后再决定是否允许。随后可在「系统设置」→「网络」→「VPN 与过滤器」检查相关配置。
  3. macOS 13、14 的部分扩展许可会出现在「系统设置」→「隐私与安全性」底部;按弹窗指向处理,不要仅因新版本截图里有某个栏目就判断旧系统异常。
  4. 授权后按系统提示决定是否退出应用、重新打开或重启。不要在内核仍运行时连续安装多个辅助程序副本。

「允许在后台」主要涉及后台项目的运行许可,并不等于网络扩展已获批准。类似地,授予「完全磁盘访问权限」也不能代替网络授权;只有客户端文档明确说明某项功能确实需要时,才单独评估该权限。

systemextensionsctl list

上面的只读命令可以列出系统扩展及其状态,适合与弹窗里的开发者信息对照。它并不列出所有普通辅助程序,也不能证明每一种 VPN 组件都已正常工作。不要仅凭列表为空就重新安装系统。

钥匙串反复索要密码:先认清请求对象

钥匙串弹窗可能是请求解锁「登录」钥匙串,也可能是某程序请求读取其中一个密码条目,两者处理方式不同。先看清弹窗是否列出具体条目名称、发起请求的程序以及「拒绝」「允许」「始终允许」等选项。请求方可能是客户端,也可能是其辅助组件,不能只看图标相似就批准。

密码应该填哪一个

  • 系统要求管理员批准安装辅助程序时,通常使用本机管理员账户凭据,或系统提供的 Touch ID。
  • 弹窗明确要求「登录」钥匙串密码时,通常对应创建或上次同步该钥匙串时的本机登录密码。
  • 如果最近通过恢复流程或其他方式重设过账户密码,钥匙串仍可能保留旧密码;此时当前登录密码可能无法解锁。
  • Apple 账户密码、节点密码与订阅链接,不应填入本机钥匙串授权框。

在「钥匙串访问」中定位具体条目

使用 Spotlight 搜索并打开「钥匙串访问」,选择「登录」钥匙串,再按弹窗里的条目名称搜索。较新系统中的「密码」应用与「钥匙串访问」不是同一个管理界面,部分应用凭据仍需在后者检查。找到条目后打开信息窗口,核对名称、账户和相关服务;若有「访问控制」页,再检查获准访问的应用。

  1. 先拒绝无法识别的请求,退出客户端,确认请求方是否随之停止。
  2. 只启动「应用程序」中的目标副本,触发一次同样操作,核对弹窗是否指向预期条目。
  3. 确认来源后可先选择单次「允许」,验证功能是否恢复,再决定是否给予持续授权。
  4. 如果每次升级后反复询问,记录新旧应用版本及请求程序名称,检查签名或辅助组件是否发生变化。

「始终允许」只针对相应条目及访问条件,不是全局关闭提醒。不要把条目设置为允许所有应用访问,也不要把「登录」钥匙串密码改为空。持续弹窗可能来自错误密码、钥匙串锁定、访问条件变化或重复运行的组件,需要逐项区分。

授权完成后的代理与联网验证

应用成功打开与代理生效是两个检查点。先保持 TUN 关闭,仅启用客户端的系统代理,确认内核正常启动,再观察浏览器请求是否出现在连接或日志面板中。这样能把应用启动、代理监听和虚拟网络接口问题分开,避免同时修改多个设置后失去判断依据。

检查代理端口与监听进程

在终端执行以下只读命令。这里以客户端实际配置为 mixed-port: 7890 为例;如果设置页显示其他端口,应以真实值为准。7890 不是所有客户端固定使用的默认端口。

scutil --proxy
lsof -nP -iTCP:7890 -sTCP:LISTEN

scutil --proxy 可查看当前代理配置,重点核对启用状态、主机和端口。使用普通 HTTP/HTTPS 系统代理时,通常应能看到对应的启用项;使用 PAC 时则需看自动代理配置项。lsof 用来确认指定端口是否有监听进程,普通用户可能只能看到有权限查看的进程。

  • 系统代理指向本地端口,但端口没有监听:先查内核启动日志、配置加载错误和端口冲突,而不是再次批准网络扩展。
  • 系统代理关闭,但 TUN 已开启:不能只凭代理字段判断失败,还需检查 TUN 状态、路由及客户端连接记录。
  • 请求出现在日志中但连接超时:检查订阅有效性、出站节点与规则命中,启动授权通常已经不是当前阻塞点。
  • 仅某个应用不走代理:确认它是否遵循系统代理;系统代理与 TUN 的流量覆盖范围不同。

系统代理验证通过后,再开启 TUN。若这时才失败,保留切换时刻的日志,重点查服务权限、虚拟接口创建和路由配置。测试期间只运行一个接管流量的客户端,其他 VPN、网络过滤器或同类 TUN 服务应按各自界面正常断开,测试后再恢复。

仍然失败时,整理可复现的信息

提交问题前,按「启动应用 → 启用系统代理 → 开启 TUN」的顺序重现一次,并记下第一次失败的步骤。与其反复重新导入订阅,不如保留能够区分权限层、配置层和网络层的证据。

  1. 环境:macOS 完整版本、Apple Silicon 或 Intel、是否属于受管理设备。
  2. 程序:客户端名称、版本、内核名称、应用所在位置,以及是否仍有旧副本。
  3. 提示:弹窗原文、请求程序名称、出现时间,以及相关设置页面显示的状态。
  4. 验证结果:系统代理是否可用、开启 TUN 后是否才报错、代理监听端口是否存在。
  5. 相关日志:仅保留失败时间附近的内容,提交前遮盖订阅地址、令牌、密码与个人网络信息。

如果不再使用该客户端,先在应用内关闭系统代理和 TUN,再使用项目提供的服务卸载方式清理辅助组件。删除应用图标不一定会同步移除系统代理、后台服务或 VPN 配置;卸载后仍断网时,先回到「网络」设置检查遗留代理,不要批量删除不认识的系统文件。