NT-02.1网络扩展权限为何必须手动放行
Clash 系客户端(包括 Clash Verge、Clash Plus 等基于 mihomo 内核的应用)要接管系统级流量,依赖的是 macOS 提供的 NetworkExtension 框架。这套框架从 macOS Catalina 之后逐步取代了旧式内核扩展(kext),运行在用户态而非内核态,安全边界更清晰,但代价是每一次安装新客户端,系统都会把授权动作丢给用户手动确认——这不是客户端的行为异常,而是系统设计使然。
具体表现为:客户端启动后弹出"系统扩展被阻止"提示,或者在设置里打开代理模式、TUN 模式时无响应、按钮点击后没有下一步动作。这类情况的根源几乎都指向同一件事:网络扩展尚未在系统设置里被显式允许。系统默认对任何请求接管网络层的扩展持保留态度,哪怕客户端本身完全正常,也必须走一遍授权流程才能生效。
macOS Ventura(13)之后,网络扩展的开关位置从"安全性与隐私"整体迁移到了"隐私与安全性"分类下的独立入口,旧教程里的菜单路径大多已失效,按下文路径操作即可,不必参照过时截图。
NT-02.2系统设置里逐步放行网络扩展
网络扩展授权分两步:第一次触发弹窗时的即时确认,以及弹窗被误关或错过后的手动补授权。两条路径都要熟悉,因为实际操作中弹窗被系统提示音掩盖而错过点击的情况并不少见。
- 打开客户端并尝试启用代理模式(或 TUN 模式),系统会弹出一条包含"网络扩展"字样的通知,点击通知或前往"系统设置"。
- 进入「系统设置」→「隐私与安全性」,在页面靠下位置找到「网络扩展」一项(部分系统版本下位于「登录项与扩展」分类内)。
- 点击进入后,会看到已安装客户端的扩展名称,勾选框旁边显示状态。将对应客户端的开关点亮为允许状态。
- 系统通常会再弹出一次确认对话框,要求输入本机登录密码或使用触控 ID 确认,这一步是身份验证而非客户端行为,正常输入即可。
- 回到客户端重新点击启用代理或 TUN 模式,此时应能正常生效,状态栏或主界面会显示连接中或已连接。
如果在「隐私与安全性」页面完全找不到「网络扩展」入口,大概率是客户端的扩展注册尚未完成,建议先完全退出客户端(而非仅关闭窗口),重新打开一次触发注册流程,再回头检查设置项是否出现。
| 现象 | 可能原因 | 处理方向 |
|---|---|---|
| 设置里找不到网络扩展入口 | 扩展未完成注册 | 完全退出客户端后重新启动一次 |
| 开关点亮后仍无法连接 | 系统缓存了旧的拒绝状态 | 关闭开关、重启客户端、再重新打开开关 |
| 密码验证后无响应 | 验证超时或系统进程未刷新 | 重新点击开关,避免长时间停留在验证对话框 |
NT-02.3钥匙串反复弹窗的处理方法
另一个高频卡点是钥匙串(Keychain)权限弹窗反复出现,常见提示为"是否允许‘钥匙串访问’使用你的机密信息"或类似的证书访问请求。这类弹窗与网络扩展权限来源不同:它是客户端在读取或写入本机证书、配置密钥时触发的系统级安全确认,目的是防止未经授权的进程读取敏感凭据。
正常情况下,弹窗出现时点击「始终允许」而不是「允许」,系统会记住这次授权,后续启动不再重复询问。如果每次启动客户端都重新弹出同一条钥匙串请求,通常是以下两种原因之一:
- 点击的是「允许」而非「始终允许」,系统仅授予单次会话权限,下次启动视为新请求。
- 钥匙串中存在同名但签名信息不一致的旧条目(常见于卸载重装客户端后),系统无法确定该信任哪一条,于是每次都重新询问。
遇到第二种情况,可以打开系统自带的「钥匙串访问」应用,在搜索框里输入客户端名称或相关证书关键词,检查是否存在多条同名记录。若确认是旧版本残留,删除多余条目后重新启动客户端,再在新弹出的授权请求里选择「始终允许」即可解决重复弹窗问题。
删除钥匙串条目前,确认该条目确实与当前排查的客户端相关,避免误删系统或其他应用依赖的证书。若无法判断某条记录的用途,优先保留,只处理明确重复且带有旧版本时间戳的条目。
NT-02.4网络扩展与 TUN 模式的关系
之所以 macOS 对这类权限格外谨慎,是因为网络扩展框架承载的正是 TUN 模式的底层实现。TUN 模式需要在系统里建立一块虚拟网卡,把原本绕不开系统代理设置的命令行工具、部分沙盒应用的流量也一并接管,这种"接管全局网络路径"的能力如果不设门槛,理论上可被恶意程序滥用来窃听或篡改流量。因此系统要求每一个申请该能力的进程,都必须经过用户在设置里的显式确认,并且该确认状态会与应用签名绑定,签名变化(比如更换安装包来源)会导致授权状态失效,需要重新走一次流程。
理解这一层机制后,遇到 TUN 模式开关"点了没反应"的情况,就不必怀疑客户端本身出了问题,先检查的永远是「隐私与安全性」里的网络扩展开关状态,这是最常见也最容易被忽略的一步。
NT-02.5常见报错与排查思路
除了权限弹窗本身,授权完成后仍可能出现一些边缘情况,列出较常遇到的几种供对照排查:
- 提示扩展已被系统阻止,且设置里开关为灰色不可点击:通常是 macOS 的完整性保护机制介入,尝试重启一次 Mac,重启后系统会重新加载扩展注册状态,再进入设置检查开关是否变为可操作。
- 输入密码确认后界面卡住不动:等待几秒钟,系统扩展加载有短暂延迟,若超过半分钟仍无变化,退出客户端进程后重新启动一次。
- 多个 Clash 系客户端交替使用时权限互相冲突:同一时间只保留一个客户端的网络扩展处于启用状态,切换客户端前先在设置里关闭前一个的开关,避免虚拟网卡资源被同时占用。
大多数权限类问题都不需要重装客户端解决,按上述路径逐项确认设置状态,基本能在几分钟内完成排障。如果放行网络扩展与清理钥匙串条目后问题依旧,再考虑是否是安装包本身损坏,重新下载对应平台的安装文件。