网络手记

TUN 显示已连接,Windows 路由真的切了吗?做一次前后对照

在 Windows 客户端开启 TUN 后,有人看到“已连接”,但部分应用仍像在直连。与其先改一堆规则,不如对照开启前后的默认路由:系统把 IPv4 和 IPv6 的流量分别指向哪个接口?路由表是线索,实际应用是否走代理仍需用目标任务验证。

做一份只读的前后快照

在 PowerShell 中,先保持客户端原状态并运行:

Get-NetRoute -DestinationPrefix '0.0.0.0/0' | Select-Object DestinationPrefix,InterfaceAlias,NextHop,RouteMetric,InterfaceMetric
Get-NetRoute -DestinationPrefix '::/0' | Select-Object DestinationPrefix,InterfaceAlias,NextHop,RouteMetric,InterfaceMetric

记下输出的时间与客户端模式,再按客户端自己的界面开启 TUN,重复执行两条读取命令。微软的 Get-NetRoute 文档 说明,0.0.0.0/0 和 ::/0 分别表示 IPv4、IPv6 默认网关的前缀;命令只读取路由信息,不会改写网络配置。

Windows 开启 TUN 前后分别核对 IPv4 与 IPv6 默认路由的示意图

示意图:左右表示前后两次快照,上下表示两种地址族;图中的卡片不是实际路由输出。

读表时看四件事

  1. 接口名:新出现的虚拟接口可能与客户端有关,但名称由具体软件决定,不要只凭名字下结论。
  2. 下一跳与前缀:同一地址族可能有多条默认路由。先把完整行留存,别只抄其中一行的网关。
  3. 路由与接口度量值:微软的 Get-NetIPInterface 文档 说明,系统选择路由时会考虑路由度量值和接口度量值之和;比较时还要看目标匹配的前缀,不能简单认为“数值小的网卡必然接管所有应用”。
  4. IPv6 是否另有路径:只查 IPv4 就宣布“全局代理生效”,可能漏掉另一地址族。若客户端只代理某些协议或应用,最终结果还受它自己的模式与规则影响。

用真实任务完成验收

选择一个你有权访问、能重复的网页或应用任务,在 TUN 关闭和开启两种状态各做一次。记录是否成功、错误原文及客户端的模式说明。若路由表变化但应用表现不变,进一步检查应用内代理、分流规则和目标是否有更具体路由;若两种状态都失败,先排查原本的网络。不要为了“修好”而直接删除默认路由、改接口度量值或关闭防火墙,这会干扰其他连接。

机场推荐和客户端教程里常说“打开 TUN 即可全局生效”,这句话并不能替代你的前后快照与实际任务。验收结论应写成:某设备、某模式、某地址族、某任务在当时是否按预期工作。分享路由截图前遮掉本地 IP、网关和设备标识。

可核验来源

评论

搜索文章

正在加载搜索…