macOS 安装 Clash 客户端:网络扩展授权与钥匙串弹窗处理步骤

macOS 上首次启动常被网络扩展安装、系统设置放行与钥匙串访问弹窗卡住。按系统版本梳理每个弹窗出现的时机、正确的点击选择,以及授权失败后的重置办法。

先分清三类授权:系统代理、辅助服务与网络扩展

macOS 客户端里的「设置为系统代理」「安装服务模式」「启用 TUN」不是同一个开关。它们调用的系统能力不同,出现的弹窗也不同。把三者混在一起处理,常见结果是已经批准了网络扩展,却仍然无法修改代理;或者系统代理已经生效,又重复安装 TUN 服务。

功能 系统动作 常见授权 适用范围
系统代理 写入 HTTP、HTTPS 与 SOCKS 代理 可能要求管理员密码或辅助服务权限 遵循 macOS 代理设置的应用
服务模式 安装高权限辅助进程 管理员账户密码 稳定修改系统代理、启动内核或接管网络
TUN 模式 建立虚拟网络接口并调整路由 VPN 配置、网络扩展或辅助服务授权 不读取系统代理的应用与部分命令行流量
钥匙串访问 读取已保存的令牌、订阅凭据或服务密钥 当前 macOS 登录密码 只对应弹窗中列出的钥匙串项目

以常见的 Clash Verge Rev 2.x、ClashX.Meta 1.4.x 与基于 mihomo 内核的 macOS 客户端为例,界面名称可能写成「系统代理」「Service Mode」「Clash Core」「TUN Mode」或「增强模式」。具体实现并不完全一致。安装时应按实际需要逐项开启,不必为了完成安装一次性批准全部功能。

首次启动的正确顺序

第一步:把应用放进“应用程序”目录

下载完成后打开 DMG,将客户端拖到「应用程序」,再从访达的「应用程序」目录启动。不要长期从 DMG 映像、下载目录或解压后的临时目录运行。应用路径变化会影响登录项、辅助服务和钥匙串访问控制,升级后反复弹窗经常与路径或代码签名变化有关。

  1. 在访达打开下载的 DMG 或压缩包。
  2. 将应用拖入「应用程序」。
  3. 弹出安装映像,关闭仍在运行的旧副本。
  4. 从「应用程序」中打开客户端。
  5. 确认菜单栏或程序坞中只有一个客户端实例。

如果 macOS 提示应用来自互联网,确认文件来源与应用名称后选择「打开」。若系统直接阻止启动,可进入「系统设置」→「隐私与安全性」,在安全区域找到刚才被阻止的应用并选择「仍要打开」。旧版 macOS 12 Monterey 对应路径是「系统偏好设置」→「安全性与隐私」→「通用」。

第二步:导入配置并确认本地端口

在客户端的「配置」或「Profiles」页面导入订阅,等待配置解析完成,再选择一个策略组节点。mihomo 配置中常见混合端口是 7890,SOCKS 端口可能是 7891,外部控制端口常见为 9090;这些只是常用默认值,应以当前配置和客户端设置页显示的数值为准。

mixed-port: 7890
allow-lan: false
mode: rule
log-level: info
external-controller: 127.0.0.1:9090

如果另一个代理工具已经监听 7890,Clash 内核通常会启动失败或连续重启。退出其他代理应用后,可在终端检查端口占用:

lsof -nP -iTCP:7890 -sTCP:LISTEN
lsof -nP -iTCP:9090 -sTCP:LISTEN

第三步:先开启系统代理

打开客户端中的「系统代理」开关。部分客户端第一次执行会请求安装辅助服务,并弹出管理员认证窗口。这里输入的是当前 Mac 管理员账户密码,不是 Apple ID 密码。输入时窗口通常不会显示字符数量,这是 macOS 权限验证的正常行为。

开启后可通过终端确认当前网络服务的代理状态。无线网络服务通常名为 Wi-Fi,部分旧系统或自定义环境可能显示其他名称:

networksetup -getwebproxy Wi-Fi
networksetup -getsecurewebproxy Wi-Fi
scutil --proxy

输出中的 Enabled: Yes、服务器地址 127.0.0.1 与客户端端口一致,说明系统代理已经写入。此时浏览器仍无法访问,应优先检查节点、规则和 DNS,而不是继续重复安装网络扩展。

macOS 12 至 macOS 15 的网络扩展放行路径

TUN 模式可能通过 Network Extension、Packet Tunnel Provider、系统扩展或高权限辅助进程实现。不同客户端、安装方式和 macOS 版本会呈现不同提示。只有在开启 TUN、增强模式或安装网络服务时出现系统通知,才需要进入对应页面批准。

