Clash macOS 安装权限设置:网络扩展与钥匙串提示处理

说明首次启动时网络扩展、系统代理和钥匙串授权的作用,并整理被拒绝后重新开启权限的路径。

macOS 权限提示对应哪些 Clash 功能

macOS 上的 Clash 图形客户端通常由界面、Clash 或 mihomo 内核、系统代理控制模块以及可选的 TUN 接管模块组成。首次启动时出现的系统提示并不完全相同,具体取决于客户端采用的实现方式、macOS 版本和已经启用的功能。普通规则代理、系统代理和 TUN 模式需要的权限也不是同一层级。

只使用系统代理时,客户端主要把 macOS 当前网络服务的 HTTP、HTTPS 或 SOCKS 代理指向本机监听端口。浏览器和遵循系统代理设置的应用会把连接交给 Clash 内核,再由规则决定使用直连、代理节点或其他策略组。客户端可能需要管理员授权来安装辅助服务或修改网络设置,但不一定会注册网络扩展。

启用 TUN 模式后,客户端需要建立虚拟网络接口并调整系统路由,使不读取系统代理的程序也能进入 Clash。部分客户端使用 Apple Network Extension 框架,部分客户端通过具有管理权限的后台服务创建虚拟接口。因此,同样是 TUN 功能,不同客户端显示的提示可能是“允许网络扩展”“添加 VPN 配置”“安装辅助工具”或管理员账户验证。

钥匙串用于保存或读取受保护的凭据。客户端可能把辅助服务授权信息、代理认证信息或其他敏感配置存入登录钥匙串。需要区分钥匙串访问窗口与普通管理员验证窗口:前者通常会明确提到“钥匙串”或某个钥匙串项目,后者用于确认系统级修改,不能仅凭窗口位置判断两者相同。

提示类型 常见用途 拒绝后的影响
管理员账户验证 安装后台辅助服务、修改受保护的网络配置 服务模式或 TUN 功能可能无法启用
网络扩展或 VPN 配置 创建受系统管理的虚拟网络通道 TUN 接管不能启动,普通系统代理可能仍可使用
钥匙串访问 读取或保存受保护的授权与认证数据 可能反复询问密码,或无法恢复相关配置
通知权限 显示连接、更新与后台状态 不影响核心代理连接,但状态提醒会减少

Clash macOS 首次启动设置顺序

安装后先把应用放入“应用程序”目录,再从该目录启动。直接在下载目录或磁盘映像中运行,可能导致辅助服务路径变化、自动启动失效,升级时也更容易留下旧组件。若系统提示应用来自互联网,确认来源后再继续打开。

  1. 先启动客户端,不立即开启 TUN。

    等待界面显示内核已经运行,确认本地代理端口没有冲突。常见端口由配置中的 portsocks-portmixed-port 决定,实际数值以当前配置为准。

  2. 导入有效配置或订阅。

    订阅通常提供节点、策略组和规则。导入完成后手动更新一次,确认没有 YAML 解析错误,并在策略组中选择可用节点。网络权限只能让流量进入内核,不能修复失效节点或错误订阅。

  3. 先测试普通系统代理。

    开启“系统代理”后访问测试页面,观察客户端连接记录。如果日志中能看到域名、规则和策略组,说明应用流量已经进入 Clash。此时若连接失败,应优先检查节点和规则,而不是继续增加系统权限。

  4. 按需要安装服务模式或开启 TUN。

    只有确实需要接管命令行程序、游戏、虚拟机相关流量或不遵循系统代理的应用时,再启用 TUN。系统弹出网络扩展、VPN 配置或辅助工具提示后,按客户端界面给出的步骤完成授权。

  5. 重启客户端并复核开关。

    辅助服务安装成功后,完全退出客户端再打开。不要只关闭主窗口,因为菜单栏应用可能仍在后台运行。重新进入后检查系统代理、TUN 和策略模式是否保持在预期状态。

网络扩展被拒绝后如何重新开启

首次弹出网络扩展请求时选择“不允许”,通常不会损坏 Clash 配置,但对应的 TUN 或 VPN 接管功能会保持不可用。重新授权的入口随 macOS 版本调整过,界面名称也可能略有差异,应结合系统设置中的搜索功能定位。

在系统设置中查找扩展状态

较新的 macOS 可先打开“系统设置”,在搜索框中输入“网络扩展”“VPN”或“过滤器”。常见位置包括“网络”下的“VPN 与过滤器”,以及“通用”下“登录项与扩展”中的“网络扩展”。如果列表内出现当前 Clash 客户端或其辅助组件,开启对应项目,然后返回客户端重试 TUN。

部分版本会在“隐私与安全性”页面底部显示被阻止的系统软件或扩展。此类提示通常只在安装后的有限时间内出现。点击允许后,系统可能要求管理员账户验证,也可能要求退出应用或重新启动 macOS。重启前先保存工作,并正常退出其他程序。

