对客户端 VPN 进行故障排除
To view this article in English, click here.
本文概述客户端 VPN(主要是基于 Windows 的客户端)连接问题的故障排除方法,包括常见错误列表。同时,本文还简单介绍了通过客户端 VPN 访问资源的一些常见问题和解决方案。
配置要求
客户端设备
请参阅我们的文档,了解有关在客户端设备上配置客户端 VPN 的相关说明。
加密方法
客户端 VPN 使用 L2TP/IP 协议,其中 3DES 和 SHA1 分别为加密和散列算法。作为最佳做法,共享密钥开头或结尾不应包含任何特殊字符。
验证连接是否成功
确定客户端 VPN 连接是否成功连接到 MX 的方法主要有三种:
- 使用常用网络实用程序(根据使用的操作系统的不同而有所不同)检查设备的连接状态。事件日志包含客户端每次连接或从客户端 VPN 断开连接的条目。您可以从监控 > 事件日志中查看这些日志。点击搜索按钮后,取消选中 VPN 以外的所有事件类别。客户端 VPN 日志的事件类型为以下两种类型之一:连接的 VPN 客户端或断开连接的 VPN 客户端。以下是日志消息示例,显示客户端连接客户端 VPN,然后断开连接:
Jun 27 12:24:53 05:00:08:ab:cd:ef VPN client disconnected remote_ip: 174.X.X.X, user_id: administrator, local_ip: 192.168.100.239 Jun 27 12:24:38 05:00:08:ab:cd:ef VPN client connected remote_ip: 174.X.X.X, user_id: administrator, local_ip: 192.168.100.239
- 客户端列表也可用于查看客户端当前是否连接至客户端 VPN。在控制面板中浏览至监控 > 客户端。通过点击 + 按钮并选择 MAC 地址添加新其他列。然后客户端可通过能由“不适用(客户端 VPN)”过滤为 MAC 地址“不适用(客户端 VPN)”进行过滤。
常见的连接问题
本文的这一部分将概述常见的配置问题以及由此产生的事件日志消息/客户端错误消息。
在 Windows 中查找错误代码
如果从 Windows 设备未建立客户端 VPN 连接失败,但屏幕上未显示任何错误消息,您可以使用事件查看器查找与此失败的连接相关联的错误代码:
- 按 Windows 键并输入“Event Viewer”,然后点击搜索结果中的 Event Viewer。
- 在事件查看器中,导航至 Windows 日志 > 应用。
- 客户端 VPN 连接故障将显示为错误事件类型。点击相应事件将显示关联的错误代码:
Windows 错误 789
事件日志条目示例:
Jul 2 13:53:20 VPN msg: invalid DH group 19. Jul 2 13:53:20 VPN msg: invalid DH group 20.
如果客户端的流量未成功到达 MX 的 WAN 接口,这个问题也会导致不显示事件日志消息。
可能的原因和解决方案:
- 密钥不正确(Windows 中的预共享密钥)
解决方案:确保在客户端设备上正确配置共享密钥。密钥必须在 MX 和客户端之间匹配。您可以在页面顶部的链接中找到有关设置共享密钥的更多信息。 - 防火墙阻止 VPN 流量进入 MX
解决方案:确保 UDP 端口 500 (IKE) 和 4500 (IPsec NAT-T) 被前转至 MX 且未受到阻止。如果流量无法到达这些端口上的 MX,则连接将超时并且失败。 - IKE 和 AuthIP IPpsec 密钥模块被禁用(仅限 Windows)
解决方案:如果安装的是第三方 VPN 软件并禁用了 IKEEXT 服务,通常会出现这种情况。您可以在 Windows 中导航至控制面板 > 管理工具 > 服务,重新启用此服务。找到名称为“IKE 和 AuthIP IPpsec 密钥模块”的服务,并将其打开。将启动类型更改为“自动”。如果此设置自动恢复为“已禁用”或无法启动,则可能需要删除第三方 VPN 软件:
Windows 错误 691
事件日志条目示例:
Jul 2 14:00:40 VPN msg: not matched Jul 2 14:00:40 VPN msg: ISAKMP-SA established 82.35.46.78[4500]-174.45.35.220[4500] spi:b74e92b3b5360c16:ce602504804696a9
可能的原因和解决方案:
- 用户凭据无效
解决方案:确认用户凭据是否正确。当使用 Meraki 身份验证时,用户名应为邮件电子邮件格式(例如 user@example.com)。当使用 AD 或 RADIUS 身份验证时,请务必以服务器能够识别的格式输入用户名,需要时也可包括域名(如果需要)(例如 DOMAIN\user)。 - 用户未经授权
解决方案:如果使用的是 Meraki 身份验证,请确保用户已获得授权可以可以连接至 VPN。 - AD 服务器上没有证书
解决方案:如果客户端 VPN 使用 Active Directory 身份验证,请确保 AD 服务器具有 TLS 的有效证书。 - 或者,如果 RADIUS 服务器和 MX 之间的预共享密钥不匹配导致密码加密错误,也可能会导致显示此消息。通过在控制面板中更改预共享密钥,并且将服务器上的 RADIUS 客户端更改为简单内容(例如“Meraki”)进行测试。如果此错误消失,请验证两个设备上使用的密钥正确,如果需要,请简化密码。
Windows 错误 809
如果此错误出现,事件日志不会有任何相关日志,因为流量未到达 MX 的 WAN 接口。
可能的原因和解决方案:
- 客户端在 NAT 设备后面
解决方案:如果 Windows 计算机或 VPN 服务器位于 MAT 后面,则现代 Windows 设备不支持 L2TP/IPsec 连接。如果在尝试与 NAT 后面的 MX 设备之间建立 VPN 连接时,Windows VPN 客户端发生故障,且显示错误 809,请在 Windows 注册表中添加“AssumeUDPEncapsulationContextOnSendRule”DWORD 值。当 VPN 服务器和基于 Windows 的 VPN 客户端计算机均位于 NAT 设备后面时,此 DWORD 值可让 Windows 建立安全关联。
对于 Windows XP:
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\IPSec
RegValue:AssumeUDPEncapsulationContextOnSendRule
类型:DWORD
数据值:2
对于 Windows Vista、7、8、10 和 2008 服务器:
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\PolicyAgent
RegValue:AssumeUDPEncapsulationContextOnSendRule
类型:DWORD
数据值:2
其他问题
思科 Meraki 设备上的客户端 VPN 使用 L2TP over IPsec 标准,由大多数客户端设备提供开箱支持。如果客户端无法建立 VPN 连接,导致本文中未提及的错误代码,我们建议首先针对此错误查看特定于操作系统的文档。确保客户端配置正确,并且具有到未过滤 UDP 端口 500 或 4500 的 MX 的网络连接。同时,使用数据包捕获确认客户端的流量是否已到达 MX 也很有用。
访问网络资源的问题
有时,最终用户会报告其客户端 VPN 连接不能正常工作,但是,这并不一定表示客户端 VPN 隧道出现问题;客户端可能只是无法访问所需的网络资源。
以下部分概述了诊断和修复客户端 VPN 用户访问网络资源遇到的问题的步骤。
验证 VPN 连接
第一个故障排除步骤是验证是否已建立客户端 VPN 连接,并向 MX 传输流量。您可以在监控 > 客户端页面上查看活动客户端 VPN 用户,并且可以通过 IP 地址或 MAC 地址找到这些用户(将显示为“不适用 [客户端 VPN]”)。事件日志也会在用户每次使用客户端 VPN 连接到 MX 以及断开连接时进行记录。
在客户端 VPN 设备上打开一个命令提示符或终端,对 MX 的局域网 IP 地址执行 ping 操作。您可以在控制面板的配置 > 寻址和 VLAN 页面上找到局域网 IP 地址。从配置为参与 VPN 的 VLAN 中选择一个 MX IP 地址。在此示例中,MX 的局域网 IP 地址为 192.168.10.1:
测试到资源的连接
此时,您已验证建立了客户端 VPN 会话,,并且该会话能正常工作。从命令提示符或终端,对客户端尝试使用的资源的 IP 地址执行 ping 操作。请记住,客户端正尝试连接的设备可能不会响应 ICMP,因此,我们需要测试对 VPN 上响应 ICMP 的其他设备执行 ping 操作。这里,我们对局域网 IP 地址为 192.168.10.3 的文件服务器进行连接测试:
如果网络资源不响应 ping 操作,但已建立客户端 VPN 隧道,请确保资源的防火墙允许其响应来自客户端 VPN 子网(在安全设备 > 配置 > 客户端 VPN 下配置)的请求。请注意,默认情况下,Microsoft 的 Windows 防火墙一般会阻止来自未知专用子网的通信。
测试 DNS 解析
因为未向客户端 VPN 用户开放不能使用 DHCP 选项 15,请确保客户端 VPN 上的任何 DNS 查询均指定 FQDN 而不是简称。
大多数最终用户使用主机名访问资源,因此,也应从命令提示符或终端测试 DNS 解析。在此示例中,fileserver01 应解析为 192.168.10.3:
在安全设备 > 配置 > 客户端 VPN 页面上验证配置好的 DNS 服务器。默认配置将客户端 DNS 服务器设置为 Google 公共 DNS。
还可以为客户端 VPN 用户定义自定义 DNS 名称服务器。从 DNS 名称服务器下拉菜单中,选择“指定名称服务器...”,然后输入所需内部 DNS 服务器的 IP 地址。在此示例中,内部 DNS 服务器的 IP 地址是 192.168.10.2:
配置自定义名称服务器后,DNS 解析功能应能正常工作,因此,用户应能够通过客户端 VPN 连接按名称找到资源:
其他检查
最终用户可能会报告他们无法通过客户端 VPN 隧道映射网络共享。这可能是由于第 7 层防火墙规则的配置阻止文件共享引起的。在安全设备 > 配置 > 防火墙 > 第 7 层下检查第 7 层防火墙规则。
此外,请查看目标资源适用的任何组策略,确保组策略中未阻止文件共享。