进阶技巧 预计阅读 12 分钟

TUN 模式开启方法详解:虚拟网卡接管全局流量的原理与设置步骤

系统代理只能覆盖走标准代理设置的应用,TUN 模式通过虚拟网卡在网络层接管全部流量。本文讲清两者差别、v2rayN 与 v2rayNG 各自的开启入口,以及常见的权限与 DNS 注意事项。

系统代理与 TUN 模式的接管位置不同

开启代理客户端后,浏览器可以访问目标网站,但游戏启动器、命令行工具或某些桌面程序仍然直连,这是最常见的 TUN 使用场景。问题通常不在节点,而在流量有没有进入客户端。系统代理与 TUN 模式都能把请求交给 V2Ray 或 Xray 处理,但两者进入流量链路的位置不同。

系统代理是在操作系统中写入 HTTP 或 SOCKS 代理地址。愿意读取这项设置的应用会把请求发到 v2rayN 的本地监听端口,再由内核按照路由规则决定代理、直连或阻断。浏览器和多数遵循系统网络设置的桌面软件通常能被覆盖,但自行实现网络栈、只发送 UDP、忽略系统代理或固定直连的程序可能绕过这个入口。

TUN 模式会创建一张虚拟网卡,并向系统添加对应路由。符合路由范围的数据包先进入虚拟网卡,再由客户端转换为代理内核能够处理的连接。应用不需要知道本地代理端口,也不需要单独填写 SOCKS 地址。因此,TUN 更适合需要接管命令行程序、游戏流量、UDP 请求和多个应用混合流量的情况。

对比项 系统代理 TUN 模式
接管层级 应用主动读取代理设置 系统路由把数据包送入虚拟网卡
应用适配 应用需要支持 HTTP 或 SOCKS 代理 多数应用无需单独配置代理
UDP 覆盖 取决于应用和代理入口 可由虚拟网卡统一接管,再交给内核处理
权限要求 通常使用普通用户权限 创建网卡和修改路由时可能需要提升权限
排错复杂度 链路短,适合日常网页访问 需要同时检查网卡、路由、DNS 和内核日志

全局接管不等于所有连接都走代理

“TUN 接管全局流量”和“所有流量强制代理”是两件事。前者描述流量入口:数据包先进入虚拟网卡。后者描述路由结果:进入内核之后是否被发送到代理出站。只要路由规则仍然有效,同一张 TUN 网卡接收到的流量就可以分别走代理、直连或阻断。

例如,局域网地址、路由器管理页面和部分本地服务可以保持直连;需要代理的域名与 IP 交给当前节点;广告域名或明确不需要连接的目标可以阻断。v2rayN 中选择的路由模式、用户自定义规则以及内核配置共同决定最终出站。开启 TUN 后,不应把原有分流逻辑全部删除,而应先验证规则在新入口下是否仍符合预期。

一次连接大致会经过以下路径:

应用发起域名或 IP 连接
→ 操作系统路由表
→ TUN 虚拟网卡
→ DNS 解析与流量识别
→ V2Ray、Xray 或兼容内核的路由规则
→ 代理出站 / 直连出站 / 阻断

这里最容易被忽略的是路由闭环。代理客户端自身连接服务器的流量不能再次被送回 TUN,否则会形成“客户端连接节点,连接又回到客户端”的循环。成熟客户端会通过排除路由、接口绑定或进程处理避免回环,但防火墙、其他虚拟网卡和手工路由可能改变结果。开启后如果所有连接立刻超时,应优先检查日志中是否存在重复连接、路由循环或目标服务器地址被错误接管。

在 v2rayN 中开启 TUN 模式

