有时,我的 Windows 台式电脑会同时连接到两个网络。
第一个网络是 Wi-Fi 网络,也通过 Wi-Fi 路由器/DSL 调制解调器连接到互联网。路由器地址是 192.168.1.1。我的机器可以有一个像 192.168.1.115 这样的地址(由 DHCP 自动分配)。
第二个网络是与另一个(不是上面的)路由器的物理以太网线连接。此路由器无法访问互联网。路由器地址是 192.168.2.1。我的机器可以有一个像 192.168.2.248 这样的地址(由 DHCP 自动分配)。
问题。
我大部分时间都很高兴地使用第一个 Wi-Fi 网络,一切都很好。但是,当我将以太网电缆连接到 PC 以访问第二个网络时,Windows 会自动创建一条如下所示的新路由:
0.0.0.0 0.0.0.0 192.168.2.1 192.168.2.248 25
显然,Windows 试图提供帮助,并假设由于新网络已连接,我也希望通过它发送所有数据包。然而,这条新路由使数据包通过它,结果 PC 失去了与互联网的连接。
解决这个问题相当简单,只需执行以下命令删除新创建的路由:
route delete -p 0.0.0.0 mask 0.0.0.0 192.168.2.1 metric 25
这解决了问题,并且 PC 只能使用第一个网络访问互联网,而使用第二个网络访问 192.168.2.* 中的 IP。
但是,一旦我断开并重新连接以太网电缆或禁用/启用以太网适配器,该路由就会再次出现。不幸的是,上述命令中的 -p 标志似乎不会使删除永久生效。
我可以通过编程检测这条新路线,并让一个进程/服务在后台运行,以便在创建路线后立即终止该路线。但我觉得应该有一个更好、更优雅的解决方案。
听起来就像 .2.x 子网上的路由器正在使用 DHCP 告诉您的 Windows PC 使用 .2.1 作为其默认路由,而 Windows 只是按照它所告诉的去做。
要解决这个问题,您可能需要找到一种方法来告诉 DHCP 服务器不要在该 PC 上配置默认路由,或者您需要在 PC 上手动配置该接口(而不是 DHCP),并将默认路由器/网关字段留空。
您还可以尝试告诉 Windows 将 Wi-Fi 接口视为更高优先级的接口,这可能会导致 Wi-Fi 默认路由优先于以太网默认路由。