适用于首次在 Mac 安装 v2rayN,以及替换应用后遇到启动或联网异常的读者。先按芯片选择安装包,再处理 Gatekeeper 对应用的拦截;进入主界面后,分别检查内核监听、系统代理和 TUN 权限。系统代理不等于虚拟网卡,网络扩展提示也不是每次安装都会出现。排查应按故障所在层次进行,不必一次授予所有权限。
一、安装包架构与应用程序目录
打开苹果菜单「关于本机」。显示 Apple 芯片的机器选择 Apple Silicon 对应包;显示 Intel 处理器的机器选择 Intel 对应包。架构不匹配可能表现为无法启动、要求额外的兼容运行环境,或者界面能打开但附带内核不能执行。不要把所有启动问题都归因于开发者验证。
-
确认芯片
从苹果菜单进入「关于本机」,记录芯片类型;到客户端下载页的 macOS 分区选择相应架构。
-
展开安装包
压缩包先解压,再找到应用本体;磁盘映像先打开,再复制其中的应用。不要只拖动压缩包,也不要在临时预览目录里长期运行。
-
移入应用程序
在访达中选择「前往」→「应用程序」,把 v2rayN 应用拖入此处。更新时先退出旧进程,再替换应用,保留已有配置的备份。
-
首次打开
从「应用程序」启动。若系统拦截,先阅读完整提示,再按下一节进入「隐私与安全性」处理,不要连续解压出多份副本反复尝试。
-
确认内核运行
进入主界面后导入配置、选择节点,查看运行日志。界面正常不代表代理内核已经启动;先确认没有端口占用或配置解析错误。
本文以应用名称为 v2rayN.app 举例。实际文件名、菜单文字和功能位置可能随客户端构建变化;命令中的应用路径应与访达显示的名称一致。系统路径以 macOS 13 及以后采用「系统设置」的界面为参照,不代表客户端的最低系统要求。
二、无法验证开发者:Gatekeeper 放行路径
「无法验证开发者」或「Apple 无法检查其是否包含恶意软件」属于应用执行前的安全检查提示。它与订阅地址、VMess 或 VLESS 参数无关。放行前先确认安装包来源和预期一致,且刚才尝试打开的确实是放进「应用程序」的那份应用。
- 尝试打开一次应用,记下提示内容并关闭提示框。
- 进入苹果菜单「系统设置」→「隐私与安全性」,向下找到「安全性」区域。
- 若出现针对该应用的拦截记录,核对应用名称,再点「仍要打开」。按钮通常只在最近一次拦截后的一段时间内出现。
- 按系统要求使用密码或触控 ID 确认;再次弹出询问时,核对后选择「打开」。
某些系统版本允许在访达中按住 Control 点按应用,再选「打开」;较新的系统可能仍要求回到「隐私与安全性」确认。若电脑由组织管理,「仍要打开」可能受管理策略限制,此时应联系管理员,而不是修改系统策略。
需要记录检查信息时,可以在「应用程序」→「实用工具」→「终端」执行以下只读命令。com.apple.quarantine 属性说明文件带有下载隔离标记,并不单独证明文件可信或有害;评估结果也不等于对程序行为的完整审计。
xattr -l "/Applications/v2rayN.app"
spctl --assess --type execute --verbose "/Applications/v2rayN.app"
三、系统代理与 TUN:先选择接管方式
v2rayN 主界面打开后,应先用系统代理完成基础验证。它把当前网络服务的代理设置指向本机监听端口,供遵循系统代理的应用使用;不会自动接管所有进程,也不保证处理全部 UDP 流量。TUN 则涉及虚拟网络接口与路由,权限和故障范围都不同。
系统代理
推荐首次安装先用此模式。导入节点后,在 v2rayN 的「系统代理」菜单选择「自动配置系统代理」,再核对 macOS 的代理地址。不同构建的菜单位置可能不同,以客户端实际界面为准。
适合:浏览器访问、首次连通验证、分层排错。
TUN 模式
用于需要网络层接管的场景。支持情况取决于 macOS 客户端构建、所用内核和配套组件;可能要求提权、安装辅助组件或批准网络扩展,不能仅凭存在 TUN 开关判断实现方式。
适合:不读取系统代理设置的应用,且当前构建明确支持 TUN。
建议先关闭 TUN,只保留一种接管路径。系统代理验证成功后,再按需要测试 TUN。两种方式同时启用会增加路由、DNS 和本机回环排查的复杂度;出现问题时,也更难判断连接究竟经过哪条路径。
四、本机监听与 macOS 代理字段对照
下面使用 10808 作为代理入站示例端口,使用 10809 作为备用端口。两者都不是对所有版本默认值的断言。打开 v2rayN「设置」→「参数设置」,检查本地监听相关项目;最终以保存后的配置和当前启动日志为准。端口改变后,系统代理中的端口也必须同步。
进入「系统设置」→「网络」→当前使用的 Wi-Fi 或以太网→「详细信息」→「代理」。HTTP、安全网页代理和 SOCKS 是不同选项;填写前要确认内核入站接受哪种协议。只有明确支持 HTTP 与 SOCKS 的混合入站,才可把两类请求指向同一个端口。
HTTP 系统代理示例
- 服务器
127.0.0.1- 端口
10808- 网络选项
- 网页代理、 安全网页代理
- 入站条件
- 支持 HTTP 的本地入站
安全网页代理用于 HTTPS 请求的代理连接,不表示本地代理本身必须启用 TLS。
SOCKS 应用代理示例
- 服务器
127.0.0.1- 端口
10808- 协议
- SOCKS5
- 入站条件
- 支持 SOCKS 的本地入站
仅在入站确实支持 SOCKS 时使用;应用内手动代理与系统代理应分别核对。
终端可以只读检查监听状态和当前系统代理。第一条没有输出时,先看内核是否启动或是否换了端口;显示监听也只证明进程占用了端口,不证明远端节点可用。第二条显示的代理地址,应与客户端本地入站对应。
lsof -nP -iTCP:10808 -sTCP:LISTEN
scutil --proxy
五、网络权限:按实际请求逐项授权
系统代理、网络扩展、本地网络和入站防火墙属于不同层次。开启系统代理不必然触发网络扩展授权;看到本地网络提示,也不表示公网代理必须依赖局域网访问。只批准当前使用方式需要的权限,并核对请求对应的应用或组件名称。
| 场景 | 检查位置 | 处理边界 |
|---|---|---|
| 系统代理未写入 | 「系统设置」→「网络」→当前网络服务→「详细信息」→「代理」 | 先核对服务器和端口,再检查客户端日志中的写入失败信息或管理策略。 |
| TUN 提示安装辅助组件 | 客户端提示及对应的系统认证窗口 | 核对组件来源后授权。辅助进程与网络扩展不是同一种实现。 |
| 系统提示扩展被阻止 | 按提示进入「隐私与安全性」;较新系统也可能位于「通用」→「登录项与扩展」→「网络扩展」 | 仅在实际安装了相关扩展时处理。按系统提示启用,必要时退出重开。 |
| 局域网访问受限 | 支持此项目的系统中,进入「隐私与安全性」→「本地网络」 | 与访问同网段设备有关,不应把授权失败直接解释为远端节点故障。 |
| 其他设备连不上本机 | 「网络」→「防火墙」→「选项」,并检查监听地址 | 本机使用回环地址与局域网共享是不同配置,不必为本机代理关闭防火墙。 |
如果系统没有出现网络扩展审批项,而客户端日志显示使用的是另一种 TUN 实现,就不应为了寻找一个不存在的开关反复重装。先在日志确认失败阶段:创建接口、申请权限、设置路由,还是 DNS 请求失败。系统代理已能正常工作的情况下,优先保持可用模式,再单独处理 TUN。
六、升级后权限异常与代理残留
替换应用可能改变可执行文件、签名状态或辅助组件,系统因此重新询问权限。但升级后断网并不必然是权限丢失:旧进程占用端口、新内核无法读取配置、网络服务切换,以及退出后残留的系统代理,都可能产生相似现象。
- 替换前:备份配置,先在客户端清除系统代理并关闭 TUN,再退出应用;必要时用「活动监视器」确认旧进程结束。
- 替换后:只从「应用程序」启动新副本。若再次出现开发者验证提示,按前文路径重新确认,不同时运行下载目录里的旧副本。
- 权限检查:只有系统明确要求重新批准时,才检查对应扩展或辅助组件。不要把整套权限全部关闭再开启当成固定升级步骤。
- 端口复核:查看日志中的监听地址,核对
scutil --proxy输出;发现端口不一致,重新执行客户端的系统代理设置。 - 恢复直连:若应用暂时不能运行,进入当前网络服务的「代理」设置,关闭此前为本机代理启用的选项并应用。受管理的代理设置应先咨询管理员。
七、安装与放行常见问题
「仍要打开」按钮为什么找不到?
先从「应用程序」再次尝试启动目标副本,再立即进入「隐私与安全性」的安全性区域。确认不是架构不匹配或文件损坏提示。受组织管理的电脑可能禁止个人放行,应由管理员检查策略。
窗口能打开,浏览器仍然不能联网?
先关闭 TUN,用 lsof 检查实际端口是否监听,再检查当前网络服务的 HTTP 与安全网页代理。监听正常且地址一致后,才继续检查节点认证、服务端地址、路由规则和 DNS;应用窗口存在不等于内核工作正常。
每次开启 TUN 都要求输入密码吗?
是否重复认证取决于当前构建如何启动特权组件,不能据此断定安装失败。先核对认证窗口属于哪一项操作;若反复授权仍失败,查看日志的权限或接口错误,临时退回系统代理,不要为了省去认证长期以管理员身份运行整个客户端。
退出 v2rayN 后网络反而断了,怎么恢复?
进入「系统设置」→「网络」→当前网络服务→「详细信息」→「代理」,查看是否仍指向已停止监听的 127.0.0.1 端口。关闭此前启用的本机代理选项并应用;网络恢复后,再启动客户端重新设置代理。