本文适合遇到游戏、命令行工具或独立应用不读取系统代理的用户。内容从虚拟网卡的数据路径开始,给出 Windows 上 v2rayN 与 Android 上 v2rayNG 的开启步骤,并提供 DNS、路由、权限及虚拟网卡冲突的定位方法。
TUN 模式与系统代理的本质区别
系统代理是一组由操作系统公开给应用读取的代理参数。浏览器及部分桌面软件会主动读取这些参数,再把 HTTP 或 SOCKS 请求发送到 v2rayN 的本地监听端口。问题在于,是否遵循系统代理由应用自行决定。命令行程序、游戏启动器、使用自定义网络栈的软件以及部分 UDP 程序可能完全忽略这项设置。
TUN 模式则创建一块虚拟三层网卡,并修改系统路由,使目标 IP 数据包先进入该网卡。客户端把捕获到的 TCP、UDP 流量交给 Xray 内核处理,随后按照域名、IP、端口和协议规则选择直连、代理或阻断出站。应用不需要理解代理协议,因此接管范围通常比系统代理更完整。
“全局流量接管”并不等于“所有连接都走代理节点”。TUN 负责把流量送入统一入口,最终出站仍由路由规则决定。例如局域网地址可以直连,国内站点可以按 GeoSite 与 GeoIP 规则直连,其他流量再进入代理节点。接管方式与分流结果是两个独立层面。
| 比较项 | 系统代理 | TUN 模式 |
|---|---|---|
| 接管对象 | 主动读取代理设置的应用 | 被系统路由导入虚拟网卡的 IP 流量 |
| UDP 处理 | 取决于应用与代理接口 | 可由内核统一处理,但仍受节点能力限制 |
| 权限要求 | 通常为普通用户权限 | Windows 通常需要管理员权限 |
| 常见用途 | 浏览器、办公软件与日常网页访问 | 游戏、终端工具、独立网络栈应用与统一分流 |
结论:先确认接管缺口,再启用 TUN
如果只有某个不读取系统代理的程序无法联网,TUN 能直接补齐接管范围;如果浏览器本身也无法通过节点访问,应先排查节点、订阅和核心日志,而不是用 TUN 掩盖基础连接故障。
开启前检查权限、端口与路由条件
切换模式前,应先用普通系统代理验证节点。选择一个可用节点,确认浏览器能够访问目标站点,并在客户端日志中看到连接成功记录。这样可以把“节点不可用”和“TUN 配置错误”拆成两个问题,避免在虚拟网卡、DNS 与节点状态之间反复试错。
本文操作基线采用 v2rayN 7.15.4、v2rayNG 1.10.13 与 Xray 内核。不同小版本的菜单文字可能略有调整,但检查顺序不变:先确认核心启动,再检查虚拟网卡权限,最后验证路由与 DNS。旧版本缺少相应开关时,应先在客户端自身的更新入口完成升级。
本地端口没有必要强行保持某个固定值,但必须避免重复监听。本文示例把 SOCKS 入口设为 10808、HTTP 入口设为 10809;如果日志出现“address already in use”或“端口被占用”,应关闭占用程序,或在「设置」→「参数设置」中换成未使用端口后重启核心。
Windows 测试基线
- 客户端
- v2rayN 7.15.4
- 本地 SOCKS
- 127.0.0.1:10808
- 本地 HTTP
- 127.0.0.1:10809
- 路由策略
- 绕过局域网与本地地址
端口可调整,但每个监听入口必须保持唯一。
Android 测试基线
- 客户端
- v2rayNG 1.10.13
- 运行模式
- VPN
- 按应用代理
- 初次测试关闭
- 分流策略
- 先使用默认规则
先验证整机接管,再缩小到指定应用,定位更直接。
在 Windows 的 v2rayN 中开启 TUN
Windows 上的 TUN 需要创建虚拟网卡并写入路由,因此应先完全退出正在运行的 v2rayN,再通过系统菜单选择“以管理员身份运行”。仅在普通权限下反复点击开关,可能出现核心已启动但路由写入失败、虚拟网卡未创建或重启后立即停止的现象。
- 验证普通代理。启动 v2rayN,更新订阅并选中一个已确认可用的节点。先使用系统代理模式完成一次网页访问测试,同时查看日志中是否存在连接超时、证书时间错误或节点地址解析失败。
- 检查本地监听。打开「设置」→「参数设置」,确认 SOCKS 与 HTTP 端口没有和其他程序冲突。本文示例使用 10808 与 10809,修改后需要重启核心才能让新监听生效。
- 打开 TUN 设置。进入「设置」→「TUN 模式设置」,启用 TUN,并保留“自动路由”与“严格路由”等默认选项作为首次测试基线。若版本把入口放在主窗口工具栏,应以当前界面的 TUN 开关为准。
- 启动 TUN。确认 v2rayN 处于管理员权限后开启 TUN 模式。首次启动可能触发系统网络权限确认,允许后等待虚拟网卡初始化完成,不要在此期间连续切换开关。
- 核对日志。打开实时日志,确认没有设备创建失败、端口占用或路由添加失败。随后分别测试网页、命令行下载工具和原先不读取系统代理的应用。
测试顺序
1. 普通系统代理可访问目标站点
2. 管理员权限启动 v2rayN
3. 开启 TUN 与自动路由
4. 检查核心日志无报错
5. 测试 TCP、DNS 与目标应用
6. 最后再启用自定义分流规则
开启后不建议同时让其他网络工具修改默认路由或建立另一块全局虚拟网卡。两套程序可能反复争夺低跃点路由,表现为连接时好时坏、部分站点绕过代理或休眠唤醒后无法解析域名。需要并用企业内网接入工具时,应先确定哪些网段必须由企业虚拟网卡处理,再在 V2Ray 路由中为这些私有网段保留直连。
验证接管是否成功时,不要只看任务栏图标。更可靠的方法是关闭系统代理但保持 TUN 开启,然后测试原先不读取代理的程序;若该程序能够建立连接,且 v2rayN 日志出现对应目标地址,说明数据已经进入 TUN。测试完成后再根据日常需要决定是否同时保留系统代理。
在 Android 的 v2rayNG 中接管应用流量
v2rayNG 通过系统提供的 VPN 接口建立虚拟网络通道,效果与桌面端 TUN 接近:应用流量先进入客户端,再由 Xray 内核执行路由和出站。首次启动时系统会显示连接授权,只有确认授权后,状态栏出现网络通道标识,流量接管才真正生效。
- 导入并测试节点。在 v2rayNG 中更新订阅,选择一个配置后先执行延迟测试。延迟数字只能说明探测请求得到响应,仍需实际启动并访问网页确认节点能够传输数据。
- 选择运行模式。进入「设置」→「模式」,选择 VPN 模式。若当前版本直接以主界面启动按钮建立系统通道,则保持该默认方式,不要切换到仅开放本地代理端口的模式。
- 首次关闭按应用代理。进入「设置」→「按应用代理」,先保持关闭,使所有普通应用进入统一测试路径。确认整体连接正常后,再启用该功能并选择需要代理或需要绕过的应用。
- 启动连接。返回主界面点击启动,接受系统网络连接授权。等待连接状态稳定后,分别测试浏览器、需要 UDP 的应用以及后台更新任务。
- 检查省电限制。若锁屏后频繁断开,在系统应用管理中允许 v2rayNG 后台运行,并检查电池优化是否会停止其网络服务。具体入口随设备系统界面变化,通常位于「设置」→「应用」→「v2rayNG」→「电池」。
| 按应用代理设置 | 流量结果 | 适合场景 |
|---|---|---|
| 关闭 | 普通应用统一进入虚拟网络 | 首次验证、定位遗漏流量 |
| 仅代理所选应用 | 只有勾选应用进入代理路径 | 目标明确、希望减少接管范围 |
| 绕过所选应用 | 勾选应用直连,其余应用按规则处理 | 本地服务或特定应用必须直连 |
v2rayNG 的 VPN 模式与节点协议不是同一概念。VMess、VLESS 描述客户端与远端节点之间如何建立代理连接;VPN 模式描述本机应用流量如何进入客户端。更换 VMess 或 VLESS 节点不会自动改变按应用代理范围,调整按应用列表也不会改写订阅中的服务器地址、端口和传输参数。
DNS、路由分流与局域网访问
TUN 已成功捕获连接但网页仍提示域名无法解析时,问题通常位于 DNS 路径。域名解析可能由系统发起,也可能由应用自行发送;如果 DNS 请求绕过虚拟网卡、被其他加密 DNS 设置接管,或被错误路由到不可达服务器,就会出现 IP 可连接而域名打不开的情况。
排查时可以先访问一个已知 IP 服务以区分“解析失败”和“连接失败”,再检查核心日志是否出现 53 端口请求。不要同时修改系统 DNS、客户端 DNS、浏览器安全 DNS和路由规则。一次只改一处,重启核心后复测,才能判断哪个环节生效。
- 局域网地址:为 10.0.0.0/8、172.16.0.0/12 与 192.168.0.0/16 保留直连,避免打印机、路由器管理页和局域网存储被送往远端节点。
- 回环地址:127.0.0.0/8 应保持本机访问,防止客户端本地监听被再次送回 TUN,形成递归连接。
- 域名规则:GeoSite 负责按域名集合匹配,适合在解析前决定出站;自定义完整域名规则应放在宽泛分类规则之前。
- IP 规则:GeoIP 在获得目标 IP 后参与分流,可用于区域地址与私有网段匹配,但无法替代域名阶段的规则。
- 规则顺序:多数路由配置采用从上到下首次命中。精确规则应在前,覆盖范围大的兜底规则应放在最后。
以局域网访问为例,如果开启 TUN 后无法打开 192.168.1.1,应先确认该网段存在直连规则,再检查严格路由是否阻止了未纳入规则的流量。若设备同时连接公司网络与家庭网络,还要检查两个网络是否使用相同私有网段;网段重叠时,仅靠域名规则无法判断应该交给哪块网卡。
结论:TUN 先统一入口,路由再决定出口
遇到“部分应用正常、部分站点异常”时,应从命中规则与 DNS 去向入手,不要把所有流量强制改成代理。保留局域网与回环直连,再用精确域名规则覆盖例外,通常比单一全局出站更稳定。
常见冲突与逐项修复
TUN 故障应按“权限与设备、路由、DNS、节点”四层处理。最先检查日志中的明确错误,而不是连续重装客户端。设备创建失败通常和权限或虚拟网卡冲突有关;请求已经进入日志但超时,则更可能是节点、协议参数或远端网络问题。
开启 TUN 后整台电脑都断网?
先关闭 TUN 并确认普通网络恢复,再以管理员身份重新启动 v2rayN。进入「设置」→「TUN 模式设置」保留自动路由,暂时停用其他会创建虚拟网卡的程序,然后重新测试。
日志提示端口已经被占用?
退出重复运行的 v2rayN 进程,并检查 10808、10809 等本地端口是否被其他程序监听。随后在「设置」→「参数设置」修改端口,保存并重启核心。
能打开网页,但游戏或语音仍然失败?
确认节点支持所需 UDP 流量,并检查路由规则是否把对应端口错误地送入阻断出站。先用默认路由复测,再逐条恢复自定义规则,以确定是哪一条规则造成影响。
v2rayNG 锁屏几分钟后自动断开?
进入系统「设置」→「应用」→「v2rayNG」→「电池」,允许后台运行并取消会停止网络服务的限制;同时检查客户端是否启用了随网络变化自动重连。
TUN 开着,但局域网设备访问不了?
把目标设备所在私有网段加入直连,并确认该规则位于代理兜底规则之前。若同时连接多个网络,检查系统路由表中相同网段的跃点与出口网卡。
如果问题发生在系统休眠或网络切换之后,可先停止 TUN,等待虚拟网卡状态释放,再重新启动。无线网络切到有线网络、家庭网络切到移动热点时,默认网关和接口编号都会变化;自动路由未及时重建时,旧路由可能仍指向已经失效的接口。
仍无法恢复时,应进行最小化测试:保留一个节点、默认路由、默认 DNS,关闭按应用代理和额外规则,只启用 TUN。最小配置可用后,每次只恢复一项设置。这样可以明确故障来自节点配置、DNS、自定义路由还是另一个网络程序。
何时使用 TUN,何时保留系统代理
TUN 适合需要统一接管、UDP 处理或不遵循系统代理的应用,但它会增加虚拟网卡、路由与 DNS 三个需要维护的环节。只在浏览器和常规桌面软件中使用代理时,系统代理结构更简单,出现问题也更容易通过本地端口与应用设置定位。
- 浏览器和办公软件均遵循系统代理:优先使用系统代理。
- 命令行工具、游戏或独立应用绕过系统代理:使用 TUN。
- 需要按域名、IP 与端口统一分流:使用 TUN,并保留局域网直连。
- 企业虚拟网卡必须长期运行:先规划网段与路由优先级,再决定是否并用 TUN。
- 临时排障:先退回系统代理验证节点,再逐步恢复 TUN、DNS 与自定义规则。
正确的启用顺序是先验证节点,再建立虚拟网卡,接着确认日志和 DNS,最后添加分流规则。只要把接管入口、规则匹配和代理出站分开检查,TUN 模式的大多数故障都能落到一个具体环节,而不是停留在“已经连接但无法访问”的模糊状态。