问题背景:

1 一般情况下,Windows主机就算有多个网卡,在默认情况下,只能有一个网卡可以配置网关。

2 在双网卡只配置一个网关的情况下,如果每个网卡值负责访问自己网段内的IP地址,这样是不会出现什么异常现象的。

比如Windows主机双网卡配置如下:

网卡1:10.129.28.21 255.255.255.0 10.129.28.1网卡2: 10.129.24.22 255.255.255.0此时,网卡1配置了网关,但是网卡2没有配置网关(因为默认情况下只能配置一个网关)。

此时如果

网卡1 去访问10.129.28.N网卡2 去访问10.129.24.N并不会有我们问题,一切正常。

3 如果此时,

网卡1要去访问 10.131.30.11网卡2要去访问172.16.101.46那么,网络将会出现异常情况,比如连接不上,或者是丢包等。

这时候,我们需要配置网卡各自的路由,使其项目不影响。

此时,我们先(内心)设定好网卡的参数

网卡1: IP 为 10.129.28.21 掩码为 255.255.255.0 网关为 10.129.28.1

网卡2:IP 为10.129.24.22 掩码为 255.255.255.0 网关为 10.129.24.254

然后cmd窗口下输入一下命令

route delete 0.0.0.0 mask 0.0.0.0 10.129.28.1

route delete 0.0.0.0 mask 0.0.0.0 10.129.24.254

route add 10.129.28.0 mask 255.255.255.0 10.129.28.1 metric 10 -p

route add 10.131.30.0 mask 255.255.255.0 10.129.28.1 metric 20 -p

route add 10.129.24.0 mask 255.255.255.0 10.129.24.254 metric 30 -p

route add 172.16.101.0 mask 255.255.255.0 10.129.24.254 metric 40 -p

上面六条命令执行完成后,输入命令:

route print

得到如下结果

代码解释如下:

这里是用在 Windows 系统中的 netsh 命令行工具。每一条命令都在对 Windows 的路由表进行修改。

route delete 0.0.0.0 mask 0.0.0.0 10.129.28.1:这个命令会从路由表中删除所有以10.129.28.1为下一跳的路由。

route delete 0.0.0.0 mask 0.0.0.0 10.129.24.254:这个命令会从路由表中删除所有以10.129.24.254为下一跳的路由。

route add 10.129.28.0 mask 255.255.255.0 10.129.28.1 metric 10 -p:这个命令会在路由表中添加一个新的静态路由,目标网络是10.129.28.0/24,下一跳地址是10.129.28.1,并设置 metric(度量)为10。-p参数表示这条路由是持久的,即使重启系统也不会消失。

route add 10.131.30.0 mask 255.255.255.0 10.129.28.1 metric 20 -p:这个命令会在路由表中添加一个新的静态路由,目标网络是10.131.30.0/24,下一跳地址是10.129.28.1,并设置 metric(度量)为20。

route add 10.129.24.0 mask 255.255.255.0 10.129.24.254 metric 30 -p:这个命令会在路由表中添加一个新的静态路由,目标网络是10.129.24.0/24,下一跳地址是10.129.24.254,并设置 metric(度量)为30。

route add 172.16.101.0 mask 255.255.255.0 10.129.24.254 metric 40 -p:这个命令会在路由表中添加一个新的静态路由,目标网络是172.16.101.0/24,下一跳地址是10.129.24