系统设置里找不到对应项目

如果网络扩展列表没有任何相关记录,可能是客户端尚未真正发起注册、应用仍在磁盘映像中、辅助组件安装失败,或当前客户端根本不使用 Network Extension 框架。此时不应反复寻找一个不存在的开关,可按以下顺序处理:

  1. 退出客户端,并在“活动监视器”中确认相关界面进程已经结束。
  2. 确认应用位于“应用程序”目录,且没有同时保留多个不同版本并交替启动。
  3. 重新打开客户端,在设置中关闭再开启 TUN 或服务模式,让应用重新触发安装流程。
  4. 若客户端提供“安装服务”“修复服务”或“重新安装辅助组件”,使用其内置入口处理。
  5. 仍无提示时查看客户端日志,确认是权限错误、服务未安装,还是配置字段导致内核启动失败。

某些基于 mihomo 的客户端使用特权辅助服务管理 TUN,而不是在系统设置中显示独立网络扩展。这种情况下,管理员验证和服务状态更重要。判断依据应是客户端文档、日志中的服务启动结果,以及系统是否创建了对应虚拟接口,不能把“列表中没有网络扩展”直接等同于安装失败。

钥匙串密码提示与重复弹窗处理

macOS 的“登录”钥匙串通常会在用户登录时自动解锁。Clash 客户端或其辅助组件读取受保护项目时,系统可能弹出访问确认。窗口一般会显示请求访问的应用和钥匙串项目名称,并提供拒绝、允许一次或始终允许等选项。先核对应用路径和名称,再决定授权范围。

若只是首次启动或客户端刚升级,选择允许一次可以观察后续行为。只有在来源、签名和用途明确,且该项目确实需要后台持续读取时,才考虑持续授权。输入框要求的通常是当前 macOS 用户登录密码,而不是订阅服务密码、代理节点密码或 Apple 账户密码。

登录密码正确但钥匙串仍不接受

修改过 macOS 登录密码后,登录钥匙串的旧密码可能没有同步更新。此时系统登录已经成功,但旧钥匙串仍使用之前的密码。可以打开 macOS 自带的“钥匙串访问”,检查“登录”钥匙串是否处于锁定状态,并尝试使用旧登录密码解锁。若仍记得旧密码,可在钥匙串设置中更新密码,使其与当前账户一致。

如果旧密码已经无法找回,应先评估钥匙串中保存的其他账户凭据。重设默认钥匙串会影响更多应用,不应把它作为处理单个 Clash 提示的第一步。更稳妥的做法是先定位与当前客户端明确相关的项目,退出客户端后备份必要信息,再删除该项目并重新启动,让客户端重新创建授权记录。

每次启动都要求授权

  • 检查是否每次都从不同路径启动应用,例如下载目录、磁盘映像和“应用程序”目录轮流使用。
  • 确认客户端升级后应用签名或组件名称是否发生变化;旧钥匙串访问控制可能不再匹配新程序。
  • 检查“登录”钥匙串是否会在登录后自动解锁,以及是否被安全策略提前锁定。
  • 避免删除整个钥匙串。只处理名称和归属都能确认的客户端项目。
  • 如果弹窗名称指向陌生程序,拒绝请求并检查登录项、后台项目和当前运行进程。

系统代理开启后没有效果的检查方法

系统代理开关成功不代表节点一定可用。正确的排查顺序是确认代理设置已写入、内核正在监听、流量进入日志、规则选中正确策略,最后再检查远端节点。把这些环节拆开,可以避免因为一次网页打不开就重复安装权限组件。

查看 macOS 当前代理状态

终端中可使用系统自带命令查看动态存储中的代理设置:

scutil --proxy

输出中的 HTTP、HTTPS 或 SOCKS 启用状态以及端口,应与 Clash 客户端显示的本地监听信息一致。若客户端已经打开系统代理,但命令仍显示未启用,可先关闭开关,等待数秒后重新开启,并检查是否有其他网络工具立即覆盖设置。

也可以针对具体网络服务检查设置。网络服务名称可能是“Wi-Fi”、USB 网卡名称或企业配置创建的服务,应先在系统网络设置中确认实际名称:

networksetup -getwebproxy "Wi-Fi"
networksetup -getsecurewebproxy "Wi-Fi"
networksetup -getsocksfirewallproxy "Wi-Fi"

确认本地端口与配置一致

Clash 配置可能使用单独的 HTTP 和 SOCKS 端口,也可能通过 mixed-port 提供混合入口。如果系统代理指向旧端口,而新配置已经修改监听端口,开关看似正常,连接仍会被拒绝。检查客户端概览页与当前生效配置,不要只查看订阅文件的原始内容,因为客户端可能在运行时合并覆盖字段。

