macOS TUN 模式怎么设置?从权限授权到连接验证
简答:macOS 开启 TUN 的核心顺序是:先导入并启用配置,再安装客户端要求的服务或网络扩展,随后打开 TUN,最后用浏览器、curl 和客户端日志交叉验证。TUN 与系统代理不是同一功能:系统代理主要接管遵循代理设置的应用,TUN 则通过虚拟网络接口接管更底层的系统流量。若开启后断网,先关闭 TUN 恢复网络,再按 DNS、路由、权限和其他 VPN 的顺序排查。
定义:macOS TUN 模式是由代理客户端创建虚拟网络接口并调整路由,使未主动读取系统代理设置的应用也能被客户端接管的一种工作方式。
先试这一步:确认你要开启的是 TUN,而不是系统代理
如果浏览器可以访问,但终端、Git、开发工具或某些应用仍然无法连接,通常需要检查 TUN 是否真正启用,而不是只打开了 macOS 系统代理。mihomo 官方文档将顶层 tun 配置用于系统流量接管、自动路由和 DNS 处理;其 TUN 网卡在 macOS 上应使用以 utun 开头的接口名,具体配置以客户端当前页面和核心版本为准。mihomo TUN 配置文档
| 项目 | 系统代理 | TUN 模式 | 适合的核验方式 |
|---|---|---|---|
| 接管范围 | 主要接管遵循系统代理的应用 | 通过虚拟网络接口处理更底层的系统流量 | 分别测试浏览器、终端和不读取代理的应用 |
| 是否需要权限 | 通常只需修改系统代理设置 | 通常需要安装服务、网络扩展或管理员授权 | 查看客户端是否提示安装服务或授权 |
| 常见问题 | 浏览器能用,终端或应用不能用 | 开启后 DNS 失败、断网或与其他 VPN 冲突 | 查看客户端日志、DNS 状态和路由变化 |
| 关闭方式 | 关闭系统代理开关 | 先关闭 TUN,再恢复系统代理和 DNS | 关闭后重新测试直连网络 |
本文是第三方使用指南站,不是任何客户端的官方页面。客户端安装包、版本和下载入口应以对应项目的官方发布页为准。
开启前准备:配置、节点与权限先检查
- 确认客户端支持 TUN。不同客户端的菜单名称可能不同,常见写法包括“Tun”“TUN Mode”“服务模式”或“网络接管”。如果界面没有此选项,不要直接修改不匹配版本的 YAML。
- 先导入配置并选择可用节点。没有激活配置或代理组没有选中节点时,即使 TUN 网卡创建成功,也不能据此判断代理链路正常。
- 记录当前网络状态。记下 Wi-Fi 或以太网名称、是否连接公司 VPN、是否使用 Docker、虚拟机、抓包工具或其他网络过滤软件。多个网络接口同时存在时,mihomo 文档建议关注出口接口自动识别;必要时再在客户端界面中指定实际使用的接口。mihomo TUN 字段说明
- 备份客户端配置。特别是 DNS、规则和覆写内容。不要为了“让 TUN 先跑起来”一次性修改
stack、strict-route、DNS 和路由字段,否则出错后难以判断是哪一项造成影响。 - 准备管理员密码。TUN 涉及系统路由或网络扩展时,客户端可能请求管理员授权。Apple 的系统扩展文档说明,扩展激活可能需要用户明确批准,未批准时激活会保持等待状态。Apple 系统扩展激活说明
Clash Verge Rev 在 macOS 上怎么开 TUN
以下是按界面逻辑整理的操作顺序,实际菜单名称可能随客户端版本变化:
- 打开 Clash Verge Rev,确认配置已经导入并处于活动状态。
- 进入代理或设置相关页面,先选择代理模式和代理组中的节点。
- 找到 TUN 开关。若界面提示安装服务、安装辅助组件或请求管理员权限,阅读提示后输入 macOS 管理员密码。
- 授权完成后重新打开 TUN。不要只看开关颜色,要继续检查客户端是否显示运行中的 TUN 状态、核心日志或虚拟接口信息。
- 先保留系统代理作为对照。确认 TUN 可用后,再按需要关闭系统代理;如果关闭系统代理后只有浏览器无法访问,说明该应用可能依赖系统代理或自身代理设置。
Clash Verge Rev 的官方发布页列出了 macOS 的 Apple 芯片与 Intel 芯片安装包,并记录过 TUN 权限引导、服务安装和 TUN 堆栈相关变化。不要根据旧教程直接套用某个版本的按钮位置,升级后应以客户端当前界面和官方发布说明为准。Clash Verge Rev 官方发布页
ClashX Meta 或其他 mihomo 客户端的通用设置思路
如果你使用的是 ClashX Meta 或其他基于 mihomo 的 macOS 客户端,可以按同样的四步判断:
- 在菜单栏客户端中确认配置已载入,并选择节点或代理组。
- 找到 TUN、Tun Mode、增强模式或服务安装入口;首次启用时按提示完成管理员授权。
- 开启后检查是否出现
utun类虚拟接口、TUN 状态或核心日志。不要把“系统代理已开启”当成 TUN 已生效。 - 先用浏览器和命令行分别测试,再决定是否调整 DNS 或堆栈。普通用户不应直接复制其他版本的完整 YAML;mihomo 文档明确区分了
system、gvisor、mixed和mips等堆栈,具体可用值与默认行为应以当前核心文档为准。mihomo 官方 TUN 字段与堆栈说明
一般情况下,优先使用客户端界面提供的默认 TUN 参数。auto-route 用于自动设置路由,auto-detect-interface 用于自动识别出口接口;dns-hijack、strict-route 和 DNS 模式会影响解析与回环,出现问题时应一次只改一项。
macOS TUN 是否生效:按四层方法验证
验证时要区分“客户端启动成功”和“流量确实经过 TUN”。建议按下面顺序测试,且每一步记录结果。
- 浏览器层:访问一个平时需要代理的目标,再访问一个确认可以直连的站点。若两者都失败,先回到客户端日志和 DNS 层,不要急着换节点。
- 终端层:在 macOS 终端执行
curl -I https://www.apple.com。这条命令用于观察当前终端连接是否正常,未指定代理时,结果可能是直连,也可能由 TUN 接管,不能仅凭 HTTP 状态判断出口位置。 - 本地代理对照:如果客户端设置页显示的 HTTP 或 mixed 端口是示例值
7890,可执行curl -x http://127.0.0.1:7890 -I https://www.apple.com;如果实际端口不同,替换为客户端设置页显示的端口。该命令测试的是本地代理端口,不等于 TUN 测试。 - DNS 层:执行
scutil --dns查看当前解析器,再执行nslookup example.com观察是否能解析。若网页打不开但本地代理端口测试成功,重点检查 TUN 的 DNS 设置;若解析和代理端口都失败,先检查节点、配置和核心日志。 - 客户端层:查看连接记录是否出现测试应用或目标域名,并确认规则命中了预期策略组。只有看到 TUN 开关打开,不能证明应用流量已经进入核心。
mihomo 文档指出,macOS 默认 DNS 行为与 Windows、Linux 不同,且 macOS 和 Windows 不能自动劫持发往局域网的 DNS 请求。因此,局域网域名、NAS、打印机或公司内部 DNS 的结果不能简单套用其他系统的教程。mihomo DNS 模式与 DNS 劫持说明
开启 TUN 后无法上网:按这个顺序回滚和排查
| 现象 | 优先检查 | 处理方法 |
|---|---|---|
| TUN 开关无法打开 | 服务、网络扩展、管理员授权 | 关闭 TUN,重新安装客户端要求的服务;若 macOS 出现待批准状态,回到系统设置完成用户批准,再重启客户端。 |
| 系统代理正常,TUN 无法访问 | 核心日志、堆栈、DNS 和路由 | 先使用客户端默认堆栈,暂时不要启用严格路由;确认配置已激活后再逐项恢复修改。 |
| 域名解析失败 | DNS 模式、DNS 覆写、其他 VPN | 关闭重复的 DNS 覆写,检查客户端日志和 scutil --dns;不要直接把网上的 DNS 地址复制进配置。 |
| 只有局域网、NAS 或打印机不能用 | 严格路由和局域网排除 | 先关闭严格路由测试;确认是代理规则还是路由问题,再按客户端提供的局域网绕过选项调整。 |
| Docker、虚拟机或公司 VPN 失效 | 虚拟接口和路由冲突 | 暂时关闭其他 VPN、虚拟机网络和抓包软件,重启 TUN 后逐个恢复,以确定冲突来源。 |
| 退出客户端后仍然断网 | TUN、系统代理或 DNS 未恢复 | 重新打开客户端关闭 TUN,再关闭系统代理;若仍异常,前往 macOS“系统设置—网络”检查相关服务和 DNS 设置。Apple macOS 网络设置说明 |
公开 Issue 只能证明某个版本、系统或配置下出现过具体现象,不能直接当成所有 macOS 用户都会遇到的通用结论。例如,Clash Verge Rev 和 mihomo 的项目页面都记录过 macOS TUN、DNS、堆栈或多网卡相关问题;遇到相似现象时,应先核对自己的客户端版本、核心版本、macOS 版本和日志,而不是直接复制 Issue 中的配置。Clash Verge Rev 官方 Issue 列表 mihomo 官方 Issue 列表
关闭 TUN 并恢复网络的正确顺序
- 在客户端中关闭 TUN,等待状态变为未运行。
- 如果之前打开过系统代理,按需要关闭系统代理;如果你还要保留系统代理作对照,不要同时反复切换多个开关。
- 关闭客户端前,确认浏览器可以访问普通网页,并用
curl -I https://www.apple.com再测一次。 - 若 DNS 仍异常,打开 macOS“系统设置—网络”,检查当前 Wi-Fi 或以太网服务的 DNS 和代理设置;Apple 的网络设置页面提供了 Wi-Fi、以太网、VPN、防火墙和其他网络服务的管理入口。Apple macOS 网络设置说明
- 确认网络恢复后,再逐项启用 TUN、系统代理或其他 VPN。一次只启用一个网络接管组件,便于定位冲突。
macOS TUN 设置最低核验清单
- 客户端配置已导入并处于活动状态。
- 代理组已选择节点,核心日志没有持续启动错误。
- TUN 服务或网络扩展已完成管理员授权。
- TUN 状态已开启,并能看到客户端的运行状态或
utun接口信息。 - 浏览器、终端、本地代理端口分别完成测试。
scutil --dns能显示当前解析器,域名解析没有持续失败。- 没有同时运行未确认兼容性的其他 VPN、Docker、虚拟机网络或抓包工具。
- 关闭 TUN 后,系统代理、DNS 和普通网络能够恢复。
如果以上项目只有“开关已打开”一项满足,不足以判定 TUN 已经生效;至少还要完成终端测试、DNS 测试和客户端连接记录核对。
相关设置继续排查
如果你已经确认 macOS TUN 本身能启动,但系统代理和应用表现不一致,可以继续阅读macOS 系统代理与应用代理的区别;如果问题表现为连接超时,可以查看代理连接超时排查步骤;如果你想确认节点延迟和实际访问体验是否一致,可参考节点延迟测速与真实体验的区别。
常见问题
macOS TUN 模式和系统代理有什么区别?
系统代理主要影响遵循系统代理设置的应用,TUN 通过虚拟网络接口处理更底层的系统流量。因此,浏览器能用但终端、Git 或某些应用不能用时,可以重点检查 TUN;但 TUN 也更容易受到 DNS、路由、其他 VPN 和虚拟网卡冲突影响。
macOS 开启 TUN 一定要输入管理员密码吗?
不一定每次都需要,但涉及系统路由、服务或网络扩展时,客户端可能要求管理员授权。Apple 文档说明,系统扩展激活可能需要用户明确批准;如果授权窗口被取消,TUN 可能保持未运行或等待状态。
TUN 开启后网页打不开,应该先改 DNS 还是先换节点?
先关闭 TUN恢复网络,再检查客户端日志、配置是否激活、DNS 解析和其他 VPN 是否运行。若本地代理端口测试成功而 TUN 测试失败,优先排查 TUN 的 DNS、路由和堆栈;若本地代理端口也失败,再检查节点、代理组和配置。
为什么 TUN 已经打开,但终端流量还是不通?
开关状态只能说明客户端尝试启用 TUN,不能证明流量已经被接管。请依次检查客户端连接记录、<code>utun</code> 接口、<code>curl</code> 结果、<code>scutil --dns</code> 和核心日志;如果只开了系统代理而未开启 TUN,终端或不读取系统代理的应用仍可能不通。
关闭 TUN 后 macOS 仍然无法上网怎么办?
先重新打开客户端并关闭 TUN,再检查系统代理是否仍开启;随后在“系统设置—网络”中检查当前 Wi-Fi 或以太网服务的代理和 DNS。若仍未恢复,暂时关闭其他 VPN、虚拟机和抓包工具后重启客户端,再逐项恢复。