先区分四类权限提示

macOS 上的 Clash 客户端不是同一种应用。Clash Verge Rev、ClashX Meta 等客户端的界面、内核启动方式和权限实现不同;采用 mihomo 内核,也不代表一定通过 Apple 网络扩展接管流量。处理弹窗前,先看提示中的应用名称、开发者名称与请求动作。

首次启动许可、网络扩展授权、特权辅助服务和钥匙串访问属于不同机制。允许应用打开,不等于允许安装辅助服务;安装服务成功,也不等于系统代理已经开启。不要把所有提示都归为“Clash 没有权限”。

提示或现象对应机制优先检查
无法验证开发者或无法打开Gatekeeper 启动检查安装来源、签名与隐私安全设置
请求添加 VPN 配置或允许网络扩展VPN 配置、Network Extension 或系统扩展请求方与具体扩展类型
安装辅助工具时要求管理员密码特权服务安装安装动作是否由当前客户端发起
请求访问“登录”钥匙串中的项目受保护凭据访问钥匙串项目名称与访问进程

首次打开被拦截:先确认安装位置与来源

把客户端放入“应用程序”后再运行

  1. 在苹果菜单的“关于本机”中确认芯片类型。Apple 芯片优先选择 Apple Silicon 或 arm64 安装包,Intel 机型选择 x64 安装包。
  2. 打开下载的磁盘映像,将应用拖入“应用程序”,即 /Applications。退出磁盘映像里正在运行的副本,再启动已安装的应用。
  3. 若系统拦截启动,先核对下载来源和应用名称。对于来源可信、仅因开发者验证被拦截的应用,再进入系统设置处理单个应用的例外。

在 macOS Ventura 13、Sonoma 14 以及 Sequoia 15 中,可查看“系统设置”→“隐私与安全性”靠下的安全提示;符合条件时会出现“仍要打开”。macOS Monterey 12 及更早版本使用“系统偏好设置”→“安全性与隐私”→“通用”。不同系统版本的提示文字可能略有差异。

部分旧版系统支持在访达中按住 Control 点按应用,再选择“打开”。macOS Sequoia 15 对覆盖部分 Gatekeeper 检查的流程作了调整,不要把右键打开视为所有版本都有效的方案。

网络扩展与 TUN:不是同一项开关

TUN 是虚拟网络接口机制。客户端可以通过特权服务启动内核、创建接口和设置路由,也可以采用 Apple 的 Network Extension 实现网络接管。是否出现“添加 VPN 配置”或“允许系统扩展”,取决于具体客户端的实现,不能仅凭“TUN”名称判断。

因此,Clash Verge Rev 开启 TUN 后没有出现 VPN 配置弹窗,不足以证明安装失败;另一个客户端弹出 VPN 配置授权,也不代表它需要相同的服务安装步骤。应以该客户端的设置说明和启动日志为准。

按提示类型查找系统设置

系统设置中的栏目会随 macOS 版本和已安装组件变化。找不到某个栏目时,可用系统设置搜索框查找“VPN”或“扩展”;没有请求记录,也没有对应组件时,不需要为“补齐权限”额外安装其他软件。

用只读命令辅助确认

sw_vers
systemextensionsctl list
ifconfig -l
scutil --nc list

sw_vers 显示系统版本;systemextensionsctl list 列出已登记的系统扩展,但不会覆盖所有形式的应用扩展或特权服务。ifconfig -l 可以看到接口名称,scutil --nc list 可辅助查看系统登记的网络连接服务。

看到 utun 接口只能说明系统存在隧道接口。iCloud 功能、其他 VPN 和网络工具也可能创建它;不能用“出现 utun”作为 Clash TUN 已成功接管的唯一证据。

服务模式安装:管理员授权用于什么

普通用户进程通常不能直接完成所有系统级路由操作。部分客户端通过特权辅助服务执行相关动作,让图形界面不必始终以管理员身份运行。以 Clash Verge Rev 为例,服务模式与 TUN 接管有关,但服务安装入口的名称和位置会随客户端版本调整,应在当前版本的设置中查找“服务模式”或服务状态。

  1. 先退出其他正在修改系统代理或路由的客户端,避免多个程序同时恢复和覆盖网络设置。
  2. 从当前客户端内部发起安装或修复服务的操作,再核对系统授权框中的应用名称。
  3. 需要管理员授权时,输入有管理权限的本机账户凭据。Apple ID 密码与订阅服务密码不是这里需要的凭据。
  4. 安装后返回客户端检查服务状态,再单独开启 TUN。查看日志中是否出现权限不足、接口创建失败或路由添加失败。

安装服务后仍报权限错误,应先确认客户端主程序与辅助服务是否来自同一次安装。直接覆盖旧应用、同时保留多个副本,可能造成界面已更新而服务仍为旧组件。优先使用客户端自带的服务修复或卸载重装入口,不要手工删除来源不明的系统文件。

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

“某应用想使用储存在钥匙串中的机密信息”表示进程请求读取受保护项目。项目可能与应用保存的凭据、代理认证或其他功能有关,具体取决于客户端实现。它不是订阅链接导入的必经步骤,也不能仅凭弹窗出现就认定请求合理。

