Windows 双网卡配置:通过跃点数实现网线访问局域网、Wi-Fi 访问公网
工作中遇到一个网络需求:Windows 电脑需要同时使用网线和 Wi-Fi。
网线连接公司局域网,用于访问服务器和其他设备;Wi-Fi 连接互联网,用于浏览网页、下载文件。
当前网线的网络配置如下:
| 配置项 | 当前值 |
|---|---|
| 网卡 | Intel(R) Ethernet Connection (18) I219-V |
| IPv4 地址 | 10.188.12.151 |
| 默认网关 | 10.188.12.254 |
| DNS 服务器 | 10.188.10.7、223.5.5.5 |
| 连接速度 | 100 Mbps |
局域网中的其他设备使用 10.188.12.x 地址。
连接网线和 Wi-Fi 后,两张网卡都可能存在默认网关。Windows 会根据路由表选择网络出口。如果以太网默认路由的优先级高于 Wi-Fi,访问公网的流量就可能走公司局域网,影响正常上网。
希望实现的效果是:
- 访问
10.188.12.x时,使用网线。 - 访问互联网时,使用 Wi-Fi。
- 保留两张网卡原有的 IP、网关和 DNS 配置。
- 两张网卡同时工作,无需手动切换。
可以通过修改 Windows 网卡的接口跃点数(Interface Metric)实现。
解决方案
Windows 根据路由表决定网络流量的出口。
当存在多条匹配的路由时,系统优先选择前缀长度更长的路由;前缀长度相同时,再比较有效跃点数。
跃点数越小,路由优先级越高。
因此,可以让 Wi-Fi 的接口跃点数小于以太网,使默认公网流量优先通过 Wi-Fi。
对于 10.188.12.x 这样的同网段地址,Windows 会优先匹配以太网的直连路由,仍然使用网线访问。
1. 查看当前网卡名称和跃点数
以管理员身份打开 PowerShell。
执行:
sql
Get-NetIPInterface -AddressFamily IPv4 |
Format-Table InterfaceAlias,InterfaceMetric,AutomaticMetric
输出示例:
diff
InterfaceAlias InterfaceMetric AutomaticMetric
-------------- --------------- ---------------
以太网 25 Enabled
WLAN 35 Enabled
可以看到,以太网跃点数为 25,Wi-Fi 跃点数为 35。
在默认路由的其他条件相同时,以太网可能被优先选择。
2. 修改以太网跃点数
将以太网接口跃点数设置为 50:
javascript
Set-NetIPInterface `
-InterfaceAlias "以太网" `
-AddressFamily IPv4 `
-AutomaticMetric Disabled `
-InterfaceMetric 50
这里的 以太网 必须与第一步查到的网卡名称一致。
3. 修改 Wi-Fi 跃点数
将 Wi-Fi 接口跃点数设置为 10:
javascript
Set-NetIPInterface `
-InterfaceAlias "WLAN" `
-AddressFamily IPv4 `
-AutomaticMetric Disabled `
-InterfaceMetric 10
修改后的配置:
| 网络接口 | 跃点数 | 用途 |
|---|---|---|
| 以太网 | 50 | 访问局域网 |
| WLAN | 10 | 访问公网 |
执行成功后,配置通常立即生效,无需重启电脑。
4. 验证跃点数配置
再次执行:
sql
Get-NetIPInterface -AddressFamily IPv4 |
Format-Table InterfaceAlias,InterfaceMetric,AutomaticMetric
预期结果:
scss
InterfaceAlias InterfaceMetric AutomaticMetric
-------------- --------------- ---------------
以太网 50 Disabled
WLAN 10 Disabled
说明两张网卡已经关闭自动跃点数,并使用手动配置。
5. 检查路由表
执行:
arduino
route print -4
假设 Wi-Fi 地址是 192.168.1.100,默认网关为 192.168.1.1,路由表中可能包含:
网络目标 网络掩码 网关 接口
0.0.0.0 0.0.0.0 192.168.1.1 192.168.1.100
0.0.0.0 0.0.0.0 10.188.12.254 10.188.12.151
10.188.12.0 255.255.255.0 在链路上 10.188.12.151
其中:
0.0.0.0/0表示默认路由,访问公网时会使用优先级更高的默认路由。10.188.12.0/24表示局域网直连路由,访问该网段时使用以太网。
需要注意,route print 还会显示路由跃点数。Windows 比较默认路由时,考虑的是路由跃点数与接口跃点数共同形成的有效优先级,因此不能只凭 10 和 50 判断最终出口。
如果 Wi-Fi 默认路由的有效跃点数更低,公网流量就会优先通过 Wi-Fi。
6. 测试局域网连接
假设局域网设备 IP 为:
10.188.12.100
执行:
ping 10.188.12.100
如果设备允许 ICMP,正常情况下会收到回复:
ini
来自 10.188.12.100 的回复: 字节=32 时间<1ms TTL=64
如果 Ping 失败,需要检查目标设备是否在线、IP 是否正确,以及设备防火墙是否禁止 ICMP。
7. 测试公网连接
执行:
tracert -d 1.1.1.1
如果 Wi-Fi 网关为 192.168.1.1,第一跳通常会显示:
1 192.168.1.1
说明公网流量经过 Wi-Fi 路由器。
如果第一跳仍然是 10.188.12.254,需要重新检查默认路由的有效跃点数。
8. 恢复默认配置
如果后续不再需要手动设置跃点数,可以恢复 Windows 自动管理。
恢复以太网:
javascript
Set-NetIPInterface `
-InterfaceAlias "以太网" `
-AddressFamily IPv4 `
-AutomaticMetric Enabled
恢复 Wi-Fi:
javascript
Set-NetIPInterface `
-InterfaceAlias "WLAN" `
-AddressFamily IPv4 `
-AutomaticMetric Enabled
执行后,Windows 会根据网络接口情况自动计算跃点数。
最终效果
| 访问目标 | 网络出口 |
|---|---|
| 10.188.12.100 | 以太网 |
| 10.188.12.200 | 以太网 |
| 公网 IP | Wi-Fi |
| 互联网网站 | Wi-Fi |
上述效果以 10.188.12.0/24 确实属于以太网直连网段、Wi-Fi 默认路由有效跃点数更低为前提。公司其他内网网段和域名解析还取决于现有路由与 DNS 配置。
通过修改接口跃点数,可以保留网线和 Wi-Fi 的原有 IP、网关和 DNS 设置,无需删除默认网关,也不需要安装第三方软件。
对于网线访问同网段局域网、Wi-Fi 访问公网的场景,这种方式改动少,配置也容易恢复。