先区分四种授权提示

macOS 上的启动拦截、管理员授权、网络扩展许可和钥匙串访问,属于不同的安全机制。排查时先记录提示的完整原文、请求进程名称、发生时间,以及刚执行的操作。不要把所有弹窗都当作「TUN 权限不足」,也不要连续输入密码试探。

提示或现象对应机制优先检查
无法验证开发者、无法检查是否包含恶意软件Gatekeeper 启动检查安装来源、签名与隐私安全设置
安装辅助工具时要求管理员密码特权辅助服务授权是否刚主动安装或修复服务
系统扩展被阻止、添加 VPN 配置扩展或网络配置许可请求者是否与当前组件一致
访问「登录」钥匙串中的机密信息钥匙串条目访问控制条目名称、请求程序与登录密码

安装路径与「无法打开」处理

确认系统版本和处理器

  1. 打开苹果菜单 →「关于本机」,记录 macOS 版本与「芯片」或「处理器」。Apple M 系列属于 Apple Silicon,Intel 机型选择 x86_64 安装包。
  2. 从下载页选择 macOS 对应架构。若提供通用包,仍需检查该版本支持的最低系统要求;不要仅凭文件名判断兼容性。
  3. 打开磁盘映像,将应用复制到「应用程序」。退出映像内运行的旧实例,推出映像,再从「应用程序」启动。
  4. 升级前先退出客户端。保留现有配置,记录原版本、所选内核和监听端口;不要在故障排查第一步删除整个配置目录。

应用长期从下载目录或磁盘映像启动,会增加路径变化和重复副本的问题。固定安装位置后,可在 Finder 中打开「应用程序」,确认只启动需要使用的那一份。程序架构不匹配、系统版本过低与签名拦截不是同一种故障,不能用同一条命令处理。

按系统提示决定是否允许启动

macOS 13 Ventura、14 Sonoma 和 15 Sequoia 均可从苹果菜单 →「系统设置」→「隐私与安全性」检查安全提示。先尝试打开一次应用,再查看页面下方是否出现针对该应用的阻止记录。确认来源和应用名称后,若系统提供「仍要打开」,可按提示验证身份并再次启动。macOS 15 对部分未签名或未公证应用的处理更严格,不应把 Finder 右键「打开」视为通用绕过办法。

  • 提示无法验证开发者:先核实下载来源与发布说明,再决定是否使用系统提供的例外入口。
  • 提示应用已损坏:退出旧实例,重新下载与架构匹配的包,重新复制到「应用程序」。该提示也可能涉及签名或应用内容变化,不只代表网络下载中断。
  • 提示会损坏电脑或包含恶意软件:停止运行并核实发布信息,不通过删除隔离属性强行启动。
  • 受管理设备没有允许按钮:联系组织管理员检查设备管理策略,不修改系统安全策略。

需要向维护者提供签名线索时,可以在终端执行以下只读检查。路径适用于应用以该名称安装在「应用程序」的情况;如果实际名称不同,应先在 Finder 中确认路径。

sw_vers
uname -m
codesign --verify --deep --strict --verbose=2 "/Applications/Clash Nyanpasu.app"
spctl --assess --type execute --verbose=4 "/Applications/Clash Nyanpasu.app"

uname -m 在原生 Apple Silicon 终端中通常返回 arm64,在 Intel 或 Rosetta 转译环境中可能返回 x86_64,因此架构选择仍以「关于本机」为准。签名检查结果是排查线索,不代表对程序全部行为的审查。不要为了安装客户端关闭 Gatekeeper 或系统完整性保护。

先验证系统代理,再启用服务与 TUN

建立最小可用配置

首次启动先导入可用的 Clash YAML 配置,确认配置已选中、内核成功运行,再测试普通系统代理。客户端界面的字段位置会随版本变化,以下以「系统代理」「服务模式」「TUN 模式」这些功能名为定位依据,不假设所有版本使用相同菜单层级。

  1. 在配置页选中需要使用的配置,查看内核日志,确认没有 YAML 解析错误或端口占用错误。
  2. 记录实际 HTTP 或混合监听端口。例如配置写有 mixed-port: 7890,才使用 127.0.0.1:7890;不要把 7890 当作所有安装的固定值。
  3. 启用系统代理,使用浏览器验证连接。此时先保持 TUN 关闭,避免同时改变流量入口、路由与 DNS。
  4. 确认普通代理正常后,再根据应用是否遵循系统代理设置,决定是否启用 TUN。
# 仅适用于实际 mixed-port 为 7890 的配置
lsof -nP -iTCP:7890 -sTCP:LISTEN
scutil --proxy

lsof 用于确认监听进程;scutil --proxy 用于查看系统当前代理设置。端口正在监听不等于策略组、远端节点和 DNS 都可用。若日志显示 address already in use,先找出占用进程,退出重复客户端或调整端口,不要直接结束所有名称相近的进程。

管理员密码只用于明确的服务操作

创建 TUN、修改路由等操作可能需要特权服务。若当前版本提供服务安装或修复入口,应在客户端中主动执行,再核对系统密码框中的应用或辅助工具名称。正常的一次管理员授权与随后出现的钥匙串访问框是两回事:前者批准特权操作,后者批准读取某个机密条目。

  • 使用具备管理员权限的账户完成服务安装;普通账户需要管理员协助。
  • 升级后服务与客户端版本不一致时,先通过当前版本提供的管理入口修复服务,再重新启动客户端。
  • 若系统提示后台项目被关闭,macOS 13、14 可检查「系统设置」→「通用」→「登录项」;macOS 15 可检查「通用」→「登录项与扩展」。只允许来源已确认的相关项目。
  • 服务安装失败时保存错误原文。不要递归更改整个应用目录权限,也不要用 sudo 长期运行图形客户端替代正常服务安装。

