先区分四类权限提示

macOS 上的客户端窗口能够打开,不代表代理所需的服务已经启动。首次安装时遇到的提示,可能分别来自 Gatekeeper、管理员授权、网络扩展和钥匙串。它们处理的是不同问题,拒绝后的恢复入口也不同。

Mihomo 是内核,客户端负责配置界面、系统集成与权限申请。不同客户端的 TUN 实现并不完全相同:有些通过特权辅助服务启动内核,有些使用 Network Extension。不能仅凭出现“TUN”开关,就认定必须在系统设置里找到一个网络扩展。

提示内容 实际用途 检查重点
无法验证开发者、无法打开 检查应用来源与签名状态 安装来源、系统安全提示
安装辅助工具、需要管理员授权 安装或更新特权服务 发起应用、管理员账户
添加 VPN 配置、允许网络扩展 建立系统网络接管通道 扩展名称、客户端实现
访问登录钥匙串中的某个项目 读取已保存的凭据 请求进程、项目名称、授权范围

首次打开:安装位置与安全检查

确认架构,再从应用程序目录启动

  1. 打开苹果菜单 →「关于本机」。显示“芯片 Apple M…”通常选择 Apple Silicon 或 arm64 安装包;显示 Intel 处理器则选择 x64 安装包。通用安装包按客户端说明使用。
  2. 使用 DMG 分发的客户端,先将应用拖入「应用程序」,再弹出磁盘映像。不要长期从 DMG 中运行。
  3. 退出旧实例,再从「访达」→「应用程序」启动。避免旧版与新版同时运行,造成端口占用或辅助服务版本不一致。
  4. 首次只导入配置并确认内核能够启动,再逐项启用系统代理或 TUN,方便判断是哪一步触发了问题。

区分普通拦截与风险警告

macOS 13 Ventura、14 Sonoma、15 Sequoia 的相关检查入口通常是「系统设置」→「隐私与安全性」。尝试打开应用后,该页面可能显示对应的阻止记录;只有确认安装来源可信,且系统提供相应入口时,才按提示选择「仍要打开」。不同系统版本的按钮名称与位置可能略有差异。

“应用已损坏”不等同于普通的首次运行确认,也可能涉及下载不完整、签名异常或包被修改。先删除当前安装包,从客户端维护者提供的发布渠道重新获取,并核对系统要求。若系统明确提示会损害电脑或包含恶意软件,应停止运行,而不是继续绕过。

  • 不要将关闭 Gatekeeper 作为常规安装步骤。
  • 不要批量移除整个下载目录的隔离属性。
  • 公司管理的 Mac 可能受到设备管理策略限制,此时应由管理员确认允许的客户端与扩展。

辅助服务:管理员授权与拒绝后重试

普通系统代理与 TUN 的权限需求不同。系统代理主要修改当前网络服务的代理设置;TUN 通常还涉及虚拟接口、路由与 DNS 调整。客户端可能通过常驻辅助服务执行这些操作,因此出现“安装辅助工具”或“更新服务”的管理员认证窗口。

授权前核对三个字段

  • 发起者:应与刚刚操作的客户端或其已知辅助程序一致,不应是来源不明的脚本进程。
  • 操作:确认是在安装服务、更新服务或修改网络设置,而非与代理无关的操作。
  • 账户:标准用户通常需要输入管理员账户凭据。管理员密码应输入 macOS 系统认证窗口,不应粘贴到订阅页面或聊天消息中。

如果刚才点击了取消,通常不必重新安装整个客户端。回到客户端的服务管理入口,重新执行安装或修复;入口可能叫“服务模式”“辅助服务”或“安装服务”,应以当前客户端界面为准。完成后先退出客户端,再重新启动并检查日志。

服务安装成功但 TUN 仍无法启动

先看日志是否出现 permission denied、辅助服务连接失败或端口已占用。客户端升级后,旧辅助服务可能仍在运行;优先使用客户端自带的服务更新或重装功能。不要根据网上的通用命令直接删除 /Library/LaunchDaemons 下的文件,不同客户端的服务标识并不相同。

在 macOS 13 及后续版本中,还可以检查「系统设置」→「通用」→「登录项」或「登录项与扩展」里的后台活动条目。后台项目与网络扩展不是同一个开关;看到客户端名称时,应结合客户端说明判断它对应的功能。

网络扩展与 VPN 配置授权

只有使用相关系统机制的客户端,才会申请网络扩展或添加 VPN 配置。通过特权服务运行 Mihomo TUN 的客户端,可能完全没有这一类弹窗。此时应检查服务与内核日志,而不是反复寻找不存在的扩展条目。

按 macOS 版本查找入口

  • macOS 15 Sequoia:检查「系统设置」→「通用」→「登录项与扩展」,在“扩展”区域查找“网络扩展”,通过其详情入口核对客户端条目。
  • macOS 13 Ventura、14 Sonoma:可在「系统设置」中搜索“VPN”或“过滤器”,检查网络相关配置;如果收到扩展被阻止的提示,同时查看「隐私与安全性」中的对应记录。
  • 其他版本:优先使用系统设置搜索“网络扩展”“VPN”或“过滤器”。不同扩展类型可能出现在不同页面,不能将某个版本的菜单路径当作所有版本的固定位置。

“允许添加 VPN 配置”表示授权客户端创建系统网络配置,不意味着订阅已导入成功,也不代表代理节点可用。允许后仍要回到客户端选择配置、启动内核,再验证连接。系统菜单显示 VPN 状态,也不能替代规则命中与出口检查。

拒绝授权后的恢复顺序

  1. 关闭客户端的 TUN 或连接开关,避免后台反复重试。
  2. 在系统设置中检查对应扩展是否被关闭,或是否留有被阻止的记录。
  3. 返回客户端重新发起连接或安装扩展,按系统提示确认。只有系统明确要求时再重启。
  4. 若存在多个旧 VPN 配置,先确认所属应用,再使用原客户端的移除功能清理。不要删除仍在使用的公司 VPN。

钥匙串弹窗:密码、允许与始终允许

客户端可能将订阅凭据、访问令牌或其他敏感配置存入钥匙串,具体保存范围取决于实现。内核启动、窗口打开与钥匙串访问是不同事件;弹窗出现时,应读取“哪个进程要访问哪个项目”,而不是只看客户端是否正在运行。

三个按钮的授权范围

  • 拒绝:阻止本次访问。相关功能可能无法读取凭据,但通常不会删除钥匙串里的记录。
  • 允许:批准当前访问请求,适合先验证功能是否恢复。后续访问仍可能再次询问。
  • 始终允许:为相应项目保存对该应用的访问许可。仅在确认应用身份与项目用途后使用,不应对未知进程直接授权。

登录钥匙串密码通常与当前 macOS 登录密码一致,但这不是绝对规则。若账户密码曾被管理员重置,或通过迁移恢复了旧钥匙串,钥匙串可能仍使用旧密码。连续输入当前密码仍失败时,应检查这一情况,而不是不断重复提交。

通过钥匙串访问定位具体记录

  1. 按 Command + 空格,搜索并打开「钥匙串访问」。较新系统中的「密码」应用不能替代全部钥匙串管理功能。
  2. 选择“登录”钥匙串,按弹窗显示的项目名称搜索。只检查对应记录,不要全选删除。
  3. 打开记录详情,查看项目类型与访问控制。并非所有类型的项目都提供相同的编辑选项。
  4. 若确认是客户端保存的失效凭据,优先在客户端重新登录或更新凭据;确需删除单条记录前,先确认能够重新取得所需账户信息。

客户端更新后再次询问钥匙串权限,不一定代表密码错误。应用路径、签名身份或访问控制条件发生变化,都可能触发重新确认。应先核对更新来源与弹窗中的进程名称,再决定是否重新授权。

授权完成后的连接验证

权限处理完成后,按“内核监听 → 系统代理 → TUN”的顺序验证。不要同时修改 DNS、规则和代理端口,否则很难判断恢复来自哪项改动。先保存原配置,记录每一步的日志时间。

第一步:确认内核端口正在监听

下面以客户端实际配置了 mixed-port: 7890 为例。7890 是示例值,不是所有客户端的固定端口;如果界面显示其他值,应同步替换命令。打开「终端」,执行:

lsof -nP -iTCP:7890 -sTCP:LISTEN

有输出时,核对监听进程是否属于当前客户端;没有输出时,先检查内核是否启动、配置是否解析成功,以及端口是否设为其他值。仅完成管理员授权,并不能保证内核已经监听。

第二步:独立测试代理,再检查系统设置

curl -I --connect-timeout 10 --max-time 20 \
  --proxy http://127.0.0.1:7890 https://example.com/

scutil --proxy

第一条命令明确指定本地代理,连接超时为 10 秒,总时限为 20 秒,用于区分代理本身与系统代理设置的问题。收到 HTTP 响应说明该次请求获得了响应,但仍需结合状态码、客户端连接记录与命中策略判断结果。

第二条命令查看系统代理状态。启用普通 HTTP/HTTPS 系统代理时,可检查 HTTPEnable、HTTPSEnable、服务器与端口是否符合客户端设置;使用 PAC 时则应查看自动代理相关字段。TUN 接管不要求这些开关必须为 1,不能据此判定 TUN 失败。

第三步:单独启用 TUN 并检查日志

  • 先确认辅助服务或所需扩展就绪,再开启 TUN。
  • 查看日志中是否有虚拟接口、路由或 DNS 初始化失败,而不是仅观察开关颜色。
  • 确认普通网页与需要代理的目标分别命中了预期规则。规则模式下,不同请求可以使用不同出口。
  • 关闭客户端后再次检查网络与系统代理状态,确认未遗留指向已停止端口的代理设置。

常见故障的最短排查顺序

拒绝权限后,客户端不再弹窗

先确定拒绝的是哪类请求。辅助服务回到客户端重新安装;网络扩展到系统设置检查状态;钥匙串则重新触发需要凭据的操作。不要把“重新导入订阅”当成所有权限问题的通用修复,订阅内容并不能改变系统授权。

系统代理可用,TUN 一开就断网

先退回可用的系统代理状态,再检查 TUN 日志、其他 VPN 冲突与 DNS 配置。系统代理正常表明部分链路可用,并不能证明 TUN 所需的路由和权限已经满足。排查期间保留可恢复的设置,避免在网络已断开时继续下载修复工具。

每次启动都要求输入密码

先看密码框属于系统认证还是钥匙串访问。前者应检查辅助服务是否安装成功、是否每次都在更新;后者应检查具体钥匙串项目的访问控制、应用是否从固定路径启动,以及是否残留多个客户端副本。不要通过保存管理员密码到脚本来绕过认证。

向维护者提交问题时保留哪些信息

  • macOS 的完整版本号,可在「关于本机」查看;同时注明 Apple Silicon 或 Intel。
  • 客户端版本与内核版本,二者分别记录,不要混用。
  • 触发步骤、弹窗原文,以及问题发生前后几秒的相关日志。
  • 当前使用系统代理还是 TUN、实际监听端口、是否同时运行其他网络接管工具。

发送截图与日志前,遮盖订阅完整地址、账户令牌、节点密码和其他个人信息。按权限类型提供证据,比反复重装更容易定位问题;每次只改变一项设置,才能判断修复是否真正生效。