日志完全没有新增连接时,问题通常位于系统代理写入、应用绕过代理或本地端口之前;日志有连接但显示 timeout,应继续检查节点、DNS 和远端可达性;日志明确显示 DIRECT,则需要核对规则顺序和当前模式。Clash 规则从上到下匹配,命中后通常不再继续查找。

关闭客户端后恢复代理

正常退出时,客户端一般会撤销由它写入的系统代理。若程序异常终止后浏览器无法联网,可重新启动同一客户端,先开启再关闭系统代理,然后正常退出。也可以在“系统设置”的当前网络服务详情中手动关闭 HTTP、HTTPS 和 SOCKS 代理。不要在不清楚网络服务名称和原有企业配置的情况下批量执行修改命令。

TUN 模式的权限、DNS 与虚拟接口

TUN 模式通过虚拟网络接口接收 IP 流量,再交给 Clash 或 mihomo 内核处理。它适合不遵循系统代理的应用,但也更容易与其他 VPN、虚拟机网络、容器工具和安全过滤软件发生冲突。普通网页代理已经满足需求时,没有必要为了“权限更完整”而额外开启 TUN。

启用 TUN 后,客户端可能要求管理员权限安装守护进程,或者请求添加 VPN 配置。授权成功后,系统网络界面中可能出现 VPN 或过滤器项目,终端网络接口列表中也可能出现 utun 接口。macOS 本身以及其他应用也会创建 utun,因此仅看到该名称不能证明它一定属于 Clash,应结合开启前后的变化和客户端日志判断。

mihomo 配置中的 TUN 常见字段包括 enablestackauto-routeauto-detect-interface。图形客户端可能自动生成这些字段,也可能用界面开关覆盖订阅中的值。修改 YAML 前应先确认客户端采用“订阅原始配置”“覆写配置”还是“运行时合并配置”,避免更新订阅后手动改动被覆盖。

DNS 是 TUN 排查中的关键环节。域名需要先被解析,随后连接才能按域名规则或 IP 规则分流。若开启 TUN 后仅域名访问失败,而直接访问已知 IP 有响应,应检查 Clash DNS 模块是否启动、上游 DNS 是否可达,以及其他 VPN 是否强制接管 DNS。若日志中出现 DNS 循环或查询持续超时,先暂时退出其他网络接管工具,再单独测试 Clash。

权限已经允许但 Clash 仍无法连接

系统权限只是本地链路的一部分。网络扩展显示已允许、钥匙串不再提示之后,连接仍可能受订阅过期、节点不可达、系统时间错误、端口冲突或规则配置影响。建议按从本地到远端的顺序检查。

  1. 检查内核状态。

    确认客户端没有显示内核退出、配置解析失败或启动循环。YAML 缩进错误、重复端口和不受当前内核支持的字段,都可能使内核在获得权限后仍无法运行。

  2. 更新订阅并查看更新时间。

    手动更新一次配置,记录返回的错误信息。订阅地址失效、网络请求被拦截和配置内容格式错误,需要分别处理,反复点击更新不能改变错误类型。

  3. 测试多个节点。

    延迟测试只能作为可达性参考,不能完全代表实际连接质量。选择不同地区和协议的节点测试,观察日志是连接超时、握手失败还是 DNS 失败。

  4. 校准系统日期与时区。

    明显错误的日期、时间或时区会导致 TLS 连接验证失败。打开 macOS 日期与时间设置,启用自动设置,并确认当前时区正确。

  5. 退出其他网络接管程序。

    其他 VPN、代理客户端、内容过滤器和企业安全软件可能修改默认路由或 DNS。暂时退出后重新测试,但企业管理设备上的安全组件应遵循组织管理要求。

  6. 复核当前模式和策略组。

    规则模式依赖配置内的规则顺序与策略选择;全局模式通常把流量交给指定全局策略;直连模式则不会使用代理节点。模式选错时,即使权限和节点都正常,也会得到与预期不同的连接结果。

升级客户端后 TUN 突然失效

升级可能同时替换图形程序、内核和辅助服务。先完全退出旧进程,再从“应用程序”目录启动新版本。若界面提示服务版本不匹配,使用客户端提供的卸载或修复服务入口重新安装辅助组件。完成管理员验证后重启客户端,检查网络扩展或 VPN 项目是否仍启用。

不要把旧版和新版放在不同目录反复启动。系统授权可能绑定应用标识、签名和组件路径,交替运行会让钥匙串访问与后台服务状态更难判断。确认新版本配置可用后,再按客户端提供的方式清理旧组件。

适合提交问题的诊断信息

向客户端维护者反馈时,可提供 macOS 大版本、Mac 芯片类型、客户端版本、内核类型、问题发生步骤和经过隐藏处理的日志片段。订阅地址、节点服务器地址、认证信息和本机账户信息不应公开。日志应保留错误发生前后的上下文,而不是只截取“连接失败”一行。

下载Clash