网络扩展与 VPN 配置的授权边界

只有弹窗明确说明系统扩展、网络扩展或 VPN 配置时,才进入本节。其他 VPN、安全软件、流量过滤器也会产生类似提示。先确认请求进程,不要因为正在安装 Clash Nyanpasu 就把同时出现的所有网络提示归到它名下。

系统或提示检查路径处理原则
macOS 13 / 14 扩展被阻止系统设置 → 隐私与安全性依据阻止记录核对开发者与组件,仅在存在对应入口时允许
macOS 15 扩展管理系统设置 → 通用 → 登录项与扩展 → 网络扩展检查实际列出的组件,必要时查看该分类的详情按钮
VPN 或过滤器配置系统设置 → 网络 → VPN 与过滤器检查所属应用;具体项目随系统版本和已安装组件变化

允许扩展后,是否需要重启以系统提示为准。TUN 已启用但没有网络扩展条目,不足以认定安装失败;应查看内核是否成功创建 TUN 接口、路由是否更新,以及 DNS 日志是否报错。反过来,扩展已允许也不代表订阅中的节点可连接。

钥匙串反复弹窗的处理顺序

先核对请求者和条目

钥匙串框通常会写明某个程序希望访问「登录」钥匙串中的机密信息。记录程序名称与条目名称;订阅凭据、代理认证、其他 VPN 保存的密码,都可能与网络操作同时出现。仅凭时间重合,不能确认是 Clash Nyanpasu 主程序发出的请求。若当前操作不涉及登录或读取凭据,先选择拒绝,返回检查请求来源。

「允许」通常只批准本次访问;「始终允许」用于为该条目保存相应访问许可,但实际效果取决于条目的访问控制和程序身份。不要为了消除弹窗,对所有条目放开访问。应用更新、签名变化或启动了另一份副本,都可能使既有访问许可不再匹配。

检查「登录」钥匙串状态

  1. 通过 Spotlight 搜索并打开「钥匙串访问」。macOS 15 同时提供「密码」App,但钥匙串条目的访问控制仍应在「钥匙串访问」中检查。
  2. 选择「登录」钥匙串,确认是否已解锁。密码框要求的是钥匙串密码,不是订阅密码,也不是 Apple 账户密码。
  3. 若近期由管理员重置过本地账户密码,旧「登录」钥匙串可能仍使用旧密码。知道旧密码时,按钥匙串访问提供的更改密码操作,将其更新为当前登录密码。
  4. 根据弹窗中的准确条目名称搜索,打开条目信息;若提供「访问控制」标签,检查允许访问的应用是否指向当前安装副本。
  5. 退出其他位置的副本,从「应用程序」重新启动,再触发一次原来的操作,观察是否还会请求访问。

不知道旧钥匙串密码时,不要反复尝试账户密码。重置默认钥匙串会新建可用钥匙串,但旧条目不会因此自动解密,可能需要重新输入保存过的密码、证书或其他凭据。先确认备份与恢复方式;涉及公司证书或设备管理身份时,由管理员协助。

避免批量删除条目

反复弹窗也可能来自应用未能保存访问许可、登录钥匙串被定时锁定,或请求者每次都来自不同路径。先查当前启动副本和条目访问控制,再考虑只重建与故障明确相关、且能重新获取的凭据。不要搜索到「proxy」「VPN」就全部删除,也不要把整个钥匙串目录移走。

如需提供截图,隐藏条目中的账户名、服务器地址和令牌。不要展示条目的密码内容。正常排查只需要请求程序、条目名称及报错文字,不需要公开订阅 URL。

授权完成后的验收与故障回退

按「应用启动 → 内核运行 → 普通代理 → 服务 → TUN」逐层验收。每次只改变一项设置,并记录修改前后结果。下面的检查以实际配置为准,不依赖某个界面开关的颜色。

  • 启动层:从「应用程序」可以启动,退出再打开后不重复出现相同启动拦截。
  • 内核层:日志没有配置解析失败、监听端口冲突或持续退出重启。
  • 系统代理层:scutil --proxy 中的启用项、地址和端口与客户端记录一致。
  • TUN 层:日志显示虚拟接口创建成功。接口可能使用 utun 名称,但系统其他服务也会创建同类接口,不能仅凭存在 utun 判定成功。
  • 凭据层:再次执行同一订阅更新或认证操作,不重复出现来源不明的钥匙串请求。

若启用 TUN 后断网,先在客户端关闭 TUN,再关闭系统代理,确认基础网络能否恢复;避免在尚未确认状态时反复切换 Wi-Fi。应用异常退出后,可到「系统设置」→「网络」→ 当前网络服务 →「详细信息」→「代理」检查是否残留指向本机端口的设置。只撤销本次客户端设置的代理,保留原有企业代理记录。

提交故障信息时,提供 macOS 完整版本、芯片架构、客户端与内核版本、安装路径、触发步骤和同一时间段日志。日志中的订阅 URL、访问令牌、认证密码及个人域名应先脱敏。需要对照字段含义时,可查阅YAML 配置手册;首次建立可用配置则从快速上手开始。