TUN 模式开不了怎么办?权限、驱动与冲突排查
TUN 模式开不了,先查三件事:客户端有没有管理员权限或已装好服务模式,虚拟网卡驱动有没有被系统或安全软件拦截,有没有其他 VPN、加速器抢占网卡和路由。按这个顺序逐项排除,就能缩小到具体原因。
你遇到的现象
打开 TUN/虚拟网卡开关后报错、自动关闭,或开启后完全断网。
TUN 模式开不了,大多数时候卡在三个地方:客户端没有足够的权限,虚拟网卡没装上,或者被别的 VPN、加速器、安全软件挡住了。这篇按“现象、可能原因、怎么验证、怎么处理”的顺序写,由易到难,先排除不用动系统的原因,再碰驱动和配置。如果你还没弄清 TUN 是什么,先读 TUN 模式是什么。
先分清你遇到的是哪一种“开不了”
同样是 TUN 模式开不了,现象不同,排查的方向差别很大。先对号入座:
| 现象 | 最可能的方向 | 先看哪一节 |
|---|---|---|
| 点开关没反应,或弹出授权、安装服务后失败 | 权限不够,服务模式没装好 | 第一关 |
| 开关打开几秒后自己关闭,并提示错误 | 虚拟网卡创建失败:驱动被拦、残留占用 | 第二关、第三关 |
| 开关是开着的,但完全断网 | 路由或 DNS 接管出了问题,或所选节点本身不可用 | “开了就断网”一节 |
| 开着,也能上网,但个别软件仍然不走代理 | 不属于“开不了”,多半是规则或程序自身的问题 | 某个 App 不走代理怎么办 |
动手之前,先做三件不花力气的小事:
- 记下报错原文。 在客户端的日志页找到含 error 的那几行,复制下来。不同内核和客户端的措辞不一样,但大意通常指向权限、网卡或端口。
- 确认不开 TUN 时代理本身是通的。 订阅能导入、节点能连、系统代理能上网。基础没通就开 TUN,只会让问题更难找,这种情况请先看梯子连不上怎么办。
- 完全退出客户端再打开一次。 注意是退出托盘图标,不是关窗口。一些“开不了”只是上次异常退出留下的状态。
第一关:权限不够,或服务模式没装好
TUN 要创建虚拟网卡、改写路由表,这些都是系统级操作。客户端要么本身以高权限运行,要么借助一个事先装好的后台服务。后者就是常说的服务模式:装一次,之后开关 TUN 不必每次提权。
三个系统的情况大致如下:
| 系统 | 需要什么 | 常见失败表现 | 处理方向 |
|---|---|---|---|
| Windows | 管理员权限,或已安装并在运行的服务 | 点开关无反应,或提示权限不足 | 以管理员身份运行;安装服务模式 |
| macOS | 管理员密码授权,或客户端的辅助组件 | 授权窗口被取消、没有弹出 | 重新触发授权,用管理员账户操作 |
| Linux | root 权限,或赋予内核网络管理能力 | 提示没有权限创建设备 | 用 root 运行,或设置能力位 |
Windows 上的检查顺序:
- 完全退出客户端,右键选择“以管理员身份运行”,再试开 TUN。能开,说明就是权限问题。
- 想长期用,到客户端设置里找“服务模式”(或类似名称的安装服务按钮),出现系统弹窗时选择允许。装完重启客户端。
- 按下 Win + R,输入
services.msc打开服务列表,确认客户端的服务存在并处于运行状态。服务不存在,说明没装上;存在但没运行,尝试手动启动。 - 服务总装不上,先看安全软件有没有拦截;如果是公司或学校的电脑,可能是策略禁止,需要联系管理员。
macOS 上: 第一次开 TUN 或安装服务时,系统会要求输入管理员密码。如果你点了取消,或授权窗口被别的窗口挡住,辅助组件就没装成。重新触发一次授权即可。普通用户账户无法完成授权,要换管理员账户。系统设置里与隐私和安全相关的页面有时会提示某个组件被阻止,具体位置和措辞以当前系统版本为准。
Linux 上: 内核进程需要 root 权限,或者被授予创建网络设备的能力。常见做法是用能力位,而不是长期以 root 运行:
getcap /path/to/mihomo
sudo setcap cap_net_admin,cap_net_bind_service+ep /path/to/mihomo
ls -l /dev/net/tun
把 /path/to/mihomo 换成你实际的内核路径。第三行用来确认系统里有 TUN 设备文件。一旦替换了内核文件,能力位会丢失,需要重新设置。在部分容器或虚拟主机里,/dev/net/tun 默认不存在,需要宿主方开启,自己改不了。
第二关:虚拟网卡安装失败,是被拦了还是被占了
权限没问题但仍然失败,就轮到虚拟网卡本身。虚拟网卡安装失败的原因,大体是两类:被拦截,或被残留占用。
Windows 上,内核通常借助名为 Wintun 的虚拟网卡驱动工作,客户端一般会把相关文件随内核一起带上,首次开启时才用到。可以按下面的顺序查:
- 看安全软件的隔离记录。 杀毒软件有时会把驱动文件或内核当成可疑文件隔离掉。打开安全软件的隔离区,看有没有客户端安装目录下的文件。有的话,确认客户端来自官方渠道后,再把安装目录加入信任。下载渠道见下载中心。
- 清理残留的网卡。 客户端崩溃后,虚拟网卡可能没删干净,再次创建同名网卡就会失败。打开设备管理器,在“查看”菜单里勾选“显示隐藏的设备”,到“网络适配器”下找名称里带 Wintun 或客户端字样的残留项,卸载后重开客户端。具体名称因客户端而异。
- 检查系统策略。 受管理的电脑可能禁止安装未经批准的驱动,这种情况下没有办法靠自己解决。
- 重启系统。 听起来笨,但驱动安装到一半被中断时,重启往往能让系统状态回到一致。
可以用下面两条命令看看虚拟网卡到底有没有出现(PowerShell):
Get-NetAdapter | Format-Table Name, InterfaceDescription, Status
ipconfig /all
macOS 的虚拟接口由系统按需创建,不需要单独安装驱动,所以所谓的安装失败,多半还是上一关的授权问题。Linux 则要确认内核有 tun 模块:
lsmod | grep tun
sudo modprobe tun
如果 modprobe 报错,说明当前系统内核不带这个模块,需要查发行版的文档。
第三关:和 VPN、加速器、安全软件冲突
两个软件同时想接管默认出口,就会互相抢。这一类冲突有个特点:单独用任何一个都正常,同时开就出事。
| 软件类型 | 为什么会冲突 | 对照办法 |
|---|---|---|
| 另一个代理客户端也开着 TUN | 两张虚拟网卡都想当默认出口 | 只保留一个开 TUN |
| 公司或学校 VPN | 会下发自己的路由和 DNS,与客户端互相覆盖 | 并存本来就不稳妥,需要时关一个 |
| 游戏加速器 | 常自带驱动或虚拟网卡 | 退出加速器后再试 |
| 虚拟机、WSL、容器 | 会创建虚拟交换机,网段可能重叠 | 暂时关闭虚拟机网络对照 |
| 安全软件的网络防护 | 可能拦截驱动加载或监控流量 | 临时放行客户端,观察是否改善 |
用对照法来定位,比猜测有效:
- 列出电脑上正在运行的网络类软件,包括托盘里的小图标。
- 逐个彻底退出(不是最小化),只留下你的代理客户端。
- 再试开 TUN。能开了,说明冲突存在。
- 一个一个把退出的软件重新打开,每次都重试,找到引发问题的那个。
- 如果两个软件必须共存,通常只让一个接管全部流量,另一个改用系统代理或只管特定应用,见系统代理怎么设置。
要说明一点:公司 VPN 与 TUN 并存失败,往往不是谁坏了,而是它们的设计本来就互相排斥。别把它当作故障去反复折腾。
第四关:内核、堆栈与配置项
前三关都过了,TUN 模式开不了的问题依旧,仍属于 TUN 模式失败,那就要再看内核和配置。
客户端与内核不匹配。 手动替换过内核、或者客户端长期不更新,都可能导致新系统环境下创建网卡失败。到客户端的官方仓库查看发布页,例如 Clash Verge Rev 官方仓库,换成当前版本再试。其他客户端请到各自的官方仓库,不要从来路不明的网盘下载。
配置项。 多数图形客户端在界面里提供这些选项,底层对应的是内核配置的 tun 段,含义可以查 Mihomo 文档:
tun:
enable: true
stack: mixed
auto-route: true
auto-detect-interface: true
dns-hijack:
- any:53
排查时一次只改一项,并重启 TUN 让它生效:
- stack(网络栈):可以在 system、gvisor、mixed 之间切换。某种栈在你的系统上创建失败或表现异常时,换一种试试。
- auto-route:关掉它,意味着不会自动改路由,TUN 开了也接管不了流量,只适合做对照,不建议长期关。
- auto-detect-interface:让内核自己找出实际的上网接口,关了之后可能出现流量绕回虚拟网卡自己的情况。
- dns-hijack:劫持域名解析请求。这一项要占用 53 端口,如果该端口已被别的程序占用,就会失败。
端口占用可以这样查:
ss -lntup | grep ':53 '
Windows 上用 netstat -ano | findstr ":53 "。找到占用者后怎么处理,思路和Clash 端口被占用怎么办一样。DNS 部分的含义见 Clash DNS 怎么设置。
提醒一下:手改配置文件,在下次更新订阅或重启时可能被客户端覆盖。能在客户端设置或覆写功能里改的,就不要直接改文件。
开了就断网:先恢复,再找原因
比“开不了”更让人慌的是“开了就断网”。顺序是先恢复,再查因:
- 先关掉 TUN。 网络恢复,说明问题与 TUN 有关。关了仍不通,多半是系统代理残留,读关掉梯子后上不了网。
- 客户端界面点不动,就退出进程重启。 仍无效再重启系统,因为异常退出时路由有可能没清理。
- 再开 TUN,切到直连模式对照。 直连下能上网,说明 TUN 自身没问题,问题在所选节点或规则,转去看规则模式、全局模式、直连模式怎么选和梯子连不上怎么办。
- 区分是 DNS 还是路由。 开着 TUN,分别 ping 一个公网 IP 和一个域名:
ping 223.5.5.5
ping example.com
| 结果 | 说明什么 | 下一步 |
|---|---|---|
| IP 通,域名不通 | DNS 接管有问题 | 检查 dns-hijack 与 DNS 设置 |
| IP 和域名都不通 | 路由或网卡有问题 | 回到第二、第三关,查网卡与冲突 |
| 域名解析出的地址落在 fake-ip 地址段,但仍然上不去 | DNS 正常,线路或规则有问题 | 查节点与规则 |
开着 fake-ip 时,默认情况下域名会被解析成一段保留地址,这是正常现象,不是错误,原理见 Clash DNS 那篇。
怎么确认 TUN 已经真正开成功
不要只看客户端里开关亮了没有。用下面的清单自己核对:
- 虚拟网卡存在,且状态正常。 Windows 用
Get-NetAdapter;macOS 用ifconfig,找以 utun 开头的接口;Linux 用ip addr。 - 默认路由已经改变。 Windows 用
route print,macOS 用netstat -rn,Linux 用ip route。能看到经过虚拟网卡的路由条目。 - 找一个不读系统代理的程序来测。 终端里的 curl 是个好选择。Windows PowerShell 中要写成
curl.exe,因为curl在那里是另一个命令的别名:
curl -I https://example.com
- 关掉系统代理再测一次。 TUN 生效时,关掉系统代理,原来能走代理的网站应该仍然能打开。
- 对比开关前后。 记下开 TUN 前后的现象,有变化才算有效。
更完整的验证方法,在 TUN 模式是什么 里也有一节。
下一步:按顺序走一遍,不行就退回系统代理
建议这样用这篇文章:
- 先对照开头那张表,判断自己属于哪种现象。
- 按第一关到第四关逐项排除,每改一项就重试一次,别同时改几样。
- 实在开不了,不必硬撑。浏览器和常见软件用系统代理完全可以,TUN 只在系统代理管不到的场景才有必要。
- 本机一切正常,仍然连不上节点,问题就在线路或服务商一侧。想换一家时,可以到梯子推荐里按用途挑,再用试用或短周期套餐验证。
TUN 模式开不了的排查,核心只有一条:每次只动一个变量,并且每次都留下记录。这样即使最后没解决,你也能把清楚的信息交给客户端的维护者。
这篇没有覆盖的
- 本文不提供任何测速或解锁测试结果,只讲 TUN 开启失败的排查方法。
- 各客户端的菜单名称和按钮位置会随版本变化,请以你当前客户端的界面说明为准。
- 公司或学校管理的电脑,权限和驱动可能被策略锁定,需要联系管理员,不要自行绕过。
资料里明确写了支持 Clash 的机场
把 Clash 写进“客户端支持”的品牌目前很少。没写不等于不能用,多数机场都提供 Clash 格式订阅,只是资料里没有可核对的说明。
本文引用的官方来源
- Mihomo(Clash Meta)文档(wiki.metacubex.one)
- Clash Verge Rev 官方仓库(github.com)
以上链接均为官方页面,选梯子在 2026-10-08 核对过;个别网站会拦截自动化访问,用浏览器直接打开即可。平台规则可能随时调整,以官方页面当前内容为准。
接着读
- 使用教程 · TUN 模式是什么?什么时候该开、怎么开
- 使用教程 · 系统代理怎么设置?和 TUN 模式的区别与适用场景
- 故障排查 · Clash 端口被占用怎么办?端口冲突的查找与修改
- 使用教程 · Clash DNS 怎么设置?fake-ip 与 redir-host
- 故障排查 · 关掉梯子后上不了网?系统代理残留的修复方法
- 故障排查 · 梯子连不上怎么办?按 6 步从外到内排查