目录
1. 背景
2. IP路由原理
3. windows双网卡上网解决方案
3.1. 基础配置解决方案
3.2. 高阶配置解决方案
1. 背景
在windwos上使用多网卡在工作和生活中是一个常见的操作,比如为了获取内部消息将有线连接到内部局域网中,为而了访问外网又将电脑的WIFI连接到手机热点,这样的网络结构按理说应该是既能访问内网又能访问外网,但实际情况是经常发现在启动了这样的双网卡后会出现外网却不能正常访问,归根到底还是windows的网络的路由策略不够智能导致,哪怕是目前最新的win11系统也是如此,当然windows也提供了一些手动配置方案。
2. IP路由原理
对与单网卡情况下,当电脑主机要访问某目标ip时,首先会通过掩码判断目标ip是否为同一局域网网段的ip,若本机ip与目标ip为同一网段ip,这时电脑主机将数据直接发给目标ip;若本机ip与目标ip不为同一网段ip,这时主机就不能向目标ip直接发送数据而需要把发给目标IP的数据发给网关,由网关使用同样的方式寻找目标ip,直到数据达到目标ip。
在电脑使用了多网卡后,对于同网段局域网ip流程与单网卡完全一致,但对于启动了多网卡后流程就会变得复杂,这时主机就会在选在选择有线网卡还是无线网卡来发送数据上犯难了,比如我们要访问的ip需要通过无线网卡但是电脑主机确将这个数据发送到有线网卡上,那么我们访问目标ip就会一直失败。虽然window系统不能智能的解决这个多网卡问题,但也提供了对应的手动的解决方案。
首先通过命令行查看(“route -4 print”)单网卡路由信息:
以上路由信息解释如下:
网络目标 | 目标网络或IP地址。“0.0.0.0”通常表示默认路由。它代表了“所有其他网络”或“未知网络”,并用来匹配任何没有特定匹配项的目标 IP 地址。 |
网络掩码 | 目标网络的子网掩码,用于判断是否为同网段网络 |
网关 | 作为跨网段的目的ip,数据包需要通过的网关 |
接口 | 数据包通过的本地网络接口 |
跃点数 | 用于选择最佳路径的成本值,值越低,优先级越高 |
双网卡路由信息(其中10.0.23.210为外网ip,192.168.1.105为内网ip):
可以看到双网卡的跃点数不一样,即网卡的优先级不一样,内网网卡的优先级高于外网网卡的,这样会导致访问外网会优先使用内网网卡而导致访问失败,我们只需将外网网卡的优先级设置得比内网网卡高就可以正常同时访问内外网了(跃点数越低网卡优先级越高)。
3. windows双网卡上网解决方案
通过上面分析已知修改了外网ip的跃点数就能可以同时正常使用外网和内网,以下分别提供两种操作方式。
3.1. 基础配置解决方案
在控制面板中“控制面板\所有控制面板项\网络连接”或者win+R输入 ncpa.cpl 打开网卡适配器设置
将外网网卡的跃点数修改成比内网网卡的跃点数小,默认路由就会优先使用跃点数小的网卡,这里将外网的网卡跃点数修改成30(内网网卡的默认跃点数为35),修改后两个设备的跃点数如下:
按上述修改后对外网访问就能恢复正常了,当然对内网也是正常的。
3.2. 高阶配置解决方案
按上述基础配资解决方案后基本上可以愉快的使用双网卡了,但内网若存在跨网段,这个访问仍然是失败的,这是由于对于电脑主机来说跨网段的内网访问也相对于外网访问,这时已不能简单的通过修改跃点数来解决双网卡问题,这时为固定的ip或者ip段手动自动固定路由。
临时配置:route add 内网ip(或内网ip段) mask 掩码 默认网关
永久配置:route add 内网ip(或内网ip段) mask 掩码 默认网关