在多网卡的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。这说明通过命令行修改接口的跃点数效果不是很理想,因此下面可以通过界面来修改跃点数。 windows界面修改跃点数

上面通过界面修改完跃点数的结果如下:

> route print -4
===========================================================================
接口列表
 13...cc 28 aa 08 76 c3 ......Realtek PCIe GbE Family Controller
 18...00 ff 00 dc b2 ea ......Realtek PCIe GbE Family Controller #2
 17...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
 16...00 50 56 c0 00 0a ......VMware Virtual Ethernet Adapter for VMnet10
  1...........................Software Loopback Interface 1
===========================================================================

IPv4 路由表
===========================================================================
活动路由:
网络目标        网络掩码          网关       接口   跃点数
          0.0.0.0          0.0.0.0      10.160.83.1    10.160.83.124     42
          0.0.0.0          0.0.0.0  192.168.202.254  192.168.202.120  19998
         10.0.0.0    255.255.255.0            在链路上          10.0.0.1    291
         10.0.0.1  255.255.255.255            在链路上          10.0.0.1    291
       10.0.0.255  255.255.255.255            在链路上          10.0.0.1    291
      10.160.83.0    255.255.255.0            在链路上     10.160.83.124    288
    10.160.83.124  255.255.255.255            在链路上     10.160.83.124    288
    10.160.83.255  255.255.255.255            在链路上     10.160.83.124    288
        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
     192.168.61.0    255.255.255.0            在链路上      192.168.61.1    291
     192.168.61.1  255.255.255.255            在链路上      192.168.61.1    291
   192.168.61.255  255.255.255.255            在链路上      192.168.61.1    291
    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
    192.168.202.0    255.255.255.0            在链路上   192.168.202.120  10255
  192.168.202.120  255.255.255.255            在链路上   192.168.202.120  10255
  192.168.202.255  255.255.255.255            在链路上   192.168.202.120  10255
        224.0.0.0        240.0.0.0            在链路上         127.0.0.1    331
        224.0.0.0        240.0.0.0            在链路上      192.168.61.1    291
        224.0.0.0        240.0.0.0            在链路上     192.168.100.1    291
        224.0.0.0        240.0.0.0            在链路上          10.0.0.1    291
        224.0.0.0        240.0.0.0            在链路上     10.160.83.124    288
        224.0.0.0        240.0.0.0            在链路上   192.168.202.120  10255
  255.255.255.255  255.255.255.255            在链路上         127.0.0.1    331
  255.255.255.255  255.255.255.255            在链路上      192.168.61.1    291
  255.255.255.255  255.255.255.255            在链路上     192.168.100.1    291
  255.255.255.255  255.255.255.255            在链路上          10.0.0.1    291
  255.255.255.255  255.255.255.255            在链路上     10.160.83.124    288
  255.255.255.255  255.255.255.255            在链路上   192.168.202.120  10255
===========================================================================
永久路由:
  网络地址          网络掩码  网关地址  跃点数
          0.0.0.0          0.0.0.0      10.160.83.1      10
===========================================================================

此时接口13的跃点数远远小于接口17,当访问网络时需要使用默认路由的情况下,则会优先使用接口13。