TUN 模式开启失败怎么办?虚拟网卡与权限排查
客户端 TUN / 增强模式打不开、开关自动弹回、提示需要权限?本文讲清 TUN 模式的作用与开启失败的常见原因:管理员权限、虚拟网卡驱动、系统扩展授权。
直接回答:TUN 开关一点就弹回,Windows 是没装「服务模式」,macOS 是没在系统设置里允许网络扩展——两者都是一次性授权,装好以后不再弹。开是开了但全断网,是 DNS 没跟着接管,把客户端的 DNS 模式改成 fake-ip 并开启 DNS 劫持。
TUN 和系统代理的区别
系统代理是「告诉程序有个代理在 127.0.0.1:7897,请自觉去走」,浏览器听话,终端、游戏、很多 App 不听。TUN 模式是在系统里建一张虚拟网卡,所有流量先经过它,不存在「不听话」——这就是为什么 Claude Code、Codex CLI 这类命令行工具的教程都要求开 TUN,或者退一步给终端手动配 HTTP_PROXY,见 Codex 网络环境。
Windows:先装服务,再开 TUN
Clash Verge Rev 在 Windows 上建虚拟网卡需要系统权限,它的做法是安装一个后台服务(clash_verge_service)。顺序是:
- 「设置 → 服务模式」点「安装服务」,弹 UAC 时允许;
- 服务状态变为「运行中」后,再打开「TUN 模式」开关。
跳过第一步直接开 TUN,就是「一点就弹回」。服务安装失败的常见原因是杀毒软件拦截了安装程序,先在杀毒里放行客户端目录再装。用「以管理员身份运行」代替服务模式也能开,但每次都要提权,且和开机自启冲突。
macOS:允许网络扩展
首次开 TUN,客户端会请求安装系统扩展,系统弹「已阻止系统扩展」——去允许:
- macOS 15 及以后:「系统设置 → 通用 → 登录项与扩展 → 网络扩展」,打开客户端那一项;
- macOS 13–14:「系统设置 → 隐私与安全性」,页面下方点「允许」。
允许后回到客户端再开一次 TUN。Stash、Surge 这类 App Store 版本用的是系统 VPN 框架,第一次开会弹「添加 VPN 配置」,点允许即可,不涉及扩展授权。
开了 TUN 全断网:DNS
TUN 接管了所有流量之后,DNS 查询也进了客户端,客户端没配好 DNS 就等于全网解析失败——网页转圈、节点显示「已连接」。Clash Verge Rev 在「设置 → DNS 设置」里:
- 「DNS 劫持」打开;
- 「增强模式」选 fake-ip(redir-host 在 TUN 下容易出这种问题)。
sing-box 用户检查 tun 入站里 auto_route: true,以及 dns 段是否配了可用的上游。改完关掉再打开 TUN 生效。
还是弹回:看日志
日志里 wintun.dll 相关报错是虚拟网卡驱动没装上,重装完整版客户端;permission denied 是服务没起来,回到「安装服务」;core exited 是内核本身没起来,先解决客户端内核无法启动。
不需要 TUN 也能满足需求(只用浏览器)的,用系统代理更省事,不通见机场显示正常但无法上网。完整配置见 Clash Verge Rev 教程与 sing-box 教程,安装包在下载中心;同类问题见网络问题排查 · 客户端与系统。
常见问题
为什么一定要开 TUN 模式?
系统代理只管遵守代理设置的程序(浏览器等),终端、部分 App、游戏会绕过。TUN 模式创建虚拟网卡接管全部流量,是终端工具(Claude Code、Codex)和 App 联网的最省事方案。
开关一点就弹回是什么原因?
多为权限或驱动没装好:Windows 要先安装服务模式、macOS 要在系统设置里允许网络扩展、首次开启需安装虚拟网卡服务。
开了 TUN 反而全部断网?
DNS 没配好的典型表现。TUN 模式下要同时开启客户端的 DNS 劫持 / fake-ip,否则解析失败导致全断。