解决Win11连接群晖上的L2TP类型vpn无响应的问题

作者 胡萝虎 日期 2021-10-12
解决Win11连接群晖上的L2TP类型vpn无响应的问题

这两天把电脑升级到了Win11系统,果然是MacOS的孪生兄弟啊,微软看来也不避讳了,略微有点卡,总体还行吧。说回正题,自从Win10开始,使用系统自带的VPN功能连接群晖的L2TP类型的VPN就一直有问题,一般连接的时候都会报下面的错误:

无法建立计算机与VPN服务器之际的网络连接,因为远程服务器未响应。这可能是因为...(此处省略很多字)

同样的设置,在MacOS和iPhone上都能正常连接,可为啥到了window上就不行了呢?这是为什么呢???

原因

通过各种学习(百度),终于在微软官网找到了答案:

Configure L2TP/IPsec server behind NAT-T device - Windows Server | Microsoft Docs

核心内容翻译如下:

默认情况下,Windows Vista 和 Windows Server 2008 不支持与位于 NAT 设备后面的服务器的 Internet 协议安全 (IPsec) 网络地址转换 (NAT) 穿越 (NAT-T) 安全关联。如果虚拟专用网络 (VPN) 服务器位于 NAT 设备后面,则基于 Windows Vista 或 Windows Server 2008 的 VPN 客户端计算机无法与 VPN 服务器建立第 2 层隧道协议 (L2TP)/IPsec 连接。此方案包括运行 Windows Server 2008 和 Windows Server 2003 的 VPN 服务器。
由于 NAT 设备转换网络流量的方式,您可能会在以下场景中遇到意外结果:
- 您将服务器放在 NAT 设备后面。
- 使用 IPsec NAT-T 环境。
如果您必须使用 IPsec 进行通信,请为您可以从 Internet 连接到的所有服务器使用公共 IP 地址。如果必须将服务器置于 NAT 设备之后,然后使用 IPsec NAT-T 环境,则可以通过更改 VPN 客户端计算机和 VPN 服务器上的注册表值来启用通信。

原来从Vista时代就存在这个问题了,简单说就是VPN服务器和(或)客户端与NAT(比如家用路由器)的兼容问题。服了!!!

解决方法

解决方法很简单,就是修改注册表,添加AssumeUDPEncapsulationContextOnSendRule注册表项,具体如下:

1、打开注册表,快捷键 win + x,然后点击运行,输入regedit

image-20211013001909869

2、设置注册表项

首先,找到注册表项:HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\PolicyAgent,检查是否有AssumeUDPEncapsulationContextOnSendRule,如果有,则编辑,设置值为2;

如果没有,则创建一个,右键选择 新建> DWORD(32 位)值,名称为AssumeUDPEncapsulationContextOnSendRule,然后编辑,同样设置值为2

image-20211013003809513

3、设置VPN属性

打开控制面板>网络和Internet>网络连接>,找到VPN连接,右键打开属性

image-20211013010328671

image-20211013010350101

切换到安全,将 数据加密(D) 设置为需要加密(如果服务器拒绝将断开连接),同时选中运行使用这些协议(P),并且只勾选Microsoft CHAP Version 2(MS-CHAP v2)

4、重启电脑

5、重新连接VPN,这时候一般都能正常连接了。如果还不能连接,可以尝试后面的操作。

后面的操作

如果上面的操作下来,还是不能正常连接VPN,可以继续尝试下面的操作:

1、找到注册表HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\RasMan\Parameters,新建ProhibitIPSec,并设置值为0

image-20211013003851763

2、打开计算机管理>服务和应用程序>服务,找到IPsec Policy Agent,将启动类型设置为手动,然后重启电脑。

image-20211013004028018

good luck!

“扫一扫接着看”