适合首次在 Mac 上安装 v2rayN,或已经打开客户端、却卡在代理授权与联网检查的用户。先确认处理器架构和安装位置,再处理 Gatekeeper 提示,最后分别验证内核、系统代理与 TUN。应用启动许可、修改网络设置的权限和网络扩展批准是不同环节,不能用一次放行替代全部检查。
一、macOS 安装包与处理器架构
v2rayN 的 macOS 版本使用跨平台桌面界面;WPF 版属于 Windows,不适用于 Mac。下载前先打开苹果菜单中的「关于本机」,查看显示的是「芯片」还是「处理器」。Apple 芯片优先选择 macOS arm64 包,Intel 处理器选择 macOS x64 包。不要只根据文件名里是否出现 v2rayN 就判断能否运行。
-
确认机型
进入苹果菜单 →「关于本机」,记录芯片类型与 macOS 版本;再对照下载入口标注的系统要求。架构匹配不代表旧系统一定满足运行条件。
-
选择安装包
从本站客户端页进入 macOS 下载选项,按 arm64 或 x64 选择对应文件。优先使用与处理器一致的构建,避免把转译环境问题混入首次安装排查。
-
完成解压
压缩包先完整解压;若提供磁盘映像,则先挂载映像。找到应用包后将其移至「应用程序」,不要只单独提取应用包内部的某个可执行文件。
-
首次启动
在「访达」→「应用程序」中打开 v2rayN。若出现安全提示,先读清提示全文,再按下一节处理,不要反复下载同一文件来替代权限确认。
更新前先退出正在运行的旧版,再替换应用。保留原有配置备份,首次升级不要同时修改订阅、路由和内核设置。这样一旦出现异常,能分清问题来自应用更新还是配置变更。
二、「无法验证开发者」的放行路径
Gatekeeper 在应用启动前检查来源与签名状态。「无法验证开发者」或「无法检查是否包含恶意软件」属于启动检查提示,不是节点连接失败,也不是系统代理权限不足。确认文件来源可信、安装包与所选平台一致后,再考虑为这个应用单独放行。
- 先在「应用程序」里尝试打开一次 v2rayN,让系统记录本次阻止事件。
- 进入苹果菜单 →「系统设置」→「隐私与安全性」,向下找到「安全性」区域。
- 如果该区域显示刚被阻止的 v2rayN,核对应用名称,然后点「仍要打开」。按钮可能只在被阻止后的一段时间内出现。
- 按系统要求使用账户密码或触控 ID 确认;随后出现二次提示时,再选择「打开」。
- 返回应用确认主界面是否出现。能打开界面后,再继续导入配置,不要把安全设置页面当作联网设置页面。
不同 macOS 版本的提示措辞会变化。在部分较早版本中,「访达」里按住 Control 点按应用,再选「打开」也能进入确认流程;较新系统可能仍要求到「隐私与安全性」批准。应以当前系统提供的入口为准。
三、先导入订阅,再核对本地监听
打开主界面只说明应用通过了启动检查。实际转发由内核运行,订阅则负责提供服务器配置。先在「订阅分组」→「订阅分组设置」中添加分组和订阅地址,保存后回到「订阅分组」执行更新;菜单中带有「更新全部订阅」的操作用于拉取各分组内容。不同版本可能区分是否通过代理更新,首次尚未连通时先选不通过代理的更新方式。
列表出现配置后,选中一条并设为活动服务器,再检查日志是否显示内核启动成功。VMess、VLESS 是协议类型,不是系统权限名称;订阅里已有的传输、TLS、服务端名称等参数应保持原样。只为了让应用通过 macOS 授权,不需要把 VLESS 改成 VMess,也不需要随意关闭 TLS。
本文后面的命令以本地地址 127.0.0.1、端口 10808 为例。实际值应在「设置」→「参数设置」中查找本地监听端口,并与启动日志核对。若当前版本提供混合端口,同一监听可接收 HTTP 和 SOCKS;如果界面分列两类端口,则必须按各自用途填写,不能照抄同一个数字。
- 内核未运行:先看日志中的启动错误。系统代理即使已经写入,也没有可用的本地转发入口。
- 端口被占用:退出旧版进程或其他占用者,或修改监听端口;修改后还要让系统代理同步更新。
- 订阅为空:检查订阅地址是否过期、是否需要登录,以及更新日志返回的错误;这与 Gatekeeper 放行无关。
四、系统代理授权与网络设置核对
日常浏览可先使用系统代理模式。在 v2rayN 主界面找到「系统代理」,选择「自动配置系统代理」。如果 macOS 弹出修改网络设置或安装辅助工具的确认框,先核对发起应用、操作说明与来源,再按需授权。仅为启动主界面,不应主动把整个客户端长期以管理员身份运行。
客户端检查项
- 系统代理
- 自动配置系统代理
- 活动配置
- 已设为活动服务器的条目
- 本地地址
127.0.0.1- 示例端口
10808,以实际监听为准
先确认内核启动,再写入系统代理;两项状态要分别检查。
macOS 检查项
- 设置入口
- 系统设置 → 网络
- 当前服务
- 正在联网的 Wi-Fi 或以太网
- 详情页面
- 详细信息 → 代理
- 核对内容
- 已启用代理的地址与端口
切换网络服务后重新检查,不能只看另一个未使用接口的代理值。
在 macOS 的「代理」页面检查实际写入结果。Web 代理对应 HTTP,安全 Web 代理对应 HTTPS 请求使用的代理入口;后者名称里的“安全”不表示本地代理监听自身一定使用 TLS。只核对客户端管理的项目,不要为了凑齐所有勾选框而同时启用自动代理发现、自动代理配置和多个手填代理。
系统代理是供应用读取的系统设置,不等于接管所有流量。部分命令行程序、内置独立代理的浏览器配置以及自行建立连接的应用可能不读取它。浏览器能打开页面而某个终端命令仍失败时,应先确认该程序的代理用法,不要立刻判定授权失效。
五、TUN、网络扩展与普通代理的区别
TUN 通过虚拟网络接口处理流量,涉及接口、路由与 DNS,所需权限通常高于普通本地代理。它不是首次安装必须开启的步骤。先用系统代理验证配置可用,再按应用覆盖需求决定是否启用,可以减少多个变量同时变化造成的误判。
选择路径:先验证普通代理,再评估 TUN
系统代理模式
- 适合会读取系统代理的浏览器和桌面应用。
- 核对本地监听、活动服务器与网络服务中的代理值。
- 不因启用普通代理就必然出现网络扩展批准项。
TUN 模式
- 适合需要虚拟接口接管、且当前构建支持的使用场景。
- 按客户端提示安装或授权所需的辅助组件。
- 启用后额外检查接口、路由、DNS 与其他隧道软件冲突。
TUN 的实现取决于客户端版本与组件;虚拟接口、辅助服务、网络扩展不能视为同一个东西。
只有组件确实申请了网络扩展权限,才需要查找对应的批准项。以 macOS 15 的设置组织为例,可检查「系统设置」→「通用」→「登录项与扩展」→「网络扩展」;其他系统版本可能在「隐私与安全性」显示允许提示。列表中没有相关条目,不代表普通系统代理安装失败,也不能据此要求安装一个不存在的扩展。
- 网络扩展:只批准名称、开发者与刚安装组件相符的项目,不为解决 v2rayN 问题随意启用其他项目。
- 本地网络权限:在提供此权限的系统上,可到「隐私与安全性」→「本地网络」检查;它主要涉及局域网访问,不是所有外网连接的总开关。
- 防火墙:「网络」→「防火墙」主要涉及入站连接控制。浏览器无法连接远端时,不应把关闭整个防火墙作为首选操作。
- 管理策略:学校或单位管理的设备可能限制扩展、辅助服务或网络配置,个人账户密码不一定能覆盖这些限制。
六、用系统状态与显式代理定位故障
排查时把“代理设置已写入”和“转发请求已成功”分开验证。先查看系统记录,再检查端口,最后让命令明确使用本地代理。以下命令在「终端」执行;示例只读取状态或发起普通网页请求,不负责修改系统安全策略。
# 查看系统当前代理状态
scutil --proxy
# 查看示例端口是否有 TCP 监听
lsof -nP -iTCP:10808 -sTCP:LISTEN
# 显式使用 HTTP 代理;仅适用于该端口支持 HTTP 的情况
curl --proxy http://127.0.0.1:10808 --connect-timeout 10 -I https://example.com
# 显式使用 SOCKS,并把目标域名交给代理侧解析
curl --proxy socks5h://127.0.0.1:10808 --connect-timeout 10 -I https://example.com
scutil --proxy 中的 HTTPEnable、HTTPProxy、HTTPPort 等字段用于确认实际系统状态;若使用的是 SOCKS,则看对应的 SOCKS 字段。lsof 没有结果时,优先确认端口是否写错、内核是否退出,而不是继续重复授权。
| 观察结果 | 优先检查 | 下一步 |
|---|---|---|
| 本地连接被拒绝 | 监听端口、内核进程 | 核对端口与启动日志,先恢复监听。 |
| 显式代理成功,浏览器失败 | 系统代理、浏览器独立设置 | 核对当前网络服务代理,检查浏览器是否自行覆盖。 |
| 本地监听正常,请求超时 | 节点、DNS、路由与上游连接 | 结合客户端日志测试另一条已知可用配置。 |
| 仅 TUN 模式失败 | 辅助服务、接口、DNS 和路由冲突 | 关闭 TUN 回到系统代理,确认基础链路仍可用。 |
收到目标站的 HTTP 响应只能说明这次请求获得了响应,不能据此证明所有域名都走代理;路由规则仍可能让部分请求直连。测试时结合内核日志判断匹配的出站,不要把“全局系统代理”和“所有目标使用代理出站”混为一谈。
七、安装与权限常见问答
找不到「仍要打开」,该怎么办?
先从「应用程序」再次打开一次,随后进入「系统设置」→「隐私与安全性」检查最新阻止记录。如果提示其实是系统版本不兼容、应用损坏或恶意软件警告,应按对应原因处理;受管理设备则先联系管理员,不要尝试绕过策略。
已经允许启动,为什么还提示输入密码?
应用启动许可和网络设置修改是两次不同操作。查看弹窗是否由刚执行的系统代理或辅助服务操作触发,确认名称和用途后再授权。若每次都反复出现,先检查安装位置、旧进程与辅助组件状态,不要连续盲点确认。
关闭 v2rayN 后浏览器反而打不开了?
重新打开客户端,在「系统代理」中执行「清除系统代理」后再退出;若应用无法打开,到「系统设置」→「网络」→ 当前网络服务 →「详细信息」→「代理」移除残留的本地代理设置。原有单位代理或自动配置地址应保留记录,不能一并误删。
每次更新后都要重新检查哪些地方?
先确认替换的是同一架构的应用,启动后看活动配置、监听端口和系统代理状态。只有系统确实再次阻止启动或请求权限时,才处理对应提示。更新主程序不意味着必须重建订阅,也不意味着要把所有网络权限重新开启。
完成配置后的检查顺序保持一致:应用能打开,订阅能加载,内核有监听,系统代理指向正确端口,目标请求有响应。确有需求时再启用 TUN,并单独验证它增加的权限与网络变化。这个顺序能让安装问题、权限问题和节点问题各自落到明确的检查点。