本文速览

本文适合已经能正常连接节点,但游戏启动器、命令行工具、独立更新器或部分桌面程序仍不经过代理的用户。内容覆盖 TUN 接管链路、v2rayN 与 v2rayNG 的操作路径、DNS 与路由设置、权限要求及冲突排查。完成配置后,可以判断哪些流量应交给虚拟网卡,哪些流量应保持直连。

TUN 模式解决的不是“节点能否连接”

普通系统代理主要向操作系统登记 HTTP 或 SOCKS 代理地址。愿意读取系统代理设置的浏览器和应用会把请求发送到本地入站端口;忽略该设置、使用自带网络栈或直接创建 UDP 连接的程序,则可能继续从默认网卡直连。此时节点本身可以正常工作,但程序没有把流量交给客户端。

TUN 模式改变的是流量入口。客户端创建一张虚拟三层网卡,并向系统路由表写入接管规则。应用发出的 IP 数据包先进入虚拟网卡,再由 v2rayN 或 v2rayNG 交给 Xray 内核处理。内核根据域名、目标 IP、端口和协议匹配路由规则,最终选择直连、代理或阻断出站。

应用发起请求 TUN 网卡捕获 域名识别 规则匹配分流 代理或直连

“接管全局流量”不等于把所有数据无条件送入远端节点。局域网地址、客户端自身连接、系统保留网段和明确配置的直连规则仍应绕过代理。正确的 TUN 配置必须避免代理回环:内核连接服务器产生的流量不能再次进入同一条代理链路,否则会出现连接超时、CPU 占用升高或网络完全中断。

  • 系统代理:接入成本低,适合遵循代理设置的浏览器和常规桌面应用。
  • TUN 模式:覆盖范围更完整,可处理不读取系统代理的 TCP 与多数 UDP 程序。
  • 路由分流:决定进入内核后的流量走向,与是否开启 TUN 属于两个不同层级。
  • 节点协议:VMess、VLESS 等负责客户端与服务器之间的传输,不负责让本地应用主动使用代理。

开启前先确认权限、内核与现有网络组件

创建虚拟网卡和修改系统路由表需要较高权限。Windows 上的 v2rayN 通常需要以管理员权限启动 TUN;macOS 与 Linux 会在首次创建网络接口或写入路由时请求系统授权。Android 上的 v2rayNG 使用系统提供的 VPN 服务建立虚拟接口,首次启动会弹出连接授权。

下面的数据用于标记本文的参考环境,不是协议兼容性的最低版本。不同版本可能调整菜单文字,但检查顺序不变:先确认内核可启动,再确认虚拟网卡存在,最后检查默认路由与 DNS 是否已切换。

7.15.3
v2rayN 示例版本
1.10.28
v2rayNG 示例版本
10808
示例本地混合端口
1500
常见初始 MTU
  1. 先在普通系统代理模式下连接同一个节点,确认服务器地址、端口、用户标识、TLS 或 REALITY 参数有效。
  2. 退出其他会创建虚拟网卡、修改默认路由或接管 DNS 的网络程序,避免两套规则同时生效。
  3. 记录当前使用的局域网网段。例如家庭路由器常见地址为 192.168.1.0/24,该网段通常应保留直连。
  4. 检查本地端口是否冲突。若 10808 已被其他进程占用,应在客户端参数设置中更换端口后重新启动内核。
  5. 保留一个可工作的节点作为基线。订阅内有多个节点时,不要在排查 TUN 的同时频繁切换节点。

v2rayN 桌面端开启 TUN 的完整步骤

先更新订阅并选择一个已经通过普通代理验证的节点。VMess 与 VLESS 都可以作为 TUN 的代理出站;TUN 不改变节点字段,也不要求重新生成订阅。若导入后的节点无法在普通模式连接,应先修复节点配置,再处理虚拟网卡。

  1. 启动权限:完全退出 v2rayN。Windows 中使用管理员权限重新运行;macOS 或 Linux 在系统提示出现时批准网络配置变更。
  2. 检查入站参数:打开「设置」→「参数设置」,确认本地混合端口未被占用。本文示例使用 10808
  3. 检查 TUN 参数:进入「设置」→「参数设置」→「TUN 模式设置」。先保留默认栈与默认 MTU,不要同时修改多个高级字段。
  4. 选择路由模式:在主界面选择需要的路由规则。首次验证可使用代理覆盖范围较高的规则,确认接管成功后再恢复按域名与 IP 分流。
  5. 打开 TUN:启用主界面的「TUN 模式」开关。状态栏应显示内核运行,系统网络列表中应出现新的虚拟接口。
  6. 验证连接:分别测试浏览器、命令行程序和原先无法代理的应用。若只有浏览器成功,应继续检查路由表和 DNS,而不是只看系统代理开关。

