考虑以下 PowerShell 命令:
Add-VpnConnectionRoute -ConnectionName "SomeConnection" -DestinationPrefix 10.0.0.0/16 -AllUserConnection
执行该命令后,每当VPNSomeConnection
连接到时,Windows都会自动为添加一条IP路由10.0.0.0/16
,断开连接时,Windows会自动删除该路由。
我正在寻求一些关于其工作原理的见解,并且想知道这些信息在 Windows 中保存在哪里。换句话说,Windows 将“连接到 VPN 时SomeConnection
,添加路由10.0.0.0/16
”的指令存储在哪里?
在记事本中打开系统电话簿 ( C:\ProgramData\Microsoft\Network\Connections\Pbk\rasphone.pbk
) 我看到很多设置,但找不到文本10.0.0.0
。因此它似乎没有与其他设置一起存储在那里。这意味着它要么在其他系统文件中,要么在注册表中的某个地方。
有谁知道那是在哪里吗?
答案1
它们位于 pbk 文件中。
NumRoutes
存储路线数量并Routes
表示路线数据,但据我所知这没有记录,因此它可能随时更改。
来自 pbk 文件:
[...]
NumRoutes=1
Routes=0A00000002000000180000000A0006000000000000000000000000000000000000000000
[...]
答案2
之前我使用 powershell 命令“Add-VpnConnectionRoute”尝试了一下,并查看了 rasphone.pbk 文件的更改。我发现每个路由条目的长度都是 72 个十六进制字符,无论是 IPv4 还是 IPv6。每行不超过 136 个字符(包括“Route=”),并且它们被包装在一起:
172.16.0.0/12
NumRoutes=1
Routes=01000000020000000C000000AC1000000000000000000000000000000000000000000000
172.16.0.0/12 & 192.168.0.0/16
NumRoutes=2
Routes=01000000020000000C000000AC1000000000000000000000000000000000000000000000010000000200000010000000C0A80000000000000000000000000000
Routes=0000000000000000
172.16.0.0/12, 192.168.0.0/16 & 10.0.0.0/8
NumRoutes=3
Routes=01000000020000000C000000AC1000000000000000000000000000000000000000000000010000000200000010000000C0A80000000000000000000000000000
Routes=00000000000000000100000002000000080000000A0000000000000000000000000000000000000000000000
2001:2001:2001:2001::/64
NumRoutes=1
Routes=010000001700000040000000200120012001200100000000000000000000000000000000
Ver? IPv4 prefix ln address
01000000 02000000 0C000000 AC100000 0000000000000000000000000000000000000000 = 172.16.0.0/12
01000000 02000000 10000000 C0A80000 0000000000000000000000000000000000000000 = 192.168.0.0/16
01000000 02000000 08000000 0A000000 0000000000000000000000000000000000000000 = 10.0.0.0/8
Ver? IPv6 prefix ln address
01000000 17000000 40000000 20012001200120010000000000000000 0000000000000000 = 2001:2001:2001:2001::/64
我通过 GPO 首选项推送 VPN 设置,同时更新 .ini 文件以在 rasphone.pbk 文件中设置“DisableIKENameEkuCheck”、“IpNBTFlags”和(当前)“IpPrioritizeRemote”。我想禁用“在远程网络上使用默认网关”并添加用于拆分隧道的静态路由。