跳到正文

macOS 安装 Clash 后的权限处理:网络扩展授权与钥匙串弹窗

梳理 macOS 上首次运行时的「已损坏」提示、网络扩展允许步骤与钥匙串反复弹窗的成因和处理办法。

先分清弹窗:启动检查、网络授权和钥匙串不是一回事

先看弹窗标题与请求进程,再决定是否授权。Clash 是代理内核与客户端生态的统称,macOS 上不同客户端的权限实现并不一致。采用 Clash Meta(mihomo)内核,也不代表一定使用 Apple 网络扩展;有的客户端通过特权辅助程序创建 TUN 接口,有的通过 Network Extension 接管流量。

本文以 macOS 13 Ventura、14 Sonoma、15 Sequoia 的设置名称为参照。先点左上角苹果菜单 →「关于本机」确认系统版本,再在客户端「关于」页面记录客户端版本与内核版本。界面文字有差异时,以系统弹窗中的入口为准,不要为了找一个不存在的开关而安装额外组件。

提示或现象对应环节先做什么
“无法验证开发者”或“已损坏”应用启动与安全检查确认安装来源、安装包与系统架构
请求添加 VPN 配置或允许网络扩展系统网络接管核对应用名称与发布者
安装辅助程序时要求管理员密码特权服务安装确认刚刚主动点击了安装服务
请求访问钥匙串中的某个项目凭据读取核对请求进程和项目名称

首次启动提示“已损坏”:先换安装包,不先关闭安全检查

先把应用移到「应用程序」

  1. 退出已运行的旧版本,包括菜单栏中的后台进程。
  2. 打开下载的 DMG,将客户端拖到「应用程序」,不要一直从磁盘映像中启动。
  3. 推出 DMG,再从「应用程序」打开客户端。固定路径能减少更新后权限记录与实际程序不一致的问题。
  4. 若仍失败,重新获取适合本机的安装包。Apple 芯片优先选 arm64,Intel 机型选 x64;Universal 包需明确包含对应架构。

“已损坏,无法打开”不一定表示下载文件真的损坏,也可能与签名、隔离属性或打包方式有关;架构不匹配则可能出现另一类无法运行提示。仅凭一句弹窗无法判断原因。来源不明的包应停止使用,不能把移除隔离属性当成所有启动问题的通用修复。

“仍要打开”只用于已确认来源的应用

在一次启动被阻止后,打开「系统设置」→「隐私与安全性」,查看安全性区域是否提供「仍要打开」。该按钮不是所有阻止情形都会出现。核对应用名称与来源后再操作;如果系统明确提示恶意软件、会损坏电脑或证书被撤销,应停止运行并向维护者确认。

网络扩展与 TUN 授权:按客户端实际实现处理

如果只是让遵循系统代理设置的浏览器联网,通常先启用「系统代理」即可,不必为了完成首次配置立即打开 TUN。系统代理与 TUN 是两个入口:前者修改代理设置,后者通过虚拟接口及相关路由处理流量。TUN 也不保证每个应用、每种协议都自动正常工作,最终仍取决于内核配置和路由环境。

出现网络扩展或 VPN 配置请求时

  1. 在客户端主动打开「TUN 模式」或相应网络接管功能,再观察弹窗,避免给不相关的后台程序授权。
  2. 请求添加 VPN 配置时,核对显示的应用名称。确认是当前客户端发起后,再点「允许」。
  3. macOS 15 可到「系统设置」→「通用」→「登录项与扩展」→「网络扩展」检查对应扩展;部分版本需要点该项旁的详情按钮。
  4. macOS 13、14 若提示系统软件被阻止,按提示到「隐私与安全性」寻找「允许」。VPN 或过滤器记录也可能出现在「网络」→「VPN 与过滤器」。没有该记录不等于安装失败,先确认客户端是否使用这套机制。

如果客户端写的是「安装服务」「安装辅助程序」或「Service Mode」,管理员认证往往用于安装特权辅助服务,不是解锁钥匙串。安装成功后,先回到客户端检查服务状态,再打开 TUN;不要反复点击安装。只有系统或客户端明确要求时才重启电脑。

钥匙串弹窗:先看访问的是哪个项目

典型提示会包含“想要使用您储存在钥匙串中的机密信息”,并列出请求进程与项目名称。这和安装服务的管理员认证不同。客户端可能把订阅凭据、访问令牌或其他敏感设置存在钥匙串里,但不是每个 Clash 客户端都会这样做,也不能把任何钥匙串请求都归为正常行为。

「允许一次」与「始终允许」怎么选

  • 刚完成安装,尚未确认项目用途:先点「拒绝」,观察哪项操作受影响,再查客户端说明。拒绝后相应功能可能暂时不可用。
  • 进程与项目都能确认:可先点「允许」完成本次读取,验证订阅更新或设置保存是否恢复。
  • 长期使用且身份核对无误:再考虑「始终允许」。它针对相应钥匙串项目的访问,不是给所有权限统一放行。