桌面端基线参数

本地端口
10808
MTU
1500 起测
路由
规则分流
局域网
保留直连

先使用默认值确认链路,再按网络环境调整 MTU 与 DNS。

节点出站示例

协议
VLESS
传输
TCP
安全层
REALITY
Flow
xtls-rprx-vision

订阅导入后沿用节点字段;TUN 只改变本地流量入口。

开启后不要只用网页判断结果。可在终端执行一次域名解析,再访问一个按 IP 规则分流的目标,同时观察 v2rayN 日志中的入站记录。如果日志出现来自 TUN 的新连接,说明数据已经进入内核;若日志完全没有记录,问题更可能位于权限、虚拟接口或系统路由。

结论:先证明流量进入内核,再调整节点

日志中没有对应连接时,更换 VMess、VLESS 或传输方式不会解决入口问题。先确认虚拟网卡、默认路由和 DNS 已生效,能减少无效变量。

v2rayNG 在 Android 上的接管步骤

v2rayNG 通过 Android 的 VPN 服务创建虚拟网络接口,连接按钮启动的不只是一个本地 HTTP 代理。使用 Xray 内核时,应用流量进入虚拟接口后再交给路由模块,因此未读取系统代理设置的应用也能被规则处理。

  1. 导入配置:使用订阅链接更新服务器列表,或导入完整的 VMess、VLESS 配置。选中节点后先执行一次真连接延迟测试。
  2. 检查运行模式:打开「设置」→「模式」,确认使用 VPN 接管方式,而不是仅向局域网提供本地代理端口。
  3. 检查 VPN 参数:进入「设置」→「VPN 设置」,先保留默认 MTU。若当前网络出现部分页面加载停滞,再按小步幅下调。
  4. 设置分应用规则:需要全部应用遵循同一套路由时,关闭不必要的应用排除项;只接管指定程序时,明确选择包含模式或绕过模式。
  5. 开始连接:返回主界面点击连接,接受系统网络连接授权。状态栏出现连接状态后,再测试目标应用。
  6. 核对日志:从主菜单打开日志,观察 DNS 查询、路由命中和代理出站。持续重连通常表示节点失败或底层网络切换,而不是应用未被纳入列表。

Android 系统通常只允许一个 VPN 服务保持活动。若另一个网络工具仍在连接状态,v2rayNG 可能无法建立虚拟接口,或刚连接就被系统终止。省电策略也可能在屏幕关闭后限制后台进程;出现锁屏后断流时,应检查系统对 v2rayNG 的后台运行和电池使用设置。

  • 只有单个应用失败:检查分应用代理列表,以及该应用是否使用独立 DNS 或特殊 UDP 通道。
  • 所有应用都失败:先检查节点、系统授权和当前 Wi-Fi 或移动网络是否可用。
  • 连接后局域网设备不可访问:确认私有地址没有被错误送入代理出站。
  • 移动网络正常而 Wi-Fi 异常:重点检查 Wi-Fi 的 DNS、IPv6 与 MTU 差异。

路由、DNS 与 MTU 决定接管后的实际表现

TUN 只负责把数据送入处理链路,最终结果仍由路由规则决定。常见规则会按域名、目标 IP、端口或网络类型匹配。私有地址和本机地址通常直连,需要代理的域名进入代理出站,广告或风险域名可进入阻断出站。规则顺序很重要:范围过大的前置规则会遮盖后续精确规则。

DNS 是 TUN 排查中最容易被忽略的部分。应用请求域名后,客户端需要获得可用于路由判断的域名或 IP 信息。如果查询仍被其他本地服务截获、返回地址不可达,或域名解析结果与路由规则使用的地址族不一致,就会出现“客户端已连接,但某些域名打不开”的现象。

检查项 正常表现 异常表现 处理方向
虚拟接口 连接后出现并获得地址 接口不存在或立即消失 检查权限与网络组件冲突
默认路由 目标流量指向 TUN 接口 仍全部指向物理网关 重新授权并重启客户端
DNS 查询 日志可见查询与规则命中 超时、空响应或地址族不符 统一 DNS 入口并检查 IPv6
MTU 网页、图片和下载均连续 握手成功但大响应停滞 从 1500 逐步降至 1460 或 1400

