☰
网线和Wi-Fi同时连接,数据到底走哪边?从一次OpenWrt配置说起
2026/10/8 14:27:50 网站建设 项目流程

网线和Wi-Fi同时连接,数据到底走哪边?从一次OpenWrt配置说起

配置 OpenWrt 时,我的电脑一边通过网线连接 RAX3000M,一边用 Wi-Fi 保持联网。

这样操作很方便:路由器配置过程中,电脑不必跟着断网。但是,它也制造了一个容易误判的场景:后台能打开,网页也能打开,我是不是就把路由器配置好了?

不一定。这两个操作可能根本没有走同一个出口。

这篇不急着改接口优先级,先用只读查询弄清楚:Windows 对不同目标,到底准备走哪条路。

1. 不问“电脑走哪边”,而问“去哪里时走哪边”

2026 年 10 月 4 日,我在这台电脑上查询了三个固定目标,采集脚本运行于 PowerShell 7.6.5。查询没有断开接口,没有修改路由器,也没有发起端口扫描。

目标系统选择的接口匹配的路由源地址
RAX 管理地址192.168.10.1以太网 2192.168.10.0/24192.168.10.192
公网 IPv41.1.1.1WLAN0.0.0.0/0192.168.1.5
公网 IPv62606:4700:4700::1111WLAN::/0已脱敏

后两个地址是用来查询选路的固定目标,不代表已经访问成功,更不代表所有网站都采用这条路径。

图是根据选路查询画的示意,不是抓包结果。Wi-Fi 网关的具体设备身份也不靠这个地址推断:192.168.1.1只是本次查询显示的下一跳。

这就能解释为什么电脑可以同时管理 RAX、又通过另一条链路上网。“管理面可达”和“上网流量经过这台路由器”,是两件不同的事。

2. 路由表不是给网线和Wi-Fi排一个总名次

先只讨论普通 IPv4 选路,不考虑应用主动绑定接口、代理和额外隧道。

Windows 要处理一个目标地址时,先找能匹配它的路由。匹配前缀越长,描述的范围越具体。

例如,这次访问192.168.10.1,至少可以想到两种描述:

192.168.10.0/24 -> 这个局域网 0.0.0.0/0 -> 默认路由,其他地方

/24描述的范围比/0更具体,所以不能因为 Wi-Fi 的默认路由度量更低,就把这个局域网目标也送给 Wi-Fi。

先比较匹配的具体程度,再在同等最长匹配的候选中比较度量。Windows 的 IP 路由说明也按这个顺序解释选路。微软 IP 路由说明

这次以太网直连路由的下一跳显示为0.0.0.0,表示 on-link,不是让数据包发往一个地址为零的路由器。

3. 同样是默认路由,为什么公网目标选择Wi-Fi?

这台电脑当时有两条 IPv4 默认路由:

接口下一跳RouteMetricInterfaceMetric合计
WLAN192.168.1.106060
以太网 2192.168.10.10500500

两条都是/0,匹配长度相同;在这个对照里,Wi-Fi 的合计度量更小。

不要只看Get-NetRoute的RouteMetric:这两条路线的值都是 0,差异来自接口度量。Windows 文档说明,路由度量要结合接口度量考察。微软路由结构说明

还有一个必须交代的实验背景:以太网接口的 AutomaticMetric 当时关闭,InterfaceMetric 已经手动设为 500;WLAN 则启用了自动度量。我本次只读取这个状态,没有修改它。

因此,这不是“系统天生优先 Wi-Fi”的证据,也不能用来证明“无线网速比有线快”。自动度量会参考链路速度,但它不是实时测速,不会因为某条链路此刻下载较快,就自动把每个连接迁过去。微软自动度量说明

4. 在自己的电脑上怎么查?

下面均为 Windows PowerShell 的只读命令。把第一个目标换成自己的路由器管理地址,不要照抄我的内网地址。

先查询一个明确的目标:

Find-NetRoute -RemoteIPAddress 192.168.10.1 Find-NetRoute -RemoteIPAddress 1.1.1.1

Find-NetRoute会返回选中的本地 IP 地址对象和路由对象,所以输出里会出现两组信息,不是系统给出了两个互相矛盾的答案。Find-NetRoute 官方文档

再把路由度量和接口度量分别取出来:

Get-NetRoute -DestinationPrefix '0.0.0.0/0' | Select-Object InterfaceIndex, InterfaceAlias, NextHop, RouteMetric | Format-Table -AutoSize Get-NetIPInterface -AddressFamily IPv4 | Where-Object ConnectionState -eq Connected | Select-Object InterfaceIndex, InterfaceAlias, InterfaceMetric, AutomaticMetric | Format-Table -AutoSize

用InterfaceIndex对应两组信息。别把一个接口的路由度量加到另一个接口上,也不要跨 IPv4、IPv6 拼表。

如果读取报“拒绝访问”,先检查当前执行环境的权限。本次在受限执行环境中就遇到这个错误,切换到正常用户上下文后读取成功。查询权限失败不是网络不通。

5. 查到了选路,就证明浏览器这样走了吗?

还没有。这个问题值得单独停一下。

Find-NetRoute回答的是:对给定 IP,当前系统选出的本地地址和路由是什么。它不是对某个浏览器请求的追踪记录。

两者之间至少有几个区别:

  • 网站域名可能解析出多个 IPv4/IPv6 地址;查一个固定 IPv4 地址不能覆盖全部连接。
  • 应用如果使用代理,系统实际处理的连接目标可能是代理服务器,而不是原始网站。
  • 应用可以绑定源地址,隧道或其他软件也可能引入额外路径。
  • 路由查询时刻与实际连接时刻不同,期间配置可能已经变化。

这次公网 IPv6 查询同样选中 WLAN,但我没有据此声称“浏览器总是选 IPv6”。地址族的选择与选定地址之后的路由判断,不是同一个步骤。

想证明实际连接,需要针对一个明确目标的新连接,记录源地址和出接口,必要时抓包。本篇没有完成抓包,所以不放模拟终端输出冒充网络数据包证据。

6. 回到OpenWrt:怎样避免测错对象?

我会先把实验问题写完整:

我要验证的是:这台电脑通过 RAX 的上游能否联网。 不是:这台电脑在任意可用链路上能否联网。

然后依次检查:

  1. 记录目标地址以及 IPv4/IPv6 类型。
  2. 检查这个目标选中了哪个接口、源地址和下一跳。
  3. 用实际连接验证对应路径,而不是仅凭网页能打开。
  4. 若路径不经过 RAX,当前结果就不能用于验收 RAX 的上网配置。

临时断开其他接口是一种简化实验的方法,但不是第一步。配置期间可能还依赖它保持联网,也可能影响另一个正在进行的任务。这次我没有断开 Wi-Fi,也没有把接口度量调回去。

双连接本身没有错:它让管理和上网可以走不同出口。真正容易出错的是,把方便操作的网络拓扑,误当成已经控制好变量的实验拓扑。

7. 这一篇留下什么?

对于刚接触网络的人,先记住:电脑不是只选一个接口用于全部通信,而是针对目标查询路由。

对于已经会配路由的人,这次结果提醒我:测试前要确定测量位置和数据路径。路由器自身的 IPv6 外网测试、电脑通过路由器的测试、外部手机连回家的测试,分别证明不同的事情,不能互相代替。

本篇完成了真实的只读选路检查;还没有完成抓包、断接口对照或独立外网连通实验。后续继续补实验时,也应该把这些证据分开记录,而不是靠一句“已经能上网”全部带过。

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询