平台专题 预计阅读 12 分钟

macOS 安装 FlClash 权限全流程:网络扩展授权与钥匙串提示处理

覆盖 macOS 首次安装的每个弹窗:未验证开发者放行、网络扩展批准路径、钥匙串反复索要密码的解法,以及卸载后残留描述文件的清理。

先区分三类 macOS 权限

FlClash 在 macOS 上可能触发 Gatekeeper、管理员授权、VPN 或网络扩展批准。它们对应不同的系统组件,不能用同一个密码弹窗概括。只使用系统代理时,通常只需完成应用启动与代理配置;启用 TUN 模式后,才会进一步涉及虚拟网络接口、路由和 DNS 接管。

提示类型 出现阶段 处理位置
无法验证开发者或无法打开 首次启动应用 「系统设置」→「隐私与安全性」
管理员名称与密码 安装辅助组件或启用 TUN macOS 系统授权窗口
添加 VPN 配置或网络扩展 首次开启 TUN 「系统设置」→「网络」→「VPN」或扩展管理页
访问钥匙串中的项目 读取已保存凭据或组件身份变化 「钥匙串访问」应用

安装前检查:芯片、安装位置与旧版本状态

确认 Apple 芯片或 Intel 架构

打开「苹果菜单」→「关于本机」。芯片一栏显示 Apple M1、M2、M3、M4 或后续 Apple 系列时,应选择 arm64 安装包;处理器一栏显示 Intel 时,应选择 x64 或 amd64 安装包。架构选错通常表现为应用无法启动、启动后立即退出,或必须经过 Rosetta 转译。

把应用移动到“应用程序”

  1. 打开下载得到的 DMG 或解压后的目录。
  2. 将 FlClash 拖入 Finder 侧边栏的「应用程序」。
  3. 从「应用程序」目录启动,不要长期从 DMG、下载目录或外置磁盘运行。
  4. 若旧版仍在运行,先从菜单栏退出,再替换应用文件。

固定安装路径很重要。macOS 会把钥匙串访问控制、代码签名身份和应用路径共同用于授权判断。应用每次从不同目录启动,可能导致系统重复询问是否允许访问同一个钥匙串项目。

升级前先关闭代理

若系统代理仍指向旧进程,直接覆盖应用可能留下不可用的本地代理地址。建议先在 FlClash 中关闭系统代理与 TUN,再退出应用。系统代理常见监听地址是 127.0.0.1:7890,但实际端口以当前配置中的 mixed-port 为准。

“无法验证开发者”与“应用已损坏”的正确处理

首次启动被拦截时,先在 Finder 的「应用程序」中找到 FlClash,按住 Control 点击应用图标,选择「打开」。如果仍被 Gatekeeper 阻止,进入「系统设置」→「隐私与安全性」,向下找到刚刚被拦截的应用记录,点击「仍要打开」,再用登录密码或 Touch ID 确认。

  1. 只在刚刚主动启动 FlClash 后处理这条拦截记录。
  2. 核对弹窗中的应用名称与 Finder 中的文件一致。
  3. 完成一次放行后,从「应用程序」重新打开。
  4. 不要反复解压到新目录,否则系统可能把它视为新的应用副本。

如果「隐私与安全性」页面没有出现“仍要打开”,先再次从 Finder 启动一次,让系统生成对应记录。企业管理的 Mac 还可能受 MDM 策略限制,此时按钮会被隐藏或置灰,需要由设备管理员批准应用,而不是修改本机普通账户设置。

网络扩展授权:从系统代理到 TUN

系统代理模式的工作边界

系统代理模式会把 macOS 的 HTTP、HTTPS 或 SOCKS 代理指向本机监听端口。常见配置是 127.0.0.1:7890,控制接口常见为 127.0.0.1:9090。控制接口用于客户端与 mihomo 内核通信,不应被当作网页代理端口填写。

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

使用这类配置时,Safari、Chrome 与读取系统代理的应用会进入规则分流。终端中的 curl、包管理器或某些游戏不一定读取系统代理,因此“浏览器可用、终端直连”不一定是故障。

首次开启 TUN 的批准顺序

