双网卡主机如何选网络:IP/网络实验

玩机教程 > Router (44) 2025-06-18 15:23:45

主机如果安装了多块网卡,就可以接入多个不同的网络。

笔记本电脑一般都有无线网卡,可以连接 Wifi 网络;还有网线插槽,可以连接有线网络。虽然我们通常只连接一个网络,但双网卡笔记本理论上可以同时接入两个。

你或许也有过这样的经历:笔记本通常连接 Wifi 上网,偶尔需要插上网线访问内网服务;但只要网线一插上,无线 Wifi 就断网了,很烦人!

这是什么原因呢?难道鱼和熊掌不可兼得?本节,我们深入研究多网卡主机的选路过程,探索问题的答案。

典型案例

如图,笔记本有两块网卡,其中无线网卡 eth0 接入 Wifi 无线办公网;有线网卡 eth1 接入内网:

双网卡主机如何选网络:IP/网络实验_图示-1f3e15762c3343a5aec7b3e9027a6b51.png

 

那么,当用户发起网络通信时,系统是如何决定走哪张网卡的呢?

笔记本通过 Wifi 接入无线办公网,接入点网段是 192.168.50.0/24 ;当它完成 IP 地址配置后,系统自动为 192.168.50.0/24 网段配置 直接路由 ,因此笔记本可以访问接入该网段的其他主机。

  • 路由规则一:192.168.50.0/24 从 eth0 网卡直接发送;

无线办公网规模可能很大,内部可能通过路由器划分为许多子网。由于笔记本只有子网 192.168.50.0/24 的路由规则,它无法访问其他子网。

为访问其他子网,笔记本必须为它们配置正确的路由。由于访问其他子网都是以无线网关 192.168.50.1 为下一跳,因此可以将连续的子网合并起来配置,无须逐个配置。

网络规划通常为同一网络中的子网分配一大段连续的地址,例如整个无线办公网的网段是 192.168.0.0/16 。因此,笔记本可以为 192.168.0.0/16 网段配置路由规则:

  • 路由规则二(甲):192.168.0.0/16 通过 192.168.50.1 转发;

192.168.0.0/16 包含子网 192.168.50.0/24 ,那么子网的路由规则会不会被覆盖呢?其实不会。网络号越长的网络越精确,因此 192.168.50.0/24 的路由规则优先级比 192.168.0.0/16 更高。

双网卡主机如何选网络:IP/网络实验_图示-406fc801c9664dddaceb7cd4679e37a9.png

当用户访问本地网其他主机,例如 192.168.50.33 ,虽然系统找到两条匹配的路由规则,但它会挑选匹配度更高的那条,也就是 192.168.50.0/24 这条,从 eth0 网卡直接发送。

当用户访问其他子网的主机,例如 192.168.87.10 ,则匹配 192.168.0.0/16 这条路由规则,以 192.168.50.1 为下一跳。至此,笔记本可以正常访问整个办公网中的主机。

 

办公网有一个出口路由,接入了互联网;发往互联网的 IP 包,只要进入接入路由,都会被转发到出口路由,并进入互联网。因此,笔记本想要访问互联网的话,只需将数据包交给 192.168.50.1 来转发即可。

你可能已经想到了,笔记本只要添加了路由规则,即可访问互联网。但互联网地址何其多,到底添加什么网段好呢?其实,系统一般是配置一条默认的路由规则,来访问互联网的。

默认路由其实就是 0.0.0.0/0 网段,这个网段可以匹配任意 IP 地址。这个网段匹配度是最低的,因此优先级也是最低的。

  • 路由规则二(乙):0.0.0.0/0 通过 192.168.50.1 转发;

值得一提的是,上述两条规则的处理策略是一样的,因此这两个网段可以进一步合并成:

  • 路由规则二:0.0.0.0/0 通过 192.168.50.1 转发;

笔记本接入的有线网络也是类似的:只要 eth1 配置了正确的地址,系统就会为本地子网添加一条直接路由,它就可以访问本地子网了。

  • 路由规则三:10.2.35.0/24 从 eth1 网卡直接发送;

如果笔记本想要访问位于其他子网的内网服务,它需要再配置路由规则。假设整个有线内网的网段是 10.0.0.0/8 ,那么可以这样添加路由规则:

  • 路由规则四:10.0.0.0/8 通过10.2.35.1 转发;

有了这四条路由规则,笔记本就可以正常访问任一网络了:

  • 访问本地无线子网主机,如 192.168.50.33 ,命中规则一,从 eth0 网卡直接发送;
  • 访问其他无线网主机,如 192.168.87.10 ,命中规则二,通过 192.168.50.1 转发;
  • 访问互联网主机,如 223.5.5.5 ,命中规则二,通过 192.168.50.1 转发;
  • 访问本地有线子网主机,如 10.2.35.11 ,命中规则三,从 eth1 网卡直接发送;
  • 访问其他有线网服务,如 10.2.89.63 ,命中规则四,通过 10.2.35.1 转发;

问题分析

问题1:插上网线,Wifi断网

那为什么笔记本连接 Wifi 时插上网线,经常导致 Wifi 断网呢?原因只有一个,那就是路由表。它单独连接 Wifi 时,系统一般会自动配置两条路由规则:

  • 192.168.50.0/24 从 eth0 网卡直接发送;
  • 0.0.0.0/0 通过 192.168.50.1 转发;

通过Windows route命令查看的结果差是下面样子

网络目标        网络掩码          网关           接口              跃点数
0.0.0.0         0.0.0.0          192.168.50.1   192.168.50.101   10
192.168.50.0    255.255.255.0    192.168.50.1   192.168.50.101   55

这两条路由规则,保证笔记本可以访问本地子网、其他无线子网以及互联网。但网线插上之后,系统除了自动添加直接路由,可能还会修改默认路由:

  • 192.168.50.0/24 从 eth0 网卡直接发送;
  • 10.2.35.0/24 从 eth1 网卡直接发送;
  • 0.0.0.0/0 通过 10.2.35.1 转发;

此时Windows路由表就变成这样了

网络目标        网络掩码          网关           接口              跃点数
0.0.0.0         0.0.0.0          10.2.35.1      10.2.35.99       30
10.2.35.0       255.255.255.0    10.2.35.1      10.2.35.99       30
192.168.50.0    255.255.255.0    192.168.50.1   192.168.50.101   55

这时,笔记本可以访问两个本地子网以及整个有线网,但无法访问其他无线子网以及互联网。因为路由规则将去往这些目的地的 IP 包,错误地送到 10.2.35.1 了。

解决办法

Windows更多路由操作命令参考:Windows 系统路由表操作-XQLEE'Blog

route delete 0.0.0.0
route add 0.0.0.0 mask 0.0.0.0  192.168.50.1

解释:删除默认的0.0.0.0/0网段网络路由配置,再添加一个0.0.0.0/0网段路由配置并指定网关192.168.50.1

其他内网子网访问:

route add 10.0.0.0 mask 255.255.255.0 10.0.0.1

route add 10.0.0.0 mask 255.255.255.0 10.0.0.1  该命令的前提是10.0.0.0 网络的网关地址为10.0.0.1

问题2:插上网线,可上网无法连接内网服务

还有一种情况,插上网线后,系统只是自动添加直接路由,系统路由表是这样的:

  • 192.168.50.0/24 从 eth0 网卡直接发送;
  • 10.2.35.0/24 从 eth1 网卡直接发送;
  • 0.0.0.0/0 通过 192.168.50.1 转发;

这时,笔记本无法访问位于其他子网的内网服务,例如 10.2.87.10 。

不管出现以上哪种情况,我们只要将路由规则修改正确,笔记本就能正常访问相关网络。

解决办法

添加内网大网关路由

route add 10.0.0.0 mask 255.255.255.0 10.0.0.1

route add 10.0.0.0 mask 255.255.255.0 10.0.0.1  该命令的前提是10.0.0.0 网络的网关地址为10.0.0.1

 


评论
User Image
提示:请评论与当前内容相关的回复,广告、推广或无关内容将被删除。

相关文章
路由表查看 &gtl; route PRINT //打印所有路由表 &gtl; route PRINT -4 //打印IPv4路由表 &gtl; route PRINT -6 //打印
主机如果安装了多块网卡,就可以接入多个不同的网络。笔记本电脑一般都有无线网卡,可以连接 Wifi 网络;还有网线插槽,可以连接有线网络。虽然我们通常只连接一个网
本实验演示 静态路由 配置方法,迫于没有真实的路由设备,我们拿 Linux 主机来顶。(只有)Linux 是一个非常流行的服务器操作系统,不仅可以用来部署软件服
前言本文主要对新路由3 D2和小米路由3G做一个实际的使用测评
数据链路层实现了链路接入功能,负责将数据从一个节点传输到相邻的节点。数据链路层的协议很多,以太网是其中最为流行的一个。通过以太网通信的主机,需要连接到同一个以太
设置Windows 11 cmd窗口字体大小打开cmd设置界面如下图所示,点击设置默认值外观配置字号设置默认12有点小,一般设置为14即可。
提示:操作有重置风险,请先备份配置 !!!!OpenWRT 设置为纯AP+交换机功能,也就是普通硬路由的AP模式环境说明小米路由器3GOpenWRT 版本 24
一、故障表现原机集成单口的RTL8111网卡,安装PVE后,再在PCIE插槽加上一张双口的82576网卡。安装后启动时原网卡和添加网卡的灯都亮,进入PVE引导后
需求如下图,每个部门都组建一个局域网,部门所有主机都接入其中。每个局域网都通过一台路由器接到核心路由网络,这样不同局域网间可以互相通信。注意到,路由网络上部署了
概述OpenWRT 二级路由实现IPv6中继(IPv6中继模式又称之为:IPv6穿透、IPv6 Passthrough),IPv6由于底层设计原因,NAT6模式
查找网口名称通过命令查看网口名称ip addr 查看网卡连接速率ethtool 网卡名称ethtool enp0s31f6输出参考Settings for en
打开本地组策略编辑器首先win键+r打开运行框,输入:gpedit.msc 回车打开界面锁定策略配置在   计算机配置-&gtl;Windows设置-&gtl;安全设置-&gtl;账户策略-&...
immortalwrt/openwrt 23.05 x86 主路由必选插件推荐i18n-base-zh 语言基础包
rabbitmq windows 安装/windows安装rabbitmq1.获取RabbitMQ windows版本的安装文件首先我们需要去获取RabbitM