macOS 15 Sequoia

macOS 15 将扩展管理入口集中到了「登录项与扩展」。收到“系统扩展已被阻止”或网络扩展请求后,先打开「系统设置」→「通用」→「登录项与扩展」,检查页面底部的「网络扩展」。找到与当前客户端开发者或应用名称一致的项目,打开开关并按提示认证。

如果出现“添加 VPN 配置”对话框,确认请求来自刚刚操作的 Clash 客户端后选择「允许」。完成后返回客户端,关闭再重新开启 TUN。部分版本需要完全退出客户端并重新启动,系统才会重新加载 Packet Tunnel Provider。

macOS 13 Ventura 与 macOS 14 Sonoma

在 Ventura 13.7 与 Sonoma 14.7 上,被拦截的系统软件通常会在「系统设置」→「隐私与安全性」页面下方显示。点击「允许」后输入管理员密码,再按系统提示重新打开客户端或重启 Mac。若页面没有按钮,不要持续点击客户端里的“安装”;先退出应用,重新触发一次 TUN 或服务安装请求,再立即查看「隐私与安全性」。

VPN 配置可在「系统设置」→「VPN」查看。若存在同一客户端留下的多个失效配置,先关闭 TUN,再删除明确属于旧版本的重复项,然后由当前版本重新创建。公司设备上的 VPN 项可能由移动设备管理配置下发,不应自行删除。

macOS 12 Monterey

Monterey 12.7 使用旧版「系统偏好设置」。进入「安全性与隐私」→「通用」,点击左下角锁形按钮并完成认证,再批准被阻止的系统软件。网络服务和 VPN 状态可在「系统偏好设置」→「网络」中检查。批准后如果提示重新启动,应保存工作并正常重启,不要强制结束系统设置进程。

钥匙串弹窗应该选择“允许”还是“始终允许”

钥匙串弹窗会明确列出请求访问的应用与项目名称。Clash 客户端可能用钥匙串保存订阅认证信息、控制器密钥、服务令牌或安全存储项。处理前先核对弹窗顶部的应用名称是否与刚启动的客户端一致,并确认弹窗是在导入订阅、安装服务或升级后首次启动时出现。

按钮 结果 建议场景
拒绝 本次不提供该钥匙串项目 应用名称、来源或请求时机无法确认
允许 仅批准本次读取 首次验证功能,暂不建立长期授权
始终允许 为当前应用身份保存访问权限 确认是固定安装路径中的可信客户端,且需要后台自动启动

如果客户端需要随登录自动启动,且每次启动都读取同一个服务密钥,选择「始终允许」可避免后台启动被弹窗阻塞。这里仍然需要输入当前 macOS 登录账户密码。Touch ID 是否可用取决于系统版本、钥匙串项目和认证策略,弹窗要求密码时应使用本机账户密码。

若仅选择「允许」,下一次应用重启时再次询问属于预期行为。若已经选择「始终允许」仍然每次弹出,重点检查应用是否仍从 DMG 运行、升级时是否更换了发行渠道,以及系统中是否同时保留两个同名客户端。钥匙串访问控制会识别应用签名;同名并不代表是同一个授权主体。

网络扩展授权失败后的重置步骤

先做最小化重试

  1. 关闭客户端中的 TUN、系统代理和开机启动。
  2. 从菜单栏选择「退出」,再打开“活动监视器”确认客户端进程已结束。
  3. 进入「系统设置」→「网络」→「VPN」,删除明确属于当前客户端且状态异常的旧配置。
  4. 在 macOS 15 的「通用」→「登录项与扩展」→「网络扩展」中关闭旧项目,再重新打开。
  5. 重新启动 Mac,从「应用程序」启动客户端。
  6. 先开启系统代理测试,再单独开启 TUN。

可以使用系统命令查看已注册的系统扩展。该列表用于确认扩展是否存在,不代表 Clash 流量一定已经通过:

systemextensionsctl list
scutil --nwi
ifconfig | grep -E "utun[0-9]"

看到 utun0utun1 等接口也不能直接判定它属于 Clash,因为 iCloud Private Relay、企业 VPN 和其他网络软件都可能创建 utun。更可靠的方法是关闭 Clash TUN 前后对比接口、路由与客户端日志,并确认日志中没有 permission denied、operation not permitted 或 route setup failed。

再重装辅助服务