v2rayN 的不同版本可能调整按钮位置,但操作顺序基本一致:先让普通代理连接稳定,再以具备网卡配置权限的方式启动 TUN。不要在节点尚未验证时同时修改订阅、路由、DNS 和 TUN 设置,否则出现故障后难以判断是哪一步造成的。

  1. 导入订阅并更新节点。

    在 v2rayN 中加入完整订阅地址,执行更新订阅,选择一个可用节点。先使用系统代理打开常用网站,并查看连接日志,确认节点地址、端口、UUID、传输方式和 TLS 等参数能够正常工作。

  2. 确认路由模式。

    检查当前使用的是全局、绕过局域网与常见直连地址,还是自定义规则。第一次启用 TUN 时,建议保留一套容易判断结果的规则,并确保局域网网段不会被误送到远端。

  3. 授予创建虚拟网卡所需权限。

    完全退出 v2rayN 后,以管理员权限重新启动,再使用界面中的 TUN 开关。某些版本提供服务模式,可按客户端界面提示完成安装和启动;服务状态正常后,日常切换时不必反复处理同一项授权。

  4. 开启 TUN 并观察状态。

    打开主界面、托盘菜单或状态栏中的 TUN 模式。客户端会启动相应内核、创建虚拟网卡并写入路由。等待状态显示已启动后,再检查系统网络适配器中是否出现对应虚拟接口。

  5. 逐类测试流量。

    先测试浏览器,再测试原本不读取系统代理的应用,最后测试需要 UDP 的场景。同步查看实时日志,确认请求命中了预期的代理或直连规则,而不是只根据网页能否打开判断。

v2rayN 可以管理不同内核。TUN 具体由哪个兼容内核执行,取决于客户端版本、当前配置和所选功能。若日志提示内核不支持某项 TUN 参数,不要直接反复切换开关,应先确认客户端与其配套内核版本是否匹配,再检查配置中是否保留了旧版本字段。

开启成功后,系统代理开关不一定必须同时打开。TUN 已经能从路由层接管目标流量,继续开启系统代理可能让部分应用先走本地代理端口,而其他应用走虚拟网卡。两种入口可以共存,但排错时最好一次只保留一个主要入口,这样更容易根据日志确认连接路径。

在 v2rayNG 中接管安卓设备流量

v2rayNG 在安卓系统上通过系统提供的 VPN 接口接管流量,其作用与桌面端虚拟网卡相近。部分版本不会单独显示名为“TUN”的总开关,而是在点击连接后申请 VPN 连接权限。只要系统状态区域显示连接已建立,且流量进入 v2rayNG,应用就已经在使用这条虚拟网络入口。

  1. 导入可用配置。

    通过订阅地址更新节点,或导入完整的 VMess、VLESS 配置。选择节点后先检查地址、端口和传输参数,避免把配置错误误判成虚拟网络故障。

  2. 点击连接并确认系统授权。

    首次建立 VPN 接口时,系统会显示连接确认。完成授权后,v2rayNG 才能建立虚拟接口并接收其他应用的数据包。如果曾拒绝授权,可停止连接后重新发起,并检查系统中的 VPN 管理状态。

  3. 设置应用范围与路由。

    如果版本提供按应用代理或绕过选项,应先决定是覆盖全部应用,还是只让指定应用进入虚拟接口。路由规则仍负责决定进入内核后的代理与直连方向,应用范围则决定哪些程序可以进入这条链路。

  4. 处理后台运行限制。

    允许 v2rayNG 保持必要的后台网络活动,避免系统在锁屏后结束连接。若表现为亮屏正常、锁屏一段时间后断开,应先检查电池策略和后台限制,而不是频繁更换节点。

v2rayNG 使用 Xray 内核,适合需要 Xray 协议与传输能力的配置。v2flyNG 使用 v2fly 内核,操作链路同样是导入配置、建立系统虚拟网络、按路由处理流量。两者不能仅凭界面相似就混用配置功能;如果订阅包含某个内核特有的字段,应选择能够识别该字段的客户端。

DNS 设置决定域名分流是否准确

TUN 开启后,连接能否建立不仅取决于节点,还取决于 DNS 请求由谁处理。应用访问域名时,路由规则可能需要域名信息才能匹配 geosite、完整域名或域名后缀。如果域名在进入内核前已经被系统解析成 IP,内核看到的可能只有目标 IP,此时域名规则是否生效取决于嗅探、DNS 映射和具体配置。

常见问题之一是 DNS 请求没有进入客户端。网页请求走了 TUN,但域名查询仍发往原来的网络接口,会出现解析结果与代理出口不匹配、部分域名超时或规则命中不稳定。另一类问题是同时启用多个 DNS 接管功能,例如客户端 DNS、系统加密 DNS 与其他网络工具同时改写查询路径,最终形成重复转发或查询循环。

