这两天把电脑升级到了Win11系统,果然是MacOS的孪生兄弟啊,微软看来也不避讳了,略微有点卡,总体还行吧。说回正题,自从Win10开始,使用系统自带的VPN功能连接群晖的L2TP类型的VPN就一直有问题,一般连接的时候都会报下面的错误:
1 无法建立计算机与VPN服务器之际的网络连接,因为远程服务器未响应。这可能是因为...(此处省略很多字)
同样的设置,在MacOS和iPhone上都能正常连接,可为啥到了window上就不行了呢?这是为什么呢???
通过各种学习(百度),终于在微软官网找到了答案:
Configure L2TP/IPsec server behind NAT-T device – Windows Server | Microsoft Docs
核心内容翻译如下:
1 2 3 4 5 |
默认情况下,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
2、设置注册表项
首先,找到注册表项:HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\PolicyAgent
,检查是否有AssumeUDPEncapsulationContextOnSendRule
,如果有,则编辑,设置值为2
;
如果没有,则创建一个,右键选择 新建
> DWORD(32 位)值
,名称为AssumeUDPEncapsulationContextOnSendRule
,然后编辑,同样设置值为2
。
3、设置VPN属性
打开控制面板
>网络和Internet
>网络连接
>,找到VPN连接,右键打开属性
切换到安全
,将 数据加密(D)
设置为需要加密(如果服务器拒绝将断开连接)
,同时选中运行使用这些协议(P)
,并且只勾选Microsoft CHAP Version 2(MS-CHAP v2)
4、重启电脑
5、重新连接VPN,这时候一般都能正常连接了。如果还不能连接,可以尝试后面的操作。
如果上面的操作下来,还是不能正常连接VPN,可以继续尝试下面的操作:
1、找到注册表HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\RasMan\Parameters
,新建ProhibitIPSec
,并设置值为0
2、打开计算机管理
>服务和应用程序
>服务
,找到IPsec Policy Agent
,将启动类型设置为手动
,然后重启电脑。
good luck!
from:https://blog.csdn.net/nerdsu/article/details/122600260