弹窗需要的密码应以文字提示为准。访问「登录」钥匙串通常需要该钥匙串的密码,它往往与当前账户登录密码相同,但在账户密码被其他途径重置后,两者可能不同。不要把订阅密码、Apple 账户密码或节点密码挨个填进去。

用「钥匙串访问」检查,别先删除全部记录

  1. 通过 Spotlight 搜索并打开「钥匙串访问」。macOS 15 的「密码」应用不等于完整的钥匙串管理工具。
  2. 选择「登录」钥匙串,用弹窗里显示的项目名称搜索,不要只搜“Clash”。
  3. 打开匹配项目,核对名称、种类与关联信息;若项目提供「访问控制」,检查被允许的应用是否仍指向当前客户端。
  4. 优先修复单个项目的访问授权。不要选择“允许所有应用程序访问此项目”,也不要直接重置整个默认钥匙串。

升级后反复弹窗:检查路径、签名和登录钥匙串

更新客户端后第一次重新询问,并不罕见。替换应用可能改变签名身份、辅助进程或钥匙串访问条件。真正需要排查的是:每次启动都询问,或者点完允许后立刻再次出现。此时连续输入密码通常只会掩盖问题。

发生时机优先检查处理方式
每次从不同位置启动后下载目录、DMG 与应用程序中是否有多个副本退出所有副本,固定从应用程序启动
每次升级后发布渠道、应用身份或辅助进程是否变化核对维护者说明,重新确认单项授权
系统登录后多款应用都询问登录钥匙串是否锁定、密码是否不同步先处理账户与钥匙串问题
只在更新订阅时询问对应订阅凭据项目与读取进程检查该项目,而不是修改 TUN 权限

如果是登录密码变更后无法解锁,且仍知道原钥匙串密码,可在「钥匙串访问」中解锁,并在可用时通过「编辑」→「更改钥匙串“登录”的密码」将其同步。若原密码已遗失,先按 Apple 的账户恢复流程处理;重置默认钥匙串会影响其中保存的凭据,必须先评估影响。

仅当确认某一条记录已经失效、也知道如何重新登录或重新录入凭据时,才考虑删除那一条。删除之前记录项目名称,并准备好订阅服务的恢复入口。不要为了消除弹窗,批量删除证书、私钥或所有带客户端名字的项目。

授权完成后,用系统代理和端口检查验证

权限放行只说明某个环节被允许,不等于节点可用。按「配置启用 → 内核运行 → 本地监听 → 流量进入」的顺序验证,能避免在权限面板和节点列表之间来回猜。下面是只读检查命令,不会修改系统代理或路由。

sw_vers -productVersion
scutil --proxy
lsof -nP -iTCP:7890 -sTCP:LISTEN
  • sw_vers 显示系统版本,方便对照权限入口。
  • scutil --proxy 查看当前系统代理信息。启用 HTTP/HTTPS 系统代理时,检查对应的 HTTPEnable、HTTPSEnable 是否为 1,服务器和端口是否符合客户端设置;使用 PAC 时则应检查自动代理配置字段。
  • lsof 检查 TCP 7890 是否有进程监听。7890 只是常见示例端口,若客户端使用 mixed-port: 7897,就把命令中的端口改成 7897。没有输出不应直接解释为权限被拒绝。

分两轮测试,别一次开启所有接管功能

  1. 先关 TUN,启用一份有效配置,打开系统代理,用浏览器访问一个已知可达的网站,同时观察客户端「连接」或「日志」是否出现请求。
  2. 系统代理测试通过后,再按客户端说明测试 TUN。为便于区分接管来源,可暂时关闭系统代理,使用同一网站复测,并检查日志中的实际连接。
  3. 若日志已有请求但报 i/o timeout,继续检查节点、目标与网络;若报 no such host,优先检查 DNS 链路。不要仅凭这些报错重新授权钥匙串。
  4. 若启动时报 address already in use,检查是否有另一个客户端占用相同端口。这是监听冲突,不是网络扩展授权不足。

多个 VPN、企业安全软件与代理客户端同时接管网络,会增加路由和 DNS 冲突的可能。仅停用自己有权管理的其他网络接管功能后复测;受管设备不要自行移除企业过滤器。需要进一步定位时,可继续查看问题诊断,并记录测试时到底开启了系统代理还是 TUN。

退出或卸载前,先恢复网络设置

先在客户端关闭 TUN 和系统代理,再退出程序。随后打开「系统设置」→「网络」→ 当前使用的 Wi-Fi 或以太网 →「详细信息」→「代理」,确认没有遗留指向 127.0.0.1 的失效代理。不要修改原本由公司或学校配置的代理项。

若客户端提供「卸载服务」,优先使用该入口移除辅助服务;网络扩展与 VPN 配置也应按客户端卸载说明处理。不要照着别人的终端命令删除名称相似的系统文件。权限问题的收尾标准是:客户端运行时请求能进入预期链路,退出后普通网络恢复,重启后不再循环要求同一项授权。

Clash 客户端下载与配置

按 Mac 的芯片架构选择客户端。安装后先导入订阅并验证系统代理,再按实际需要配置 TUN。

下载Clash按设备选择客户端