先区分“应用打不开”和“打开后不能联网”。前者从安装包架构与系统安全提示查起;后者按内核、本地端口、系统代理、节点连接逐项检查。普通网页访问先使用系统代理,确实需要接管更多应用流量时,再处理 TUN 的管理员授权,不必一次打开所有权限。
先分清:启动拦截不是网络故障
“无法验证开发者”通常属于 macOS 的应用安全检查。它发生在主窗口出现之前,与订阅是否有效、服务器是否在线不是同一个问题。此时反复更新订阅,或者修改服务器端口,都不能解除启动拦截。
先点苹果菜单中的「关于本机」。显示 Apple 芯片的设备优先选择 arm64 安装包;显示 Intel 处理器的设备选择 x64 安装包。Apple 芯片设备运行部分 x64 程序可能需要 Rosetta,但排查时优先使用对应架构,减少额外变量。
| 看到的现象 | 对应环节 | 先做什么 |
|---|---|---|
| 无法验证开发者或无法检查恶意软件 | 应用启动安全检查 | 确认来源,再查看「隐私与安全性」中的拦截记录。 |
| 应用已损坏,无法打开 | 下载完整性、签名或应用包状态 | 重新获取对应架构的安装包,不直接套用普通放行步骤。 |
| 将损坏电脑或检测到恶意软件 | 明确的安全风险提示 | 停止运行并核实来源,不强行绕过。 |
| 窗口正常,但网页打不开 | 内核、代理入口或远端连接 | 查看日志,再核对本地监听和系统代理。 |
在「隐私与安全性」中允许打开
下面适用于采用「系统设置」界面的 macOS 13 及更新版本。不同系统版本的确认按钮文字可能略有变化,但入口都是「隐私与安全性」中的安全性区域。放行只针对已确认来源的这个应用,不等于关闭整台电脑的安全检查。
-
移入应用程序
打开下载的 DMG,将 v2rayN 拖入「应用程序」。弹出安装映像后,从「访达」→「应用程序」启动,避免一直运行安装映像中的副本。
-
触发启动提示
双击 v2rayN,阅读系统提示并关闭提示框。记下原文,确认它属于开发者验证提示,而不是明确的恶意软件警告。
-
找到拦截记录
打开苹果菜单→「系统设置」→「隐私与安全性」,向下找到「安全性」。查看近期阻止打开 v2rayN 的记录。
-
允许本次打开
点击「仍要打开」,按系统提示使用 Touch ID 或管理员凭据确认。随后若再次出现确认框,核对应用名称后点击「打开」。
-
验证再次启动
确认主窗口出现,退出后再从「应用程序」打开一次。若仍被同样拦截,先检查是否启动了下载目录里的另一份副本。
macOS 15 及更新版本对部分未正确签名或未公证应用的打开流程更严格,不要把旧教程里的右键「打开」当作一定有效的捷径。也不要直接复制删除隔离属性、禁用 Gatekeeper 或修改整个应用目录权限的命令;这些操作会掩盖原始原因,并扩大排查范围。
系统代理与 TUN:先选最小需要
v2rayN 是配置和管理界面,实际转发连接的是内核。界面能启动,不代表内核已经启动;内核能连接服务器,也不代表浏览器已经使用代理。系统代理负责告诉遵循系统设置的应用“把连接交给哪个本地入口”,TUN 则通过虚拟网络接口接管符合规则的流量。
先用系统代理
推荐先保持 TUN 关闭,选择一个有效服务器,再通过 v2rayN 的「系统代理」→「自动配置系统代理」启用。菜单位置可能随桌面版本变化,通常位于主窗口底部或托盘菜单。
适合:浏览器访问、首次配置、区分本地入口与远端连接故障。
按需启用 TUN
在普通代理已经验证可用之后,再尝试 TUN。创建虚拟接口、调整路由及相关辅助操作通常需要管理员授权,具体提示取决于客户端版本和所用内核。
适合:不遵循系统代理的应用,以及需要统一接管流量的场景。
启用系统代理后,可到「系统设置」→「网络」→当前连接的 Wi-Fi 或以太网→「详细信息」→「代理」检查结果。这里的 Web 代理、安全 Web 代理或 SOCKS 代理应与客户端实际提供的入站类型一致,不能只看到某项已勾选就认定设置正确。
- 地址:本机代理通常指向
127.0.0.1,不要把订阅服务器地址填到本机代理栏。 - 端口:以 v2rayN「设置」→「参数设置」中显示的本地监听值为准;不同版本的分页与字段名称可能不同。
- 认证:仅当本地入站明确配置了用户名和密码时,才在系统代理中填写认证信息。
- 退出:关闭客户端前先选择「系统代理」→「清除系统代理」,避免应用退出后系统仍指向停止监听的端口。
网络权限:按提示授权,不必全开
macOS 没有一个对所有桌面应用都通用的“允许全部联网”开关。安全性放行、局域网访问、系统代理写入和 TUN 提权是不同环节,不应把其中一个弹窗理解为其他环节也已完成。
| 权限或设置 | 实际用途 | 操作边界 |
|---|---|---|
| 本地网络 | 在 macOS 15 及更新版本中,控制受该机制管理的局域网访问。 | 需要访问路由器、局域网设备或提供局域网服务时,查看「隐私与安全性」→「本地网络」。 |
| 网络代理设置 | 修改当前网络服务使用的代理地址和端口。 | 若系统要求认证,核对操作来源后确认;失败时检查当前网络服务与管理策略。 |
| TUN 管理员授权 | 允许建立虚拟接口、修改路由等受限操作。 | 按客户端实际弹出的授权流程处理,不把日常图形界面长期作为管理员运行。 |
| 防火墙传入连接 | 控制其他设备连接到本机服务。 | 本机通过回环地址访问代理,通常不靠开放外部传入连接解决。 |
「本地网络」列表中没有 v2rayN,并不一定是安装出错。相关权限通常在应用触发受控访问后才出现;单纯访问公网或本机回环地址,也不能一概归因为缺少局域网权限。不要为解决网页超时就关闭整个防火墙。
用本地端口检查连接链路
排查顺序是“内核启动→本地监听→显式代理请求→系统代理→TUN”。下面的 10808 只是演示端口,不宣称是所有版本的默认值。只有当你的客户端确实在该端口提供 HTTP 或混合代理入站时,才直接使用示例命令。
打开「访达」→「应用程序」→「实用工具」→「终端」,先执行下面两条只读命令。第一条检查示例端口是否存在 TCP 监听,第二条读取当前系统代理状态,不会修改系统设置。
lsof -nP -iTCP:10808 -sTCP:LISTEN
scutil --proxy
- 监听检查没有输出:先核对实际端口和内核日志。不能仅凭空输出判定应用未安装成功。
- 监听者不是预期内核:可能存在端口占用。记录进程名称,在客户端改用空闲端口后重新启动内核。
- 系统代理地址或端口不一致:重新应用系统代理,并检查当前使用的 Wi-Fi 或以太网服务。
确认该入口支持 HTTP 代理后,再发出一次显式代理请求。这个测试不依赖浏览器是否采用系统代理,适合把“本地转发可用”和“系统接管生效”分开验证。
curl --connect-timeout 10 --max-time 20 -I \
--proxy http://127.0.0.1:10808 https://v2raybit.com/
若本地入口仅支持 SOCKS,应将代理参数改为 --proxy socks5h://127.0.0.1:10808;端口仍以对应的 SOCKS 监听值为准。这里不预设返回内容:连接被拒绝优先查本地监听,超时再结合内核日志判断是远端连接、DNS 还是规则问题。
常见追问与退出后的恢复
每次启动都要点「仍要打开」吗?
同一份已获准的应用通常不需要反复操作。先退出所有副本,从「应用程序」启动。更新后若应用包发生变化,系统可能重新检查;如果始终重复拦截,记录提示原文,并检查是否运行了旧副本或受管理策略限制。
已经允许打开,为什么订阅仍然更新失败?
允许打开只解决启动检查。检查订阅地址是否完整、是否过期,以及更新操作是否要求通过代理。只有已有可用代理路径时,“通过代理更新”才可能帮助访问订阅;它不能凭空建立连接。分享日志时隐藏完整订阅地址和认证信息。
TUN 一开就断网,应该加什么权限?
先关闭 TUN,回到已验证可用的系统代理路径。再单独启用 TUN,记录首次失败的日志和系统授权提示。若普通代理可用而 TUN 不可用,重点检查虚拟接口、路由冲突和 DNS,不要同时改节点、协议和权限。
退出 v2rayN 后整台电脑不能上网怎么办?
到「系统设置」→「网络」→当前连接→「详细信息」→「代理」,检查是否仍指向本机端口。仅撤销本次由客户端设置的代理项,保留工作网络原有配置。若启用了 TUN,正常关闭 TUN 后再退出,必要时重新连接当前网络。
最后保留三项信息即可继续定位:macOS 版本与芯片类型、v2rayN 的实际版本、失败时第一条相关日志。先确定故障发生在哪一层,再调整对应设置,通常比反复重装或扩大权限更容易得到明确结果。