区分管理员密码与钥匙串密码

通过系统恢复流程或管理员重置账户密码后,“登录”钥匙串可能仍使用旧密码。这种情况下,新登录密码能进入桌面,却不一定能解锁原钥匙串。应根据 Apple 的钥匙串恢复流程处理,不要连续尝试无关的订阅密码。

在“钥匙串访问”中核对请求

  1. 用 Spotlight 搜索“钥匙串访问”并打开。较新系统中的“密码”应用不替代全部钥匙串项目管理功能。
  2. 选择“登录”钥匙串,按弹窗显示的项目名称搜索,不要按猜测批量删除项目。
  3. 打开匹配项目的信息,检查名称、类型以及可用的访问控制信息;核对请求进程是否属于当前安装的客户端。
  4. 确认本次操作合理后,可先选择“允许”完成一次访问。只有确认应用身份与长期使用需求后,再考虑“始终允许”。

应用更新后再次询问,并不一定表示密码错误。应用签名、路径或钥匙串项目的访问控制条件发生变化,都可能触发重新确认。若每次启动都重复出现,记录项目名称与请求进程,检查是否同时运行了下载目录和“应用程序”中的两个副本。

若弹窗请求的是与代理无关的敏感项目,先选择“拒绝”,再检查功能来源。重置默认钥匙串可能导致原有已存密码无法继续使用,不应作为常规的第一步修复方案。

授权后验证:端口、系统代理与路由分开检查

权限批准只代表系统允许某项动作。要判断能否联网,还需要确认内核已启动、配置已加载、规则与策略组有效。先关闭 TUN,只验证系统代理;系统代理可用后,再测试确实需要 TUN 的应用。

第一步:确认实际监听端口

下列示例假设当前配置的混合代理端口为 7890。这只是配置示例,不是所有客户端的默认值。若设置中显示其他端口,命令中的数字必须同步修改。

mixed-port: 7890
allow-lan: false
mode: rule

以上只是配置片段,不能代替包含节点、策略组和规则的完整 Profile。不要为了套用示例覆盖订阅。mixed-port 可接受 HTTP 与 SOCKS 代理连接;外部控制接口则是另一种用途,即使某份配置使用 9090,也不能把它填成浏览器代理端口。

lsof -nP -iTCP:7890 -sTCP:LISTEN
scutil --proxy
curl --proxy http://127.0.0.1:7890 --connect-timeout 10 --max-time 20 -I https://example.com

第一条命令帮助检查监听进程;第二条显示当前系统代理状态;第三条显式使用指定代理端口请求页面。收到目标站点的 HTTP 响应可验证这一次代理请求,但不代表所有网站、UDP 流量或应用都已通过。

第二步:检查系统代理是否指向同一端口

macOS Ventura 13 及更新系统可进入“系统设置”→“网络”→当前网络服务→“详细信息”→“代理”。对照客户端设置中的地址与端口;本机代理常用地址是 127.0.0.1。Wi-Fi 和以太网属于不同网络服务,切换连接后需要重新检查实际使用的服务。

系统代理对应用是否生效,取决于应用是否遵从这些设置。终端中的程序也不一定自动读取系统代理,因此上面的 curl 命令显式指定了代理。不能因为某个终端命令仍直连,就直接认定网络扩展授权失败。

第三步:再验证 TUN 与 DNS

开启 TUN 后,使用此前不遵从系统代理的目标应用发起一次请求,并同步观察客户端连接记录与日志。只有确认连接进入当前内核,才能继续判断命中了哪条规则、使用了哪个策略组。

如果日志显示 DNS 超时,应检查 DNS 监听、路由和其他网络工具的冲突,而不是反复批准钥匙串。采用 fake-ip 的配置还要检查域名解析是否进入预期链路;仅看到虚拟接口存在,不能证明 DNS 与分流都正确。

反复弹窗或断网时的回退顺序

  1. 记录现象:保存 macOS 版本、客户端名称和版本、弹窗原文,以及错误发生在启动、安装服务还是开启 TUN 时。分享截图前遮住订阅地址、令牌和账户信息。
  2. 关闭当前客户端的 TUN:确认客户端有机会正常恢复路由,再观察网络是否恢复。
  3. 关闭系统代理:到当前网络服务的“代理”页面核对。如果应用异常退出后留下本机代理,而监听进程已停止,浏览器可能继续把请求送往空端口。
  4. 逐个停用冲突组件:暂时断开其他 VPN,按需停用已确认的过滤器,再单独启动一个代理客户端测试。不要一次删除全部网络配置。
  5. 按组件修复:服务错误使用服务修复入口;钥匙串错误检查具体项目;系统扩展错误查看对应授权记录。保留能工作的 Profile,再调整配置。

更换客户端前,先关闭旧客户端的系统代理和 TUN,并使用它提供的卸载服务入口处理辅助组件。拖走应用图标不一定会移除系统扩展、VPN 配置或后台服务;反过来,也不应删除无法确认归属的组件。