win10或win11连L2TP或者PPTP拨号后只能访问远端内网而无法访问Internet的原因及解决办法
1.拨号后只能访问远端内网而无法访问互联网,这通常是由于 VPN 的路由配置导致的,被称为“分流隧道(Split Tunneling)”模式。
原因分析
分流隧道模式(默认):当你通过 L2TP 或 PPTP 成功连接到 VPN 后,你的电脑会自动添加一条路由规则,将所有发往 VPN 服务器所在网络的流量(即远端内网)通过 VPN 隧道传输。而其他的流量(例如访问互联网)仍然会通过你本地网络的默认网关发送。这种模式的目的是为了减轻 VPN 服务器的负担,并允许你同时使用本地网络和远端内网。
全隧道模式(Full Tunneling):在这种模式下,所有网络流量,包括访问互联网的流量,都会被强制通过 VPN 隧道发送。只有当流量到达 VPN 服务器后,再由服务器负责将互联网流量转发出去。
如果你的电脑在连接 VPN 后只能访问内网,那么说明你的电脑正在使用分流隧道模式。如果 VPN 服务器没有正确地配置出站路由和 NAT(网络地址转换),或者服务器端的防火墙阻止了互联网流量的转发,你的互联网访问就会中断。
解决方案
要解决这个问题,你需要将 VPN 客户端从分流隧道模式切换为全隧道模式,即强制所有流量都通过 VPN 隧道传输。
以下是 Windows 系统的具体设置步骤:
打开 设置 > 网络和 Internet > VPN。
在右侧的列表中找到你的 L2TP 或 PPTP VPN 连接,点击它旁边的“高级选项”。
在弹出的窗口中,找到 IP 设置 并点击旁边的“编辑”。
在 IPV4 高级设置中,勾选“在远程网络上使用默认网关”选项。
点击“确定”保存设置。
断开当前的 VPN 连接,然后重新连接。
通过这个修改,你的所有网络流量都会被路由到 VPN 隧道中。只要 VPN 服务器配置正确,能够将你的流量转发到互联网,你的问题就能得到解决
2.
修改注册表的原因:NAT 穿越问题 (NAT-T)
这个注册表修改方法主要是为了解决 NAT 穿越(NAT-T) 问题,这是导致 L2TP/IPsec VPN 无法正常工作的最常见原因之一。
当你连接 L2TP/IPsec VPN 时,你的电脑和 VPN 服务器之间需要建立一个安全的通信通道。这个通道主要依赖于 IPsec (Internet Protocol Security) 协议。IPsec 会对数据包进行加密和封装。
然而,如果你的电脑位于 NAT 设备(例如你的家用路由器) 后面,路由器会对你的数据包进行网络地址转换。这个转换过程可能会干扰到 IPsec 协议,导致 VPN 服务器无法正确识别和处理数据包,最终使连接失败或连接成功后无法传输数据。
NAT-T 技术就是为了解决这个问题而诞生的。它会将 IPsec 数据包封装在 UDP 端口 4500 中,这样数据包就能顺利地穿过 NAT 设备,到达 VPN 服务器。
Windows 默认的配置 有时会出于安全考虑,阻止或禁用 NAT-T。这就导致了即使连接成功,也无法进行数据传输的问题。
AssumeUDPEncapsulationContextOnSendRule 的作用
你提到的注册表键值 AssumeUDPEncapsulationContextOnSendRule 就是用来控制 Windows 在 NAT 环境下是否使用 NAT-T 技术。
将这个键值设置为 2,是告诉 Windows 强制开启 UDP 封装。它会覆盖系统的默认行为,让你的电脑即使在 NAT 设备后面,也能够正确地使用 NAT-T 技术来建立和维持 VPN 连接。
简单来说,这个修改就是告诉 Windows:“我知道我位于一个 NAT 设备后面,请务必使用 UDP 封装来发送 VPN 数据包,这样它们才能正确到达目的地。”
官方也有说明:https://learn.microsoft.com/zh-cn/troubleshoot/windows-server/networking/configure-l2tp-ipsec-server-behind-nat-t-device
评论
发表评论