机场实测室JICHANGTUIJIAN.MOM
搜索线路 / 教程/
客户端教程

系统代理和 TUN 模式,v2rayN 用户该选哪个

一句话结论

系统代理只对遵循 Windows 代理设置的程序生效,浏览器能用而游戏、命令行工具、部分桌面软件不能用,多半就是这个原因。TUN 模式通过虚拟网卡接管整机流量,覆盖面更广,但需要管理员权限与驱动,也更容易和虚拟机、远程桌面、其他代理工具冲突。

浏览器能翻,Steam 转圈;网页正常,命令行拉取依赖一直超时;聊天软件通畅,某个桌面客户端死活连不上。这类"一半能用一半不能用"的现象,几乎都指向同一个原因:流量根本没有被送进代理。

系统代理是一种约定,不是强制。v2rayN 开启它时,做的事情是往 Windows 的网络设置里写入一个代理地址,然后等着程序自己来读。愿意读的程序就走代理,不读的程序就照旧从物理网卡出去,v2rayN 对此毫无办法——它连这些请求存在过都不知道。

TUN 模式换了一条思路:不再请求程序配合,而是在系统里插一块虚拟网卡,把路由表改成"默认从这块网卡走"。这样一来程序读不读代理设置都无所谓,包只要发出来就会落到 v2rayN 手上。覆盖范围的问题解决了,代价是权限、驱动和一系列冲突场景。

系统代理到底改动了 Windows 的哪项设置

它写的是 Internet 选项里的代理服务器配置,也就是设置面板中"手动设置代理"那一栏,值指向本机的一个端口。v2rayN 通常还会同时提供 PAC 方式,区别在于前者把所有请求都丢给代理端口,后者让程序先下载一份脚本、按脚本判断某个域名要不要走代理。

方式写入的内容谁来做分流判断常见问题
全局系统代理一个代理地址与端口v2rayN 的路由规则不遵循代理设置的程序完全不受影响
PAC 模式一个脚本地址浏览器按脚本判断脚本里没收录的域名会漏走直连
不使用系统代理不写入需要程序自己填代理地址才能用

这里有个容易踩的坑:系统代理的开关状态和 v2rayN 是否在运行是两回事。程序被强制结束时,写进去的设置不会自动撤销,于是代理端口没了但系统还在往那个端口发请求,表现就是整机上不了网。

哪些程序天生不吃系统代理

大致分四类,成因各不相同。

程序类型典型例子不生效的原因
游戏与游戏平台多数联机游戏本体直接用 socket 通信,不查询系统代理配置
命令行与开发工具包管理器、版本控制工具读取的是自己的环境变量或配置文件
自带网络栈的软件部分下载器、同步工具内置独立网络实现,绕开系统设置
系统级组件部分更新服务、后台推送以服务身份运行,不继承当前用户的代理设置

命令行工具这一类其实有别的解法:给它单独配置代理环境变量或改写工具自身的配置文件,就能让它走代理端口,不必动用 TUN。游戏和自带网络栈的软件则基本没得商量,要么用 TUN,要么放弃。

开启 TUN 模式前需要满足什么条件

三个条件缺一不可,缺哪个报的错还不太一样。

第一是管理员权限。创建虚拟网卡、修改系统路由表都属于系统级操作,普通权限下开启会直接失败或者开启后没有任何流量经过。第二是虚拟网卡驱动。v2rayN 依赖对应的网卡驱动组件,缺失或被安全软件拦截时会提示网卡安装失败。第三是内核版本支持。较老版本的 v2rayN 或内核不具备 TUN 能力,界面上可能有开关但点了没反应。

安全软件是这一步最常见的阻碍。安装虚拟网卡驱动的动作在杀毒软件眼里和很多恶意行为相似,容易被静默拦下。如果开启失败且没有明确报错,先看安全软件的拦截日志,比反复重装客户端有效。

开了 TUN 之后,路由规则还管用吗

管用,而且更重要了。这是两个不同层级的机制,不存在谁替代谁。

TUN 负责的是"哪些程序的流量能被看到",路由规则负责的是"看到的流量往哪送"。开启 TUN 后进入路由表的流量种类大幅增加——原先根本不经过 v2rayN 的游戏包、系统服务请求、局域网访问现在全都要过一遍规则。规则里如果没有妥善排除私有地址段,局域网设备立刻访问不了;如果国内域名的直连规则不完整,国内应用会开始绕境外走。

换句话说,开 TUN 之前规则写得马虎还能靠"反正它管不到"蒙混过去,开了之后所有疏漏都会暴露出来。先把路由分流规则的匹配顺序理顺,再开 TUN,是更省事的顺序。

TUN 与虚拟机、远程桌面为什么会互相打架

因为它们争抢的是同一份资源:系统路由表和网卡优先级。