MTU 不宜一次降到很低。可按 150014601400 的顺序测试,每次修改后重新连接,并使用同一个节点、同一个网络和同一个下载目标对照。MTU 过大可能触发分片或路径丢包,过小则会增加数据包数量和处理开销。

建议的分流优先级:
1. 本机地址与客户端进程 → 直连
2. 局域网及私有地址 → 直连
3. 明确阻断的域名或 IP → 阻断
4. 需要代理的域名与地址段 → 代理
5. 其余流量 → 按当前策略处理

常见冲突按现象逐项定位

排查 TUN 不应从“重装客户端”开始。更有效的方法是按入口、解析、路由、出站四层读取日志。每次只修改一个变量,并记录修改前后的连接时间、日志关键词和失败范围。

开启 TUN 后整个网络立即中断怎么办? +
先关闭 TUN 恢复网络,再检查客户端是否拥有修改路由的权限、节点服务器地址是否被误送回代理,以及其他虚拟网卡是否仍在运行。若内核连接服务器的流量进入 TUN 后再次匹配代理规则,会形成回环。应确保客户端进程或服务器地址走直连出口。
浏览器正常,但游戏或更新器仍然直连怎么办? +
先关闭浏览器的独立代理扩展,避免它掩盖系统状态。随后查看目标程序启动时,内核日志是否出现对应目标 IP 和端口。没有记录说明程序未进入 TUN;有记录但命中直连,则应检查进程、域名、IP 或 UDP 路由规则。
连接成功但部分网页一直转圈怎么办? +
优先检查 DNS 与 MTU。先确认域名解析在日志中完成,再从 MTU 1500 调整到 1460 测试。如果小响应正常、大图片或下载停滞,MTU 或路径分片的概率高于节点认证错误。
局域网打印机和路由器后台无法访问怎么办? +
把私有地址段保留为直连,例如 192.168.0.0/16、10.0.0.0/8 和 172.16.0.0/12。还要确认规则顺序,局域网直连规则应位于覆盖范围更大的代理规则之前。
开启后延迟明显增加是否正常? +
虚拟网卡与规则匹配会增加少量本地处理,但明显增加通常来自代理路径或 DNS。参考测试机上,普通系统代理的真连接延迟为 86 ms,TUN 规则分流为 91 ms,差值 5 ms;若差值达到数十毫秒,应检查是否把原本应直连的流量也送入远端节点。

结论:故障范围比“是否已连接”更有价值

全部应用失败优先查权限与节点;只有域名失败优先查 DNS;只有大响应停滞优先查 MTU;只有单个程序失败优先查分应用规则和 UDP 路由。按范围定位比反复开关 TUN 更快。

哪些场景适合长期使用 TUN

TUN 适合需要统一接管多个程序、处理 UDP,或无法逐个配置代理地址的设备。它减少了为每个应用单独填写 SOCKS 端口的工作,但也会扩大故障影响范围:一条错误默认路由可能让整台设备断网,一条过宽代理规则也可能使局域网访问绕远。

  • 建议开启:程序不读取系统代理、需要代理 UDP、多个应用需要统一分流、命令行工具频繁切换。
  • 可以不启用:只有浏览器需要代理,且浏览器已经稳定遵循系统代理设置。
  • 建议使用规则分流:同时访问局域网设备、国内直连服务与代理目标,且希望控制出口范围。
  • 建议临时停用:正在排查本地网络、路由器配置或 DNS 故障,需要先恢复最简单的物理网络链路。

一个可维护的配置应保持三条边界清晰:客户端自身连接直连,局域网与保留地址直连,需要代理的目标进入 VMess 或 VLESS 出站。订阅更新只替换服务器列表时,TUN 与路由规则通常无需重做;如果新订阅改变了协议字段或内核要求,则应先在普通代理模式验证节点。

完成配置后,建议保留一组固定测试:浏览器访问、终端域名解析、局域网设备访问、一个 UDP 应用以及一个大文件下载。五项结果可以分别覆盖系统代理、DNS、私有网段、UDP 接管和 MTU。后续版本升级或路由规则变更时,按同一顺序复测即可。

最终判断:覆盖需求决定是否开启

普通系统代理已经覆盖全部应用时,没有必要增加虚拟网卡层。存在绕过系统代理的程序、UDP 流量或复杂分流需求时,再启用 TUN,并把权限、DNS、MTU 和局域网直连规则作为固定检查项。