进入 FlClash 的「设置」→「网络设置」,开启 TUN 模式。不同 macOS 版本可能先后显示管理员授权、添加 VPN 配置、允许网络扩展三个步骤。弹窗出现后保持 FlClash 运行,不要连续点击开关,以免同时创建多条授权请求。

  1. 在管理员授权窗口输入当前 Mac 管理员账户的密码。
  2. 系统询问是否允许添加 VPN 配置时,选择允许。
  3. macOS 15 及后续版本可到「系统设置」→「通用」→「登录项与扩展」→「网络扩展」检查状态。
  4. macOS 13、14 若显示批准通知,进入「系统设置」→「隐私与安全性」完成允许。
  5. 回到「系统设置」→「网络」→「VPN」,确认没有同名条目持续处于连接和断开循环。
  6. 返回 FlClash,等待内核启动后再测试连接。

授权成功后,系统通常会创建 utun 虚拟接口。它的编号并不固定,可能是 utun3utun7 或其他值;编号变化不代表安装异常。真正需要检查的是默认路由、DNS 请求和 FlClash 内核是否同步处于运行状态。

mihomo TUN 配置的关键字段

tun:
  enable: true
  stack: mixed
  auto-route: true
  auto-detect-interface: true
  dns-hijack:
    - any:53

dns:
  enable: true
  listen: 127.0.0.1:1053
  enhanced-mode: fake-ip

auto-route 用于自动写入路由,auto-detect-interface 用于识别当前出口网卡,dns-hijack 把指定 DNS 流量交给内核处理。FlClash 可能根据界面设置生成运行配置,因此不要在订阅文件和界面中同时维护两套互相冲突的 TUN 字段。

钥匙串反复索要密码:定位请求来源

钥匙串弹窗首先要看“哪个进程正在请求哪个项目”。正常的系统窗口会显示项目名称以及请求访问的应用。若弹窗在 FlClash 尚未启动时就出现,请先检查登录项、旧版辅助组件和其他网络工具,不应直接把请求归到当前应用。

先尝试一次性“允许”

第一次出现时可先选择「允许」,输入当前 macOS 登录密码,然后观察同一操作是否再次触发。只有确认应用位于固定的 /Applications 路径、请求项目明确且后续需要持续访问时,才考虑「始终允许」。若应用刚被替换、移动或签名身份发生变化,钥匙串可能重新要求确认。

检查“登录”钥匙串是否锁定

  1. 打开「应用程序」→「实用工具」→「钥匙串访问」。
  2. 在左侧选择「登录」钥匙串。
  3. 若钥匙串显示锁定,右键选择解锁并输入当前登录密码。
  4. 按弹窗显示的项目名称搜索,不要按猜测批量删除证书或密码。
  5. 双击目标项目,在「访问控制」中检查是否保留了旧应用路径。

Mac 登录密码修改后,登录钥匙串密码可能仍是旧密码。典型表现是登录系统使用新密码成功,但多个应用持续请求旧钥匙串密码。此时应先尝试修改“登录”钥匙串密码,使其与当前账户密码一致。重设默认钥匙串会影响浏览器密码、Wi-Fi 凭据和其他应用保存项,应作为最后一步,并在操作前确认已有可用备份。

避免三个重复触发条件

  • 不要同时保留多个不同目录中的 FlClash.app,并轮流启动。
  • 升级时先退出旧进程,再覆盖「应用程序」中的现有版本。
  • 删除钥匙串项目后,应同步重启应用;不要让旧进程继续持有失效引用。

授权完成后的四项验证

验证本地监听端口

在 FlClash 中确认内核状态为运行,再打开终端执行以下命令。若配置使用的不是 7890,应替换为实际 mixed-port

lsof -nP -iTCP:7890 -sTCP:LISTEN
curl -I -x http://127.0.0.1:7890 https://example.com

第一条命令应显示对应内核进程正在监听,第二条命令应返回 HTTP 响应头。若端口没有监听,重点检查内核启动日志;若端口监听但请求超时,再检查订阅节点、策略组选择和规则命中。

检查系统代理是否残留

打开「系统设置」→「网络」→当前使用的 Wi-Fi 或以太网→「详细信息」→「代理」。FlClash 开启系统代理时,这里可能显示本机地址与端口。退出应用后如果仍保留 127.0.0.1:7890,所有读取系统代理的程序都会尝试连接一个已经停止的端口。

检查网络扩展与 VPN 状态

systemextensionsctl list
scutil --nc list
ifconfig | grep utun

systemextensionsctl list 用于查看已登记的系统扩展,scutil --nc list 可列出网络连接服务,最后一条只用于确认当前是否存在 utun 接口。系统本身和其他 VPN 也会创建 utun,因此不能仅凭接口存在就判断它属于 FlClash。

