Windows中通过配置跃点数和永久路由选择上网方式
在多网卡的Windows系统中,可以通过配置路由表(永久路由和跃点数)来选择上网方式。
在Windows路由表中,跃点数(Metric)是一个整数值,用于确定路由的优先级。跃点数越小,优先级越高。它主要用于在多个路由中选择最优的路径。
活动路由和永久路由
在网络中,活动路由和永久路由是两种不同的路由方式:
活动路由:活动路由是当前有效的路由,系统在运行时动态生成和使用。添加活动路由:route add <目标网络> mask <子网掩码> <网关> metric <跃点数> if <接口号>
永久路由是手动配置并保存在系统中的路由,即使系统重启后也会保留。添加永久路由:route add <目标网络> mask <子网掩码> <网关> metric <跃点数> if <接口号> -p
跃点数
在Windows路由表中,跃点数(Metric)是一个整数值,用于确定路由的优先级。跃点数越小,优先级越高。它主要用于在多个路由中选择最优的路径。
查看当前路由表: 打开命令提示符,输入以下命令查看当前的IPv4路由表:route print -4
。
修改跃点数: 假设你想修改默认网关的跃点数,可以使用以下命令:
route change 0.0.0.0 mask 0.0.0.0 <网关IP> metric <新的跃点数> if <接口号>
例如:route change 0.0.0.0 mask 0.0.0.0 192.168.1.1 metric 10 if 9
,其中192.168.1.1是网关IP,10是新的跃点数,9是接口号。
永久修改: 如果需要永久修改,可以在命令中增加-p
参数:route change -p 0.0.0.0 mask 0.0.0.0 192.168.1.1 metric 10 if 9
。
案例
问题
如下所示,当前设备上存在两个物理网卡,分别是13和17,其中13用于连接外网,17是调试用的内部局域网。
当两个网卡都接入之后,会生成两条默认路由,此时会导致设备无法上网,因为当前设备默认会走17网卡对应的默认路由。
针对这个问题,即使增加对网卡13增加永久路由也不行。
> route print
===========================================================================
接口列表
13...xx xx xx 08 76 c3 ......Realtek PCIe GbE Family Controller
17...xx xx xx bc 40 84 ......Realtek PCIe GbE Family Controller #2
16...00 50 56 c0 00 01 ......VMware Virtual Ethernet Adapter for VMnet1
4...00 50 56 c0 00 08 ......VMware Virtual Ethernet Adapter for VMnet8
1...........................Software Loopback Interface 1
===========================================================================
IPv4 路由表
===========================================================================
活动路由:
网络目标 网络掩码 网关 接口 跃点数
0.0.0.0 0.0.0.0 10.160.83.1 10.160.83.124 281
0.0.0.0 0.0.0.0 192.168.0.1 192.168.0.2 25
10.160.83.0 255.255.255.0 在链路上 10.160.83.124 281
10.160.83.124 255.255.255.255 在链路上 10.160.83.124 281
10.160.83.255 255.255.255.255 在链路上 10.160.83.124 281
127.0.0.0 255.0.0.0 在链路上 127.0.0.1 331
127.0.0.1 255.255.255.255 在链路上 127.0.0.1 331
127.255.255.255 255.255.255.255 在链路上 127.0.0.1 331
169.254.0.0 255.255.0.0 在链路上 169.254.225.197 291
169.254.225.197 255.255.255.255 在链路上 169.254.225.197 291
169.254.255.255 255.255.255.255 在链路上 169.254.225.197 291
192.168.0.2 255.255.255.255 在链路上 192.168.0.2 281
192.168.100.0 255.255.255.0 在链路上 192.168.100.1 291
192.168.100.1 255.255.255.255 在链路上 192.168.100.1 291
192.168.100.255 255.255.255.255 在链路上 192.168.100.1 291
224.0.0.0 240.0.0.0 在链路上 127.0.0.1 331
224.0.0.0 240.0.0.0 在链路上 169.254.225.197 291
224.0.0.0 240.0.0.0 在链路上 192.168.100.1 291
224.0.0.0 240.0.0.0 在链路上 10.160.83.124 281
224.0.0.0 240.0.0.0 在链路上 192.168.0.2 281
255.255.255.255 255.255.255.255 在链路上 127.0.0.1 331
255.255.255.255 255.255.255.255 在链路上 169.254.225.197 291
255.255.255.255 255.255.255.255 在链路上 192.168.100.1 291
255.255.255.255 255.255.255.255 在链路上 10.160.83.124 281
255.255.255.255 255.255.255.255 在链路上 192.168.0.2 281
===========================================================================
永久路由:
网络地址 网络掩码 网关地址 跃点数
0.0.0.0 0.0.0.0 10.160.83.1 默认
===========================================================================
...
解决方案
通过修改跃点数,使接口13的默认路由优先级更高,在使用默认路由转发时就会优先使用接口13。
> route change -p 0.0.0.0 mask 0.0.0.0 10.160.83.1 metric 10 if 13
> route print
===========================================================================
接口列表
13...cc 28 aa 08 76 c3 ......Realtek PCIe GbE Family Controller
17...f0 09 0d bc 40 84 ......Realtek PCIe GbE Family Controller #2
16...00 50 56 c0 00 01 ......VMware Virtual Ethernet Adapter for VMnet1
4...00 50 56 c0 00 08 ......VMware Virtual Ethernet Adapter for VMnet8
1...........................Software Loopback Interface 1
===========================================================================
IPv4 路由表
===========================================================================
活动路由:
网络目标 网络掩码 网关 接口 跃点数
0.0.0.0 0.0.0.0 10.160.83.1 10.160.83.124 35
0.0.0.0 0.0.0.0 192.168.0.1 192.168.0.2 25
10.160.83.0 255.255.255.0 在链路上 10.160.83.124 281
10.160.83.124 255.255.255.255 在链路上 10.160.83.124 281
10.160.83.255 255.255.255.255 在链路上 10.160.83.124 281
127.0.0.0 255.0.0.0 在链路上 127.0.0.1 331
127.0.0.1 255.255.255.255 在链路上 127.0.0.1 331
127.255.255.255 255.255.255.255 在链路上 127.0.0.1 331
169.254.0.0 255.255.0.0 在链路上 169.254.225.197 291
169.254.225.197 255.255.255.255 在链路上 169.254.225.197 291
169.254.255.255 255.255.255.255 在链路上 169.254.225.197 291
192.168.0.0 255.255.255.0 在链路上 192.168.0.2 281
192.168.0.2 255.255.255.255 在链路上 192.168.0.2 281
192.168.0.255 255.255.255.255 在链路上 192.168.0.2 281
192.168.100.0 255.255.255.0 在链路上 192.168.100.1 291
192.168.100.1 255.255.255.255 在链路上 192.168.100.1 291
224.0.0.0 240.0.0.0 在链路上 169.254.225.197 291
224.0.0.0 240.0.0.0 在链路上 10.160.83.124 281
224.0.0.0 240.0.0.0 在链路上 192.168.0.2 281
255.255.255.255 255.255.255.255 在链路上 127.0.0.1 331
255.255.255.255 255.255.255.255 在链路上 169.254.225.197 291
255.255.255.255 255.255.255.255 在链路上 192.168.100.1 291
255.255.255.255 255.255.255.255 在链路上 10.160.83.124 281
255.255.255.255 255.255.255.255 在链路上 192.168.0.2 281
===========================================================================
永久路由:
网络地址 网络掩码 网关地址 跃点数
0.0.0.0 0.0.0.0 10.160.83.1 10
===========================================================================
...
可以看到手动修改了永久路由的跃点数,但是即使这样,活动路由中接口13的默认路由的跃点数仍然大于接口17。但是在路由选择中,会将永久路由和活动路由进行整体比较,在子网粒度相同情况下优先选择跃点数较小的路由条目。
因此,默认情况下会优先选择永久路由中的接口13对应的默认路由条目。
- 原文作者:生如夏花
- 原文链接:https://blduan.top/post/%E6%93%8D%E4%BD%9C%E7%B3%BB%E7%BB%9F/windows%E4%B8%AD%E9%80%9A%E8%BF%87%E9%85%8D%E7%BD%AE%E8%B7%83%E7%82%B9%E6%95%B0%E5%92%8C%E6%B0%B8%E4%B9%85%E8%B7%AF%E7%94%B1%E9%80%89%E6%8B%A9%E4%B8%8A%E7%BD%91%E6%96%B9%E5%BC%8F/
- 版权声明:本作品采用知识共享署名-非商业性使用-禁止演绎 4.0 国际许可协议进行许可,非商业转载请注明出处(作者,原文链接),商业转载请联系作者获得授权。