1、背景
我日常中大部分时间都是使用外网的网卡进行办公,只有在连接公司服务器时才需要使用内网。由于我的电脑存在两张网卡,分别用于连接不同的网络(常见情况是一张访问公司内网,一张访问公司外网),但是在使用过程中发现,在访问内网的网卡启用时,访问外网的网卡使用受到影响。针对这个问题,特意做了一下排查故记录下来:
2、问题原因与解决办法
首先查看两张网卡的ip地址:
ipconfig
再执行如下命令,结果如下图:
route print
红框部分是跃点数,在路由表配置中,它是一个用来表示网络路径或接口的相对优先级和成本的数字。在决定将数据包通过哪个网络路径或接口发送时,跃点数是一个关键因素。这是修改之后的跃点数,我们发现修改后外网的跃点数是小于内网的跃点数,代表外网网卡被优先使用。在修改之前外网的跃点数是大于内网的跃点数,代表内网被优先使用,但是我们默认优先使用外网,那么需要将外网的跃点数设置的小一点(优先级高点),这里可以使用route add修改不同网卡的跃点数,比较暴力的办法是插入网卡的网线互换(因为我发现手动设置的跃点数在重启网卡时会恢复以前的默认值,这里可能有命令设置永久的,但是没查)。设置完成之后继续下面的步骤,那么当需要访问内网时怎么设置为自动使用内网网卡呢?此时需要给内网网卡添加静态路由,步骤如下:
- 打开命令提示符(以管理员身份)。
- 假设你的内网IP范围是192.168.1.0到192.168.1.255,内网网卡的IP地址是192.168.1.2。你可以使用以下命令来添加路由:
临时配置:
route add 192.168.1.0 mask 255.255.255.0 192.168.1.2
永久配置:
route add 192.168.1.0 mask 255.255.255.0 192.168.1.2 -p
这个命令的意思是,所有发往192.168.1.0/24(即192.168.1.0到192.168.1.255)的流量都应该通过192.168.1.2这个网卡发送。
- 输入route print,检查你的路由是否被正确添加。
通过上述配置,我们就可以同时使用内网和外网网络,而不会收到影响。
3、总结
出现这个问题的根本原因是不同网络的优先级导致的,如果我们一张网卡经常使用,一张网卡只访问局域网,那么可以将经常使用的网卡的优先级设置的高(跃点数小),而访问局域网的网卡添加静态路由即可。