很多客户端在「设置」→「服务模式」或「设置」→「Clash Core」中提供卸载与重新安装入口。先执行卸载,完全退出客户端,重新打开后再安装。认证成功后,应回到客户端确认服务状态显示为运行,而不是只看管理员密码窗口是否消失。

不要从网上复制不明的 sudo rm 命令批量删除 LaunchDaemon、系统扩展或网络配置。不同客户端的 bundle identifier 和辅助服务名称不同,删错项目会影响其他 VPN。优先使用客户端自带卸载入口;客户端已无法启动时,再根据其项目文档核对准确服务名称。

钥匙串持续弹窗的安全重置办法

打开「应用程序」→「实用工具」→「钥匙串访问」,左侧选择「登录」钥匙串,再选「所有项目」。使用客户端名称、开发者名称或弹窗中显示的项目名搜索。双击目标项目,打开「访问控制」,可以看到哪些应用被允许访问。

  1. 记录弹窗显示的钥匙串项目全名。
  2. 退出 Clash 客户端及其菜单栏进程。
  3. 在“钥匙串访问”中只定位对应项目,不要删除整个“登录”钥匙串。
  4. 若访问列表指向旧路径,可移除旧应用条目并保存。
  5. 若项目明显属于已卸载的旧客户端,可删除该单项。
  6. 从「应用程序」重新启动当前客户端,让它重新创建或申请访问。
  7. 核对应用名称后选择「允许」;功能稳定后再决定是否使用「始终允许」。

删除订阅凭据类项目后,客户端可能要求重新登录或重新导入订阅。操作前应确认订阅链接仍可获取。不要删除证书、Wi-Fi 密码、浏览器安全存储或名称无法确认的通用密码项目。

授权完成后仍无法上网的检查顺序

网络扩展显示已启用,只说明 macOS 接受了扩展,不代表节点可用、规则正确或 DNS 已完成解析。建议严格按下面的顺序检查,避免把所有故障都归到系统权限。

  1. 内核状态:确认 mihomo 或 Clash Meta 内核处于运行状态,日志没有端口占用和配置解析错误。
  2. 订阅状态:手动更新配置,确认订阅未过期,策略组中已选择具体节点而非不可用的占位策略。
  3. 系统代理:使用 scutil --proxy 检查地址和端口,确保与客户端的 mixed-port 一致。
  4. 运行模式:日常使用优先选择 Rule。Global 会让更多请求走单一策略,Direct 则不会按代理规则转发。
  5. DNS:检查配置中的 nameserver、fallback 或 fake-ip 设置。修改后重启内核,而不是只切换系统代理。
  6. TUN 冲突:退出其他 VPN、抓包工具和同类代理客户端,再单独开启 Clash TUN。
  7. 防火墙与过滤器:进入「系统设置」→「网络」→「VPN 与过滤器」,检查是否存在同时启用的内容过滤器。

系统代理测试正常而 TUN 打开后断网,故障通常集中在路由、DNS 劫持、MTU 或其他 VPN 冲突。可先关闭 TUN 的自动路由与 DNS 接管选项逐项测试。配置使用 Fake-IP 时,还要确认局域网设备、企业域名和本地域名是否需要加入 fake-ip-filter。不要在不了解规则含义时直接把所有域名改成直连。

反过来,如果 TUN 正常但浏览器在关闭 TUN 后无法访问,应检查系统代理是否真的写入。某些客户端的服务模式安装失败后,界面开关会短暂亮起,但系统代理没有变化。此时重新安装辅助服务,并再次用 networksetupscutil 验证。

升级与卸载时避免权限残留

升级前先关闭系统代理和 TUN,再退出客户端。使用应用内更新时保持应用位于「应用程序」;手动替换时,应先退出旧版本,再用新版本覆盖,不要同时保留“客户端”“客户端 2”和下载目录副本。更换不同分支或发行版时,先导出本地配置,并使用旧客户端的服务卸载功能。

卸载应用图标不会自动清理系统代理。如果退出前系统代理仍指向 127.0.0.1:7890,删除客户端后浏览器可能无法联网。可在「系统设置」→「网络」→「Wi-Fi」→「详细信息」→「代理」中关闭网页代理、安全网页代理与 SOCKS 代理,也可以重新安装客户端、开启后再正常关闭系统代理。

完成卸载后,再检查「系统设置」→「通用」→「登录项与扩展」、「系统设置」→「网络」→「VPN」以及“钥匙串访问”。只清理能够确认属于旧客户端的项目。准备继续使用同一客户端时,不必为了升级删除全部配置,保留订阅与规则文件通常更稳妥。

下载Clash