解决Windows无法连接到L2TP/IPsec VPN
环境
在我们的实验环境里,我们在同一台Windows Server上安装了网络策略服务器(Network Policy Server,NPS)角色和路由和远程访问服务(Routing and Remote Access, RRAS)。RRAS使这台服务器成为一个VPN服务器。因为在同一个设备上安装了NPS,RRAS自动用本机作为远程身份验证拨入用户服务(Remote Authentication Dial-In User Service,RADIUS)器,一个专门用来验证来访的VPN请求的服务器。我们在NPS控制台中配置了网络策略(Network Policy),来决定哪些VPN连接请求可以验证通过。
我们还配置了RRAS,允许PPTP和L2TP/IPsec协议的连接。
然而,我们尝试用一个Windows客户机连接至此Windows Server提供的VPN却无法连接。
如果你想知道我们先前操作的步骤,先前是如何安装这些角色并启用PPTP的,阅读这篇文章。
我们先前又进行了额外的配置来启用L2TP/IPsec。要想查看我们是如何启用它的,阅读这篇文章。
问题
我们发现,任何来访的L2TP/IPsec VPN连接请求都会被拒绝。
故障排查
如果我们查看事件查看器,NPS只会给出一条类似上图中红色文字的模糊信息,指出一个请求因为不符合网络策略条件而被拒绝。看来,只有手动查找那个使它被拒绝的条件了。
验证方式
最后,我们发现是在验证方式上出了问题。验证方式决定VPN连接者如何与VPN服务器交换凭据,例如用户名和密码。
如果你最早是用下图中的导向配置的NPS服务,那么很可能你不小心将EAP验证方式的限制勾选成了智能卡或证书。
但在Windows 11中,默认对于使用预共享密钥的L2TP/IPsec的验证方式是EAP MSCHAPv2。
修复起来也很简单,我们只需在服务器上将验证方式也改为EAP MSCHAPv2。
问题解决
连接成功。