建议按以下顺序整理 DNS:

  • 先停用会同时修改虚拟网卡、路由或 DNS 的其他网络工具,只保留 v2rayN 或 v2rayNG。
  • 使用客户端当前版本支持的 DNS 配置,不把旧配置中的字段直接复制到新内核。
  • 需要域名分流时,确认内核能够获得域名信息,并在日志中检查规则实际命中的域名或 IP。
  • 为直连域名和代理域名选择合适的解析路径,避免代理域名解析后被错误送往直连出口。
  • 修改 DNS 后重新建立 TUN 连接,让虚拟网卡地址、路由和解析设置一起刷新。

“开启嗅探”也不是越多越好。嗅探可以从部分连接中恢复域名,帮助域名规则匹配,但它不能替代完整的 DNS 设计,也不适用于所有协议流量。出现某个应用连接异常时,可以对照日志判断是 DNS 没有结果、目标 IP 无法到达,还是规则把连接送到了错误的出站。

TUN 开启后无法联网的排查顺序

TUN 故障应从本地入口向远端逐层检查。直接更换十几个节点只会混入更多变量。先确认虚拟网卡是否建立,再确认路由与 DNS,最后才判断节点和服务端状态。

一、虚拟网卡没有出现

如果点击开关后立即恢复关闭状态,或日志提示创建接口失败,先完全退出客户端,再以足够权限启动。随后检查系统中是否残留失效的同名虚拟适配器,以及安全策略是否阻止客户端创建网络设备。不要在客户端仍运行时手工删除正在使用的接口。

二、开启后所有连接都超时

先关闭 TUN,使用系统代理验证当前节点。如果普通代理也超时,问题在节点、订阅参数或基础网络,不应继续调整 TUN。如果普通代理正常,则重新开启 TUN,检查日志中节点服务器地址是否被送回虚拟网卡,并确认默认路由没有被其他网络工具覆盖。

三、网页能开,游戏或语音连接失败

这类情况通常要检查 UDP。确认所用协议、传输链路和出站支持对应 UDP 流量,再查看应用数据包有没有进入 TUN。网页可用只能证明 TCP 与 DNS 的一部分链路正常,不能证明 UDP 已经按相同路径转发。

四、域名打不开,直接访问 IP 有响应

重点检查 DNS。查看日志中是否存在解析超时、查询循环或 DNS 出站不可达。停止其他会接管 DNS 的程序,重新连接 TUN,再分别测试直连域名与代理域名。若只有特定规则组失败,应检查该组使用的是 domain、geosite 还是解析后的 IP 条件。

五、局域网设备无法访问

检查私有地址是否被设置为直连,并确认本机防火墙没有把虚拟网卡识别为需要严格限制的新网络。常见局域网范围应由路由规则明确处理。若需要访问打印机、路由器或共享设备,先用其局域网 IP 测试,再处理设备名称解析问题。

六、关闭 TUN 后网络仍未恢复

先正常退出客户端,让它执行路由清理,再重新启用当前物理网络接口。检查系统代理是否仍指向已经关闭的本地端口,同时确认默认网关和 DNS 已恢复到常用网络。直接强制结束进程可能让临时设置来不及清理,因此应优先使用客户端的停止与退出操作。

如何选择系统代理、TUN 与路由模式

日常浏览网页、更新订阅和使用明确支持系统代理的软件,可以先选系统代理。它的链路短、权限要求低,日志也更容易阅读。遇到不遵循系统代理的桌面应用、命令行下载、游戏或 UDP 流量,再切换到 TUN。

需要覆盖整台设备时,先用 TUN 统一接管,再用路由规则分流,而不是把“全局接管”简单理解为“全部代理”。合理的配置通常会保留局域网直连,对需要代理的目标应用域名或规则集,并为无法访问的目标留下可从日志定位的清晰路径。

调整配置时遵循单变量原则:先验证节点,再开启 TUN;先确认网卡,再调整 DNS;先观察规则命中,再增加复杂分流。v2rayN、v2rayNG 和 v2flyNG 都会在日志中给出连接入口、目标地址、出站选择或错误原因。把日志与实际测试对应起来,比反复切换节点更容易找到问题。

下载v2rayN