VPN Windows Registry Setup
Windows 错误 809
错误 809:无法建立计算机与 VPN 服务器之间的网络连接,因为远程服务器未响应。这可能是因为未将计算机与远程服务器之间的某种网络设备(如防火墙、NAT、路由器等)配置为允许 VPN 连接。请与管理员或服务提供商联系以确定哪种设备可能产生此问题。
注: 仅当你使用 IPsec/L2TP 模式连接到 VPN 时,才需要进行下面的注册表更改。对于 IKEv2 和 IPsec/XAuth 模式,不需要 进行此更改。
要解决此错误,在首次连接之前需要修改一次注册表,以解决 VPN 服务器 和/或 客户端与 NAT (比如家用路由器)的兼容问题。请下载并导入下面的 .reg 文件,或者打开 提升权限命令提示符 并运行以下命令。完成后必须重启计算机。
-
适用于 Windows Vista, 7, 8, 10 和 11 (下载 .reg 文件)
REG ADD HKLM\SYSTEM\CurrentControlSet\Services\PolicyAgent /v AssumeUDPEncapsulationContextOnSendRule /t REG_DWORD /d 0x2 /f -
仅适用于 Windows XP (下载 .reg 文件)
REG ADD HKLM\SYSTEM\CurrentControlSet\Services\IPSec /v AssumeUDPEncapsulationContextOnSendRule /t REG_DWORD /d 0x2 /f
另外,某些个别的 Windows 系统配置禁用了 IPsec 加密,此时也会导致连接失败。要重新启用它,可以运行以下命令并重启。
-
适用于 Windows XP, Vista, 7, 8, 10 和 11 (下载 .reg 文件)
REG ADD HKLM\SYSTEM\CurrentControlSet\Services\RasMan\Parameters /v ProhibitIpSec /t REG_DWORD /d 0x0 /f
Windows 错误 789 或 691
错误 789:L2TP 连接尝试失败,因为安全层在初始化与远程计算机的协商时遇到一个处理错误。
错误 691:由于指定的用户名和/或密码无效而拒绝连接。下列条件可能会导致此情况:用户名和/或密码键入错误...
对于错误 789,点击 这里 查看故障排除信息。对于错误 691,你可以尝试删除并重新创建 VPN 连接,按照本文档中的步骤操作。请确保输入了正确的 VPN 登录凭证。
Windows 错误 628 或 766
错误 628:在连接完成前,连接被远程计算机终止。
错误 766:找不到证书。使用通过 IPSec 的 L2TP 协议的连接要求安装一个机器证书。它也叫做计算机证书。
要解决这些错误,请按以下步骤操作:
- 右键单击系统托盘中的无线/网络图标。
- 选择 打开网络和共享中心。或者,如果你使用 Windows 10 版本 1709 或以上,选择 打开"网络和 Internet"设置,然后在打开的页面中单击 网络和共享中心。
- 单击左侧的 更改适配器设置。右键单击新的 VPN 连接,并选择 属性。
- 单击 安全 选项卡,从 VPN 类型 下拉菜单中选择 "使用 IPsec 的第 2 层隧道协议 (L2TP/IPSec)"。
- 单击 允许使用这些协议。选中 "质询握手身份验证协议 (CHAP)" 和 "Microsoft CHAP 版本 2 (MS-CHAP v2)" 复选框。
- 单击 高级设置 按钮。
- 单击 使用预共享密钥作身份验证 并在 密钥 字段中输入
你的 VPN IPsec PSK。 - 单击 确定 关闭 高级设置。
- 单击 确定 保存 VPN 连接的详细信息。
请参见 VPN 连接属性对话框的屏幕截图。
Windows 10 正在连接
如果你使用 Windows 10 并且 VPN 卡在 "正在连接" 状态超过几分钟,尝试以下步骤:
- 右键单击系统托盘中的无线/网络图标。
- 选择 打开"网络和 Internet"设置,然后在打开的页面中单击左侧的 VPN。
- 选择新的 VPN 连接,然后单击 连接。如果出现提示,在登录窗口中输入
你的 VPN 用户名和密码,并单击 确定。
Windows 10/11 升级
在升级 Windows 10/11 版本之后(比如从 21H2 到 22H2),你可能需要重新按照 Windows 错误 809 中的步骤修改注册表并重启。
Windows DNS 泄漏和 IPv6
Windows 8, 10 和 11 默认使用 "smart multi-homed name resolution" (智能多宿主名称解析)。如果你的因特网适配器的 DNS 服务器在本地网段上,在使用 Windows 自带的 IPsec VPN 客户端时可能会导致 "DNS 泄漏"。要解决这个问题,你可以 禁用智能多宿主名称解析,或者配置你的因特网适配器以使用在你的本地网段之外的 DNS 服务器(比如 8.8.8.8 和 8.8.4.4)。在完成后清除 DNS 缓存并且重启计算机。
另外,如果你的计算机启用了 IPv6,所有的 IPv6 流量(包括 DNS 请求)都将绕过 VPN。要在 Windows 上禁用 IPv6,请看这里。如果你需要支持 IPv6 的 VPN,可以另外尝试 OpenVPN。
Android MTU/MSS 问题
某些 Android 设备有 MTU/MSS 问题,表现为使用 IPsec/XAuth ("Cisco IPsec") 模式可以连接到 VPN 但是无法打开网站。如果你遇到该问题,尝试在 VPN 服务器上运行以下命令。如果成功解决,你可以将这些命令添加到 /etc/rc.local 以使它们重启后继续有效。
iptables -t mangle -A FORWARD -m policy --pol ipsec --dir in \
-p tcp -m tcp --tcp-flags SYN,RST SYN -m tcpmss --mss 1361:1536 \
-j TCPMSS --set-mss 1360
iptables -t mangle -A FORWARD -m policy --pol ipsec --dir out \
-p tcp -m tcp --tcp-flags SYN,RST SYN -m tcpmss --mss 1361:1536 \
-j TCPMSS --set-mss 1360
echo 1 > /proc/sys/net/ipv4/ip_no_pmtu_disc
Docker 用户: 要修复这个问题,不需要运行以上命令。你可以在你的 env 文件中添加 VPN_ANDROID_MTU_FIX=yes,然后重新创建 Docker 容器。
参考链接:[1]。