虚拟机软件会创建自己的虚拟网卡供客户机使用,宿主机的 TUN 把默认路由抢走之后,虚拟机的网络流量可能被一并接管,客户机里表现为上不了网或者 IP 异常。远程桌面的问题更直接:连接建立后如果 TUN 突然接管路由,回程包找不到原来的路径,会话立刻中断,而你人在远端,连关掉 TUN 的机会都没有。

还有一类冲突来自其他代理工具。同一台机器上另一个客户端也开了虚拟网卡或者写了系统代理,两套接管叠在一起,流量会在两个代理之间来回绕,症状是延迟异常高、部分请求失败但又不是全断。

冲突对象典型症状处理方向
虚拟机软件客户机断网或获取到异常网关为虚拟机网卡单独设置路由排除
远程桌面开启 TUN 瞬间会话断开远程操作时不要开 TUN
企业 VPN内网系统访问不了用系统代理替代 TUN
其他代理客户端延迟异常、部分请求失败同一时间只保留一个接管方式

退出 v2rayN 后上不了网,怎么恢复网络

按顺序做,通常第二步就能解决。

  1. 重新打开 v2rayN 再正常退出一次。绝大多数残留是因为程序被强制结束、没来得及回收自己写下的设置,让它跑完正常的退出流程即可。
  2. 手动关闭系统代理开关。在 Windows 的网络设置里找到代理一项,把手动代理关掉。这一步能解决系统代理侧的残留。
  3. 禁用再启用物理网卡。这会让系统重新协商网络配置,清掉部分失效的路由条目。
  4. 检查残留的路由条目。如果前面都无效,用命令行看一眼路由表里有没有指向已经消失的虚拟网卡的默认路由。
# 结构示例:查看当前路由表,确认是否有指向已消失虚拟网卡的默认路由
route print -4

看到指向不存在网卡的 0.0.0.0 条目时,重启一次系统是最稳妥的清理方式,手动删路由容易误删。

什么场景下老老实实用系统代理就够了

一份简单的判断清单,四条里中两条以上就别折腾 TUN:

  • 你需要用代理的程序主要是浏览器和聊天工具,它们都遵循系统代理设置;
  • 这台机器上跑着虚拟机、企业 VPN,或者你经常通过远程桌面连它;
  • 你没有管理员权限,或者安全软件由公司统一管理、无法为驱动放行;
  • 你的命令行工具可以通过环境变量单独配置代理,不必依赖全局接管。

反过来,需要 TUN 的情形也很明确:要给游戏、下载器这类自带网络栈的软件走代理;或者程序数量多到逐个配置代理不现实;又或者你希望整机流量都按同一套规则处理,不留缺口。

无论选哪一种,接管方式都不影响线路质量。晚高峰变慢、流媒体被识别成代理这两类问题,换接管方式一样解决不了,它们取决于订阅本身用的什么线路,属于机场横向对比要回答的范畴。

小结

系统代理靠程序自觉,覆盖不了游戏、部分命令行工具和自带网络栈的软件;TUN 靠虚拟网卡强制接管,覆盖面完整但要管理员权限、驱动支持,并且会和虚拟机、远程桌面、企业 VPN 争抢路由。两者解决的是覆盖范围问题,都不影响速度。开 TUN 之前先把路由规则里的私有地址排除和国内直连补齐,否则疏漏会立刻暴露。退出后断网多半是残留设置,正常重启一次程序或手动关掉系统代理开关即可恢复。日常需求以浏览器为主的用户,留在系统代理上副作用最小。

常见问题

开了 TUN 模式是不是就不用开系统代理了

原则上是的,两者同时开启容易造成流量绕圈。TUN 已经在网卡层接管整机流量,再叠一层系统代理会让部分程序的请求先走代理端口、再被虚拟网卡接管一次,表现为延迟升高甚至连接失败。

TUN 模式一定比系统代理快吗

不一定。TUN 解决的是覆盖范围问题,不是速度问题。它多了一层虚拟网卡的封装处理,在低配机器上反而可能略慢一点。真正决定速度的是线路和节点,不是接管方式。

为什么开 TUN 需要管理员权限

创建虚拟网卡并修改系统路由表属于系统级操作,普通权限做不到。v2rayN 需要以管理员身份运行才能安装网卡驱动、添加路由条目,否则会在开启时报错或者开启后没有任何流量走过去。

关掉 v2rayN 之后整机断网了怎么办

多半是残留的路由条目或未清理的代理设置。先重新打开 v2rayN 再正常退出一次,让它自己回收;不行就在 Windows 设置里手动关闭代理开关,再禁用并启用一次物理网卡。

公司电脑适合开 TUN 吗

要谨慎。TUN 会接管整机流量,包括企业 VPN、内网办公系统和远程桌面的连接,很容易造成内网资源访问不了。这类环境更适合用系统代理,把影响范围限制在遵循代理设置的程序上。