我的服务器是2012R2。我按照微软手册使用 PowerShell 进行客户端部署。一切正常,除了自定义路线没有出现在客户端上(在多台 Windows 10 和 Windows 11 PC 上尝试过)没有任何提示。DisableClassBasedDefaultRoute
有效。
我尝试修改建议,MakeProfile.ps1
通过 MDM_VPNv2_01 WMI 类添加 VPN 连接,并使用经典方式添加 VPN 连接,Add-VpnConnection
而不是像这样使用自定义路由Add-VpnConnectionRoute
。它有效,路由确实出现,但当客户端未连接到网络时,登录脚本不会运行,而远程客户端通常都是这样。似乎“不正确”的 ProfileXML 在Add-VpnConnection
几次客户端重新启动后覆盖了添加的路由(我不完全理解其中的逻辑),自定义路由消失了,所以它有效但不可靠。
请帮忙查找 ProfileXML 或其他任何地方的错误:
<VPNProfile>
<AlwaysOn>true</AlwaysOn>
<RememberCredentials>true</RememberCredentials>
<DnsSuffix>mydomain.local</DnsSuffix>
<RegisterDNS>true</RegisterDNS>
<TrustedNetworkDetection>mydomain.local</TrustedNetworkDetection>
<DomainNameInformation>
<DomainName>.mydomain.local</DomainName>
<DnsServers>192.168.99.1,192.168.99.100</DnsServers>
</DomainNameInformation>
<NativeProfile>
<Servers>vpn.external.com</Servers>
<RoutingPolicyType>SplitTunnel</RoutingPolicyType>
<NativeProtocolType>IKEv2</NativeProtocolType>
<DisableClassBasedDefaultRoute>true</DisableClassBasedDefaultRoute>
<CryptographySuite>
<AuthenticationTransformConstants>SHA256128</AuthenticationTransformConstants>
<CipherTransformConstants>AES256</CipherTransformConstants>
<EncryptionMethod>AES256</EncryptionMethod>
<IntegrityCheckMethod>SHA256</IntegrityCheckMethod>
<DHGroup>Group14</DHGroup>
<PfsGroup>None</PfsGroup>
</CryptographySuite>
<Authentication>
<UserMethod>Eap</UserMethod>
<Eap>
<Configuration>
<EapHostConfig xmlns="http://www.microsoft.com/provisioning/EapHostConfig">
<EapMethod>
<Type xmlns="http://www.microsoft.com/provisioning/EapCommon">26</Type>
<VendorId xmlns="http://www.microsoft.com/provisioning/EapCommon">0</VendorId>
<VendorType xmlns="http://www.microsoft.com/provisioning/EapCommon">0</VendorType>
<AuthorId xmlns="http://www.microsoft.com/provisioning/EapCommon">0</AuthorId>
</EapMethod>
<Config xmlns="http://www.microsoft.com/provisioning/EapHostConfig">
<Eap xmlns="http://www.microsoft.com/provisioning/BaseEapConnectionPropertiesV1">
<Type>26</Type>
<EapType xmlns="http://www.microsoft.com/provisioning/MsChapV2ConnectionPropertiesV1">
<UseWinLogonCredentials>true</UseWinLogonCredentials>
</EapType>
</Eap>
</Config>
</EapHostConfig>
</Configuration>
</Eap>
</Authentication>
</NativeProfile>
<Route>
<Address>192.168.96.0</Address>
<PrefixSize>20</PrefixSize>
<Metric>1</Metric>
</Route>
</VPNProfile>
答案1
我自己使用自定义路由,但我不知道如何禁用基于类的路由。上面的例子为我指明了正确的方向。
无论如何:我添加海关路线的方式是通过 PowerShell:
假设您的 VPN 连接被调用,MyVpn
您可以使用 Cmdlet 添加自定义路由,Add-VpnConnectionRoute
如下所示:
Add-VpnConnectionRoute -ConnectionName "MyVpn" -DestinationPrefix 192.168.96.0/20 -PassThru
该路由与您的 VPN 连接相关联,因此只有在 VPN 连接处于开启状态时它才会出现在您的路由表中。
答案2
您应该 100% 能够在 XML 中配置路线。与我运行的运行良好的 XML 相比,您的 XML 有 2 点不同:
- 我已
<RememberCredentials>
设置为 faslse - 我不在配置
<Metric>
中使用<Route>
这里的罪魁祸首很可能是 2 号。
此外,您是否只配置了用户隧道?因为如果您还配置了设备隧道,并且其中某些配置不正确,那么它也会影响用户隧道。
例如,不要<DomainNameInformation>
在设备隧道中配置。或者如果你绝对地必须确保<DomainNameInformation>
两个配置文件中的所有内容都相同。