验证规则而不是只看 IP

选择规则模式后,分别访问一个应直连的站点和一个应走代理的站点,再查看 FlClash 连接记录中的规则名称、策略组和出站节点。只检查出口 IP 无法发现规则误命中。例如 DIRECT 规则优先级过高时,TUN 和网络扩展都可能正常,但目标域名仍会直连。

常见故障的对应处理

网络扩展已允许,TUN 仍无法启动

  • 退出其他 VPN、旧版 Clash 客户端和企业代理后重试。
  • 关闭 TUN,退出 FlClash,等待 10 秒后重新启动。
  • 确认应用仍位于「应用程序」目录,而不是 DMG 挂载卷。
  • 检查配置中是否同时存在重复的 DNS 监听端口。
  • 127.0.0.1:1053 已被其他进程占用,调整 DNS 监听设置或停止冲突进程。

开启后局域网设备不可访问

TUN 自动路由可能改变局域网流量的匹配方式。配置中应保留私有地址直连规则,例如 IP-CIDR,192.168.0.0/16,DIRECT,no-resolveIP-CIDR,10.0.0.0/8,DIRECT,no-resolveIP-CIDR,172.16.0.0/12,DIRECT,no-resolve。打印机或 NAS 使用局域网域名时,还要检查 DNS 是否能解析本地域名。

睡眠唤醒后显示已连接但无法访问

Wi-Fi 切换、热点更换或睡眠唤醒后,旧默认接口可能已失效。先关闭再开启 TUN,让 auto-detect-interface 重新识别出口。若问题只发生在从有线网络切换到 Wi-Fi 后,可退出应用再启动,以便重新建立路由和 DNS 状态。

系统代理关闭后仍然走代理

检查是否仍开启 TUN,或浏览器是否配置了独立代理扩展。系统代理、应用内代理与 TUN 是三条不同路径。关闭其中一项并不等于其余两项也已停止。终端还应检查 HTTP_PROXYHTTPS_PROXYALL_PROXY 环境变量是否仍指向本机端口。

卸载与重装:清理 VPN、扩展和代理残留

直接把 FlClash.app 拖入废纸篓,只会移除应用主体。若此前启用过 TUN 或系统代理,应先恢复网络设置,再删除应用。这样可以避免重装前一直保留失效的本地端口、VPN 条目或旧辅助组件授权。

  1. 在 FlClash 中关闭系统代理。
  2. 关闭 TUN 模式并等待状态完成切换。
  3. 退出 FlClash,确认菜单栏图标与相关进程已经结束。
  4. 进入「系统设置」→「网络」→「VPN」,删除确认属于旧安装的条目。
  5. 在 macOS 15 及后续版本进入「通用」→「登录项与扩展」→「网络扩展」,检查旧条目状态。
  6. 进入当前网络的「详细信息」→「代理」,清除仍指向 127.0.0.1 旧端口的配置。
  7. 最后删除「应用程序」中的 FlClash.app,并重新启动 Mac。

企业设备还可能安装描述文件。可在「系统设置」→「通用」→「设备管理」查看;只有明确知道描述文件来源和用途时才删除。由公司或学校下发的网络配置应交给管理员处理,避免同时影响证书、Wi-Fi 和其他安全策略。

profiles list
scutil --proxy
ps aux | grep -i clash

profiles list 用于检查配置描述文件,scutil --proxy 用于查看当前系统代理状态,最后一条用于确认是否仍有名称包含 Clash 的进程。命令结果可能包含其他客户端或历史组件,删除前必须先核对路径。

推荐的稳定安装顺序

  1. 按芯片架构下载对应安装包。
  2. 把 FlClash 移入「应用程序」,再从固定位置启动。
  3. 完成 Gatekeeper 放行并导入订阅。
  4. 先使用系统代理验证节点、DNS 和规则。
  5. 确认 127.0.0.1:7890 等实际监听端口工作正常。
  6. 确有全局接管需求时,再启用 TUN 并完成网络扩展授权。
  7. 通过连接记录核对规则命中,而不是只看界面开关。

这套顺序把应用启动、订阅可用性、系统代理和 TUN 分成四个阶段。某一步失败时,可以直接定位到对应层级,不必反复删除应用或重置全部网络设置。

FlClash 下载入口 查看各平台客户端