首次安装先选对处理器架构,再处理 Gatekeeper 拦截;能打开主窗口后,先用本地代理验证节点,再设置系统代理,最后按需启用 TUN。本文把应用启动许可、系统代理修改权限与网络扩展授权分开说明,适合遇到安装拦截、浏览器不走代理或 TUN 启动失败的 Mac 用户。
安装包选择:Apple 芯片用 arm64,Intel 用 x64
v2rayN 是管理节点、订阅和路由配置的桌面客户端,真正处理连接的是它启动的代理内核。安装包架构不仅关系到主窗口能否打开,也关系到随包内核能否运行。因此,“界面出现了”并不等于整个运行环境已经正常。
按「关于本机」中的处理器信息选包
Apple 芯片 Mac
- 打开苹果菜单 →「关于本机」,查看「芯片」一栏。
- Apple M 系列优先选择 macOS arm64 包。
- 不要仅因系统支持 Rosetta 就优先使用 x64 包;内核和辅助组件也需要架构兼容。
Intel Mac
- 「关于本机」通常显示 Intel 处理器信息。
- 选择 macOS x64 包;x86_64 是同一类架构标记。
- arm64 包不能作为 Intel 机器的替代安装包。
架构与最低系统版本是两项独立条件;包选对后,仍要确认当前发行版要求的 macOS 版本。
从下载中心进入 macOS 平台入口。若取得的是磁盘映像,将应用拖到「应用程序」;若取得的是压缩包,先完整解压,再按发行说明放置应用。不要在压缩预览窗口里直接运行,也不要只复制主程序而漏掉同目录的依赖文件。更新前先退出旧进程,并保留订阅、路由和必要配置的备份。
无法验证开发者:只对确认来源的应用放行
“无法验证开发者”或“Apple 无法检查其是否包含恶意软件”通常属于 Gatekeeper 的启动检查,不是节点故障。不要通过反复导入订阅处理这类问题,也不必关闭整台 Mac 的安全检查。先核对下载来源、文件是否完整解压,以及系统提示中显示的应用名称。
-
确认应用位置
在 Finder 中进入「应用程序」,确认打开的是刚安装的 v2rayN,而不是下载目录里的旧副本或仍挂载在磁盘映像中的副本。
-
触发启动检查
双击应用,阅读并关闭拦截提示。保留提示的准确文字,以便区分开发者验证失败、架构不兼容与文件损坏。
-
进入安全设置
打开苹果菜单 →「系统设置」→「隐私与安全性」,向下找到「安全性」区域,查看是否出现刚被阻止的应用及「仍要打开」按钮。
-
确认单次放行
核对应用名称后点击「仍要打开」,按系统要求通过管理员认证,并在后续确认框中选择打开。完成后回到应用,检查主窗口与日志。
macOS 15 及后续系统对未签名或未公证软件的打开流程更严格,不能假定 Finder 右键「打开」仍能完成放行。这里以「隐私与安全性」中的审核入口为准;较旧系统的界面名称可能不同。受组织管理的 Mac 还可能禁用此操作,此时应联系设备管理员,而不是绕过管理策略。
先验证本地端口,再让浏览器使用系统代理
成功打开 v2rayN 后,先导入可信订阅、更新服务器列表并选择一个节点,再查看日志是否显示内核已启动。在主窗口「设置」→「参数设置」中核对本地监听配置;具体字段名称以当前版本为准。只有确认监听地址和端口后,系统代理的排查才有明确对象。
这两个数字是排查示例,不是对所有发行版默认值的声明。运行命令前,请把端口替换成参数设置中实际启用的 HTTP 或混合监听端口;如果只有 SOCKS 监听,不能直接使用下面的 HTTP 代理写法。本机使用时,监听地址优先保持 127.0.0.1,不要为了解决权限问题随意开放到所有网络接口。
# 查看示例端口是否存在 TCP 监听
lsof -nP -iTCP:10808 -sTCP:LISTEN
# 显式指定 HTTP 代理,不依赖 macOS 系统代理设置
curl --proxy http://127.0.0.1:10808 --connect-timeout 10 --max-time 20 -I https://example.com
example.com 只是连通性测试目标,不能据此判断所有网站或所有路由规则都正常。连接被拒绝通常应先查本地监听;出现代理握手错误时检查端口类型;已经连接本地代理却超时,则继续查看内核日志、节点参数和实际出站。不要仅凭浏览器“转圈”就认定缺少系统权限。
- 显式代理命令成功、浏览器失败:优先核对系统代理是否写入当前网络服务,以及浏览器是否采用独立代理设置。
- 显式代理命令也失败:先查内核、节点与路由,不要继续叠加 TUN。
- 端口被其他进程占用:先识别进程,再决定退出冲突程序或更换监听端口;更改后同步更新系统代理。
系统代理与 TUN:按应用需求选择接管方式
系统代理不是虚拟网卡,只影响遵循这套设置的应用。TUN 则通过虚拟网络接口和路由接管流量,通常需要更高权限,也更容易与其他网络工具产生冲突。对于首次部署,先建立系统代理这条较容易观察的链路,再判断是否需要 TUN。
系统代理起步
推荐在 v2rayN 主窗口的「系统代理」入口选择设置系统代理;部分版本也可从菜单栏图标进入。首次修改网络配置时可能要求管理员认证,认证后仍应检查系统中的实际代理地址与端口。
适合:浏览器访问、初次安装验证、希望缩小排查范围的桌面使用。
按需启用 TUN
确认节点正常后,再使用客户端提供的 TUN 开关,并按当前版本说明完成提权或辅助服务配置。TUN 接管流量后仍执行路由规则,不意味着每条连接都会使用代理出站。
适合:应用不遵循系统代理,或需要由虚拟网卡接管更多流量的场景。
检查系统代理的路径是「系统设置」→「网络」→ 当前正在使用的 Wi-Fi 或以太网 →「详细信息」→「代理」。关注网页代理、安全网页代理与 SOCKS 代理各自是否启用,地址和端口是否与客户端一致。手动修改前先记录原值,尤其不要误删单位网络要求的自动代理配置。
# 查看当前系统代理状态
scutil --proxy
# 列出网络服务名称,后续查询使用实际名称
networksetup -listallnetworkservices
# 以下仅以名为 Wi-Fi 的服务为例
networksetup -getwebproxy "Wi-Fi"
networksetup -getsecurewebproxy "Wi-Fi"
networksetup -getsocksfirewallproxy "Wi-Fi"
这些查询不修改设置。切换 Wi-Fi、接入扩展坞网口或更换网络位置后,当前使用的网络服务可能改变,应重新确认代理状态。终端中的命令行工具也不一定自动读取 macOS 系统代理,因此上文使用显式指定代理的命令验证,避免把工具行为误判为客户端故障。
网络权限:扩展授权与 TUN 提权不是同一回事
“允许联网”并不是一个可以一次解决所有问题的总开关。修改系统代理、创建 TUN 接口、访问局域网、接受入站连接,以及加载网络扩展,分别受不同机制管理。v2rayN 的具体实现会随发行版及内核组合变化,不能仅凭出现 TUN 字样就认定必须安装网络扩展。
| 提示或现象 | 检查入口 | 判断重点 |
|---|---|---|
| 修改代理要求认证 | 客户端操作后出现的系统认证窗口 | 确认请求来自当前应用;认证完成后检查代理是否实际写入。 |
| TUN 创建失败或权限不足 | v2rayN 日志及当前版本的辅助服务设置 | 查找 permission denied、operation not permitted 等信息;按发行说明配置权限。 |
| 确实出现网络扩展请求 | macOS 15 的「系统设置」→「通用」→「登录项与扩展」→「网络扩展」 | 只审核与刚安装组件对应的项目;其他系统版本可能在「隐私与安全性」中显示批准入口。 |
| 访问局域网设备失败 | 提供该选项的系统中,「隐私与安全性」→「本地网络」 | 此权限针对局域网访问,不等于互联网代理许可,也不能代替 TUN 提权。 |
| 询问是否允许传入连接 | 「系统设置」→「网络」→「防火墙」→「选项」 | 入站连接许可与普通出站代理不同;仅本机使用时不应因此扩大监听范围。 |
启用 TUN 前,先暂时退出其他会修改默认路由、DNS 或虚拟网卡的网络工具,每次只保留一条接管链路。若系统认证通过后仍失败,应保存首次启动时的完整错误上下文,而不是不断重复输密码。设备受组织策略限制时,管理员授权与应用内设置都不能替代管理策略的批准。
退出与升级:检查代理残留和配置迁移
退出后的断网经常来自系统代理仍指向已停止的本地端口。正常退出前,先在客户端清除系统代理、关闭 TUN,再退出应用。若应用异常退出,用系统设置检查当前网络服务的代理项目,恢复到启用前记录的状态;使用自动代理的网络也要检查自动代理配置是否被改变。
- 主窗口打不开:记录系统拦截原文,复核架构、最低系统版本和 Gatekeeper 放行状态。
- 主窗口正常、内核退出:检查内核架构、执行权限、配置错误及端口冲突;先保留日志,再决定是否重新解压安装包。
- 代理命令成功、应用失败:确认应用是否遵循系统代理,是否有自己的代理设置,再决定是否改用 TUN。
- TUN 后域名失败:结合 DNS 与路由日志检查解析路径;不要把所有解析失败都归为权限不足。
- 升级后行为变化:比较升级前后的监听端口、所选内核与路由配置,不要未经检查就用旧文件覆盖整套新配置。
排障记录至少包含 macOS 版本、处理器架构、v2rayN 版本、所选内核、当前代理模式和错误发生时间。提交日志前删除订阅地址、节点密码、用户标识和其他敏感参数。这样可以把安装拦截、内核启动失败与路由问题分开处理,避免一次修改多个设置后失去对照。