TUN模式是什么?开启步骤、适用场景与常见坑
TUN模式的本质,是让代理客户端创建一块虚拟网卡,把整台设备的流量接过来再分流,而不是等每个软件自己去找代理。结论先给:日常浏览用系统代理就够;命令行、游戏、不认系统代理的软件才需要 TUN;开它要权限,开了之后还得管 DNS。这篇讲清区别、适用场景、五步开启方法和常见冲突。
示例以 Clash 系客户端(Mihomo 内核)为准,其他客户端的开关位置和名称不同,按各自说明来。界面一律写成“类似……”,请按含义找。
虚拟网卡和系统代理有什么区别
两者的差别在“谁在接管流量”:
| 维度 | 系统代理 | TUN(虚拟网卡) |
|---|---|---|
| 工作方式 | 改操作系统的代理设置,软件自己去读 | 创建虚拟网卡,用路由把流量引过去 |
| 覆盖范围 | 只有遵守系统代理的软件,浏览器通常遵守 | 覆盖大多数联网软件,不要求软件配合 |
| 需要权限 | 一般不需要管理员 | 通常需要管理员或授权 |
| 常见冲突 | 被其他代理软件抢走设置 | 与其他 VPN、虚拟网卡、安全软件冲突 |
| 排错难度 | 低 | 较高 |
系统代理像是给每个软件发一张“请走这条路”的告示,软件看不看由它自己。虚拟网卡则是直接改了路,没有软件能绕开。概念页见 TUN模式是什么。
什么时候真的需要 TUN
按你的情况走一遍:
- 只用浏览器上网:系统代理够用,别折腾;
- 命令行工具、游戏客户端、部分桌面软件开了代理仍然不走:这是 TUN 的典型场景;
- 只是某个终端里的命令想走代理:先考虑给当前终端设置环境变量,比开 TUN 轻得多;
- 手机:客户端靠系统的 VPN 机制工作,原理类似,不需要另外开。
终端里设置代理的示意写法如下,端口号以你的客户端里显示的为准:
export HTTPS_PROXY=http://127.0.0.1:端口号 # 示意:只对当前终端生效
PowerShell 里对应的写法是 $env:HTTPS_PROXY = "http://127.0.0.1:端口号"。这两种写法只影响当前窗口,关掉就失效,不会动整台设备的网络,出了问题也容易还原。
TUN模式设置:五步开启,每步带预期结果
-
先让系统代理跑通
- 做法:按 Clash Verge导入订阅教程 把订阅、节点、系统代理走通一遍。
- 预期:浏览器能正常访问你要访问的合法网站。
- 原因:基础没通就开 TUN,只会让排错变复杂。
-
准备权限
- 做法:Windows 上以管理员身份运行客户端,或使用客户端提供的类似“服务模式”的一次性授权功能;macOS 开启时通常会弹出输入系统密码的授权;Linux 取决于发行版和安装方式,按项目说明处理。
- 预期:客户端提示权限就绪,或没有再提示权限不足。
-
打开开关
- 做法:在类似“设置”的页面找类似“虚拟网卡模式”或 TUN 的开关,打开。
- 预期:开关变为开启状态,没有报错提示。
-
确认虚拟网卡出现
- 做法:Windows 到系统的网络适配器列表里看;macOS 到网络设置里看接口列表。
- 预期:多了一个新的网络接口,名字因客户端而异。
- 出错:没出现,先查权限,再查安全软件有没有拦截。
-
验证
- 做法:先关掉系统代理,排除干扰,然后用一个不遵守系统代理的软件或命令行访问一个你合法访问的站点,再打开“查询出口 IP”类页面。
- 预期:能正常访问,出口地区是节点所在地区。
客户端里的开关,最终会生成类似下面的配置。字段以所用内核的官方说明为准:
tun: # 示意配置:只说明结构
enable: true
stack: mixed # 网络栈实现,常见取值 system、gvisor、mixed
auto-route: true # 自动添加路由,把流量引到虚拟网卡
auto-detect-interface: true # 自动识别真实出口网卡,避免流量绕回自己
dns-hijack:
- any:53 # 接管 DNS 查询,交给客户端内置的 DNS 处理
网络栈先用客户端的默认值,出问题再换,换之前看项目说明。
开了 TUN 为什么还要看 DNS
虚拟网卡接管的是网络包,而域名解析本身也是网络包。如果不把 DNS 查询一并接管,软件仍然会向本地 DNS 发问,会出两类问题:
- 你访问了哪些域名,会被本地网络看到,这就是常说的泄漏;
- 本地解析出的结果和代理侧不一致,按域名写的分流规则可能对不上。
所以配置里才有 dns-hijack 这一项,把查询交给客户端内置的 DNS。内置 DNS 常配合 fake-ip 模式使用:软件先拿到一个虚拟地址,真正的解析交给代理侧完成。一个副作用要知道:这种模式下用命令行查域名,看到的是虚拟地址,不是真实地址,这不算故障。怎么检测、怎么修,完整流程在 DNS泄漏检测。
按场景对号入座:这 5 种人,TUN 该不该开
如果你是开发者,命令行工具下载总是走不出去:先用上面的终端环境变量,只对当前窗口生效,出了问题关掉窗口就还原。只有一堆工具、容器、脚本都要走代理,逐个设置太麻烦时,才考虑开 TUN。开发环境的网络思路,见 AI开发环境网络。
如果你想让某个联网游戏或桌面软件走代理:先看这个软件自带的代理设置,有就优先用它。没有,再考虑 TUN。无论如何,先确认该软件的服务条款是否允许,也别忘了遵守所在地的法律法规。
如果你在公司电脑上:先问 IT 部门。公司常装有自己的 VPN、安全软件和管理策略,和虚拟网卡一起改路由,冲突概率很高,而且改系统网络本身可能违反设备管理规定。别为了方便,在工作设备上自行折腾。
如果你家里有 NAS、打印机、智能家居要在局域网里访问:开启前先打开类似“绕过局域网”的选项,或者提前给内网网段加一条直连规则。开启后第一件事,就是用一个局域网设备测试访问,确认没被一并接管。
如果你只在 Windows 或 Mac 上日常浏览网页:不用开。系统代理对浏览器已经够用,TUN 带来的是额外权限和排错成本。两个平台的客户端选择,分别见 Windows客户端教程 和 Mac客户端教程。
小 G 开了 TUN 整机断网,一次先关后查的排障(虚构案例)
下面的人物由机场牛虚构,不对应任何真实用户,只演示排查的思路。
小 G 的笔记本上,既装了公司远程办公用的 VPN 软件,也装了代理客户端。他想让命令行工具走代理,于是按五步开了 TUN,开完之后,整台电脑断网了。
他的做法是这样的:
- 先把 TUN 关掉。 网络立刻恢复了。这一步的价值是定位:问题出在 TUN 这一层,不是网线、Wi-Fi 或运营商。
- 再看网络适配器列表。 除了新出现的虚拟网卡,还有公司 VPN 创建的虚拟适配器。两者都想改路由,互相抢,这就是冲突的来源。
- 按场景做取舍。 上班时间,只开公司 VPN,不开 TUN;需要让命令行工具走代理时,改用终端环境变量,只影响当前窗口,不动整台设备的路由。
- 记下这次的经验。 以后凡是同一台设备上有两个会改路由的软件,一次只开一个。
这个案例的要点,不是“怎么让两个同时工作”,而是遇到整机问题,先退回到上一个能用的状态,再一次只改一个变量。 把 TUN 关掉就能恢复,说明故障范围很小;如果关了也没用,才去怀疑别处,比如排查 已连接但无法上网 里的几类原因。
虚拟网卡冲突排查表
| 现象 | 常见原因 | 怎么办 |
|---|---|---|
| 开关点了没反应,或提示权限不足 | 没有管理员权限或授权 | 回到第 2 步,授权后重试 |
| 开启后整机断网 | 路由冲突,其他 VPN 或虚拟网卡也在改路由,或流量绕回了客户端自己 | 先关闭 TUN,退出其他 VPN 类软件,再重启客户端,必要时重启系统 |
| 局域网设备、NAS、打印机访问不了 | 内网地址也被接管 | 开启类似绕过局域网的选项,或给内网网段加直连规则 |
| 与公司 VPN、远程桌面冲突 | 两套软件都要改路由 | 同时只开一个,工作设备先问 IT 部门 |
| 创建虚拟网卡失败 | 安全软件拦截,或驱动异常 | 先确认安装包来自官方渠道,再按提示放行,来源说不清的不要放行 |
| 开了仍有软件不走代理 | 规则命中了直连,软件使用 IPv6,或软件自带代理设置 | 到连接页面看命中规则,再排查 IPv6 |
| 速度变慢,占用升高 | 网络栈不合适,或规则过多 | 换网络栈,精简规则 |
| 退出后上不了网 | 残留的代理设置或路由 | 重新打开客户端再正常退出,必要时重启系统 |
另一类问题其实出在系统代理这一层,比如被其他软件覆盖,详见 Clash系统代理不生效怎么办。规则命中哪条、该怎么改,看 分流规则怎么设。
关于 TUN 最容易信错的 5 个说法
误区 1:开了 TUN,网络就会变快。 为什么不对:TUN 改变的是“谁来接管流量”,不会让线路本身变好,反而多了一层接管。正确做法:把它当作覆盖面更广的工具,而不是提速手段,线路表现怎么看,见 机场测速工具。
误区 2:开了 TUN,DNS 就不会泄漏。 为什么不对:是否泄漏取决于 DNS 有没有被一并接管,也就是前面说的 dns-hijack 和内置 DNS 的配置。正确做法:每次改动后,做一次 DNS 检测,开关 TUN 各测一次,对比结果。
误区 3:开了 TUN,就不需要写规则了。 为什么不对:TUN 只负责把流量接过来,哪条走代理、哪条直连,仍由规则决定。接管的范围越大,内网和国内站的直连规则越重要。正确做法:开 TUN 之前,先把内网直连和常用直连规则检查一遍。
误区 4:虚拟网卡出现在适配器列表里,就说明已经能用了。 为什么不对:网卡出现只是第一步,权限、路由、DNS 任何一环有问题,都可能出现“有网卡、没网络”的状态。正确做法:用浏览器之外的软件或命令行访问一次站点,再看出口 IP,才算验证完。
误区 5:TUN 就是 VPN,所以更安全、更隐私。 为什么不对:它只是一种接管流量的方式,隐私取决于你把流量交给谁,以及 DNS 怎么走,并不因为多了一块虚拟网卡就自动变好。正确做法:想了解机场运营方能看到什么,读 机场安全吗。
开 TUN 前想清楚的三个风险
- 权限:高权限程序能改你的系统网络,只给来源可靠的官方安装包授权,客户端从哪下载见 Clash Verge下载;
- 范围:它接管的是整台设备的流量,包括你不想走代理的那部分,要靠规则和直连选项放行;
- 环境:公司电脑、学校网络、已经装了其他 VPN 的设备,先弄清政策和冲突,再决定要不要开。
开启前,逐项勾选这 10 条
把这份清单当作起飞前检查,每一条都能被你实际核对。
- 系统代理模式下,订阅、节点、浏览器访问都已验证正常。
- 我能说出具体是哪个软件需要 TUN,而不是“听说开了更好”。
- 已经退出其他 VPN 类软件和虚拟网卡类软件。
- 客户端安装包来自官方渠道,不是第三方下载站。
- 知道权限怎么给:管理员运行、服务模式,还是输入系统密码。
- 已准备好局域网的处理办法:绕过局域网选项,或内网直连规则。
- 知道出问题时怎么撤回:关开关、退出客户端、关系统代理、必要时重启。
- 如果是工作设备,已经向 IT 部门确认过政策。
- 开启前,截图记下了当前的网络适配器列表,方便对比。
- 开启后,用“查询出口 IP”类页面和 DNS 检测各做了一次验证。
十条都勾上,再点开关,心里有底,出了问题也知道往哪退。
今天就做:三步判断要不要开
- 先问自己:有没有一个具体的软件开了系统代理仍然不走?没有,就保持现状;
- 有的话,按五步开启,验证通过后,把内网直连和 DNS 也一起确认;
- 挑机场时,除了线路和价格,也看客户端支持的情况,去 机场推荐排行榜 对照资料。
软件界面、权限机制和配置字段会随版本变化,以项目官方说明和软件实际显示为准。使用代理服务请遵守所在地法律法规,机场牛不提供法律意见。
TUN模式常见问题
开了 TUN 还需要开系统代理吗?
通常不需要。TUN 在更底层接管流量,覆盖面比系统代理更广。两个同时开不算错,但出问题时不容易判断是哪一层的原因,建议排错时先只留一个。日常浏览网页,只开系统代理就够用,不必为了开而开。
TUN 为什么要管理员权限?
因为它要创建虚拟网卡并修改系统路由表,这些操作操作系统默认只允许高权限程序执行。有的客户端提供类似服务模式的功能,一次授权后日常不用反复以管理员运行。授权只给来源可靠的官方安装包,来路不明的包不要给。
开启 TUN 后局域网设备访问不了怎么办?
多半是内网地址也被虚拟网卡接管了。先看客户端有没有类似绕过局域网的选项,打开它。没有的话,在规则里给内网网段加一条直连规则,并放在靠前的位置。改完需要重新加载配置,必要时关闭旧连接再测试。
手机上需要单独开 TUN 吗?
不需要。手机端的代理客户端靠系统的 VPN 机制接管流量,原理上和虚拟网卡类似,首次连接时系统会弹出授权。连接成功后状态栏出现 VPN 标志,就说明已经在接管流量,不需要另外找一个 TUN 开关。
关闭客户端后电脑断网了,是怎么回事?
多半是客户端异常退出,留下了残留的系统代理设置或路由。先重新打开客户端再正常关闭一次,让它自己清理;还不行,到系统的代理设置页关掉代理开关,必要时重启系统,残留的虚拟网卡和路由会被清掉。
延伸阅读
- Clash Verge导入订阅教程:从复制链接到选节点上网
- DNS泄漏检测:怎么查、怎么修,与代理DNS设置入门
- Clash系统代理不生效怎么办?原因与排查步骤
- 玩游戏用机场怎么选?延迟、丢包、UDP 与接入方式的判断方法
- 路由器和游戏主机怎么用机场?三种接入方式与各自的坑