我在一端有 Windows Server 2022,在另一端有 Keenetic 路由器。它们通过 SSTP VPN 连接。Windows 作为服务器,Keenetic 作为客户端(使用移动连接的公路战士)。Keenetic 后面有一些用户,网络为 192.168.87.0/24。当它连接到 Windows RRAS VPN 服务器时,它会获得地址 11.11.11.3,其中 11.11.11.1 - Windows 服务器。在此之后,我添加路由:route -P add 192.168.87.0 mask 255.255.255.0 11.11.11.3,它开始工作。
Persistent routes:
Network address Mask Gateway Metrics
192.168.87.0 255.255.255.0 11.11.11.3 1
但它一直工作到用户重新连接为止。我在 RRAS MMC 控制台中看到连接,我在路由表中看到路由,但它不起作用。我需要删除路由并再次添加。然后它又开始工作了。
客户端连接时是否有一些选项可以启动路由?尝试调试日志并使用事件管理器捕获事件以启动脚本,但 RRAS 不会记录传入连接的事件,我只能看到来自 Windows VPN 的传出连接。
在 PS 中尝试过:
New-NetRoute -DestinationPrefix 192.168.87.0/24 -InterfaceAlias "RAS (Dial In) Interface" -NextHop 11.11.11.3
它添加了正确的路线但是也不起作用。
有人能帮忙吗?有什么想法吗?
更新:制作了一个解决方法脚本,直到我找到添加路线的正确方法。
while($true)
{
$hostname = "192.168.87.1"
$isReachable = Test-Connection -ComputerName $hostname -Quiet
if ($isReachable) {
Write-Host "$hostname is reachable."
Get-Date -Format "yyyy/MM/dd HH:mm:ss" >> E:\tmp\route87.log;
echo "OK, working." >> E:\tmp\route87.log;
} else {
Write-Host "$hostname is not reachable."
Get-Date -Format "yyyy/MM/dd HH:mm:ss" >> E:\tmp\route87.log;
echo "Restart route" >> E:\tmp\route87.log;
route delete 192.168.87.0 mask 255.255.255.0
route add 192.168.87.0 mask 255.255.255.0 11.11.11.3
}
Start-Sleep 60
}