我在 Windows 10 PC 上使用 2 个连接。一个用于访问我的 LAN,另一个用于互联网。
长话短说:我需要优先使用我的互联网连接(4G USB 棒)来访问网络,但是当我需要通过其他 LAN(多个子网)访问某些东西时,它却无法工作。
基本上我需要我的 4G 连接一直在线,并且我需要像平常一样通过我的 LAN 连接(以太网端口)访问不同的子网。例如,我的 PC 在该 LAN 上的子网是 10.79.4.0/24,我也可以访问我的其他子网 10.79.0.0/24` 等等。... 但只要我转变到我的其他互联网接口(4G USB 棒),只有通过第一个 LAN 接口的初始子网可以访问 10.79.4.0/24,而其他子网则不能访问。
如果我的指标在 LAN 上较低(也可以通过不同的防火墙和外部 IP 访问互联网),则一切正常。但是,如果我只是为了测试目的而关闭 LAN 上的互联网,它会切换到第二个接口(4G USB 棒),这没问题,但我无法访问该接口所在子网以外的任何本地资源。
基本上,如果优先防火墙/互联网关闭并且我想通过电视或 RealVNC 和本地资源访问 Windows 10 设备,这就是我的故障转移方法。
我该怎么做?我相信这是可以实现的。我只是不知道该怎么做?我希望我说清楚了...
接口
主要互联网连接和 LAN 连接
次要、故障转移 4G 连接
路由表
Tracert
答案1
我会写一个答案,以免评论打扰你。从命令输出来看,你所拥有的环境如下所示:
让我将其分为两部分:
路由步骤
首先,让我们总结一下 4G 连接在仍访问本地网络时的工作方式(如问题评论中所确认的)。Windows 将优先选择具有最低度量的路由,在本例中,LAN 为 291,4G 为 527。
如果您更改指标以便您的 4G 连接启动,那么您应该拥有您想要访问的所有内部网络的路由:
route -p add 10.79.0.0 mask 255.255.255.0 10.79.4.1
...
route -p add <SUBNET IP> mask <MASK> 10.79.4.1
假设这SUBNET IP
是网络地址(看这里)。
如果你拥有所有10.x.x.x
网络,那么更简单的方法可能是这样做route -p add 10.0.0.0 mask 255.0.0.0 10.79.4.1
。你可以这样做,因为你的 4G 处于开启状态192.168.8.0/24
故障转移步骤
我不想说你做不到,但据我所知,我认为你无法仅通过巧妙的度量配置来处理这个问题。这是因为对于 Windows,网关处于开启状态。192.168.8.1
只有在较低度量网关 ( ) 无法访问的情况下,Windows 才会自动切换到更高的度量(默认通过 )10.79.4.1
。然而事实并非如此,你的下一跳是活动的,你只是失去了互联网连接。
利用您所拥有的资源,我将采取编写快速而肮脏的脚本的方法来更改互联网故障时的指标,如下所示:
@echo off
echo Checking internet connection...
ping %1 -n 1 -w 1000 > NUL
if errorlevel 1 (GOTO FALLBACK) else (GOTO ALLGOOD)
:FALLBACK
echo Internet Failed
:: YOUR CODE
echo -- Here goes the code to change the routes and metrics when internet fails
::...
exit 0
:ALLGOOD
echo Internet probe was successful
:: MAYBE REVERSE THE METRICS?
exit 0
将其存储在一个.cmd
文件中,并粘贴您在第一步中确定的路线。也许还可以创建一个回滚例程,以防万一。条件本身有效:
将探测 IP 作为参数传递给测试连接。然后我会将其设置为定期运行(根据您的停机容忍度设置间隔)。
我希望这能帮助你解决。
干杯,