本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。
故障排除 AWS Client VPN:与 VPC 的隧道连接问题
当您的 AWS Client VPN 连接遇到连接问题时,请按照这种系统的故障排除方法来识别并解决问题。本节提供了诊断远程客户端与 Amazon VPC 资源之间常见的 Client VPN 连接问题的 step-by-step程序。
主题
网络连接先决条件
在对 Client VPN 连接进行故障排除之前,请验证以下网络先决条件:
-
确保 Client VPN 端点子网具有互联网连接(通过 Internet Gateway 或 NAT 网关)。
-
验证 Client VPN 终端节点是否与不同可用区域中的子网相关联,以实现高可用性。
-
检查 VPC 是否有足够的 IP 地址空间并且与客户端 CIDR 块没有冲突。
-
确认目标子网具有正确的路由表关联。
检查 Client VPN 端点状态
首先,验证您的 Client VPN 端点是否处于正确的状态:
-
使用 AWS CLI 来检查 Client VPN 终端节点状态:
aws ec2 describe-client-vpn-endpoints --region
your-region
-
在输出中查找端点状态。状态应该是
available
。 -
验证终端节点是否关联了目标网络(子网)。
-
如果状态不是
available
,请检查是否存在任何可能表明配置问题的错误消息或待处理状态。
验证客户端连接
检查与您的客户端 VPN 终端节点的客户端连接状态:
-
检查活跃的客户端连接:
aws ec2 describe-client-vpn-connections --client-vpn-endpoint-id
cvpn-endpoint-id
--regionyour-region
-
查看连接状态和输出中的所有错误消息。
-
检查客户端身份验证日志中是否有失败的身份验证尝试。
-
确认客户端正在从配置的客户端 CIDR 块接收 IP 地址。
注意
如果客户端无法连接,则可能是身份验证配置、授权规则或网络连接出现问题。
验证客户端身份验证
身份验证问题是 Client VPN 连接问题的常见原因:
-
对于相互身份验证,请确保客户端证书有效且未过期。
-
要进行活动目录身份验证,请验证用户凭据和域连接。
-
对于基于 SAML 的联合身份验证,请检查 IdP 配置和用户权限。
-
查看身份验证登录 CloudWatch 以获取详细的错误信息。
-
验证在端点上配置的身份验证方法是否与客户端配置相匹配。
查看授权规则
授权规则控制客户端可以访问哪些网络资源:
-
列出当前的授权规则:
aws ec2 describe-client-vpn-authorization-rules --client-vpn-endpoint-id
cvpn-endpoint-id
--regionyour-region
-
验证是否存在适用于客户端需要访问的目标网络的规则。
-
检查规则是否指定了正确的 Active Directory 组(如果使用 AD 身份验证)。
-
确保授权规则处于
active
状态。
验证 Client VPN 路由
正确的路由配置对于 Client VPN 连接至关重要:
-
检查 Client VPN 终端节点路由:
aws ec2 describe-client-vpn-routes --client-vpn-endpoint-id
cvpn-endpoint-id
--regionyour-region
-
验证是否存在客户端需要访问的目标网络的路由。
-
检查 Amazon VPC 路由表,确保返回流量可以到达客户端 VPN 终端节点:
aws ec2 describe-route-tables --filters "Name=vpc-id,Values=
vpc-id
" --regionyour-region
-
验证目标网络关联的配置是否正确。
验证安全组和网络 ACLs
安全组和网络 ACLs 可以阻止 Client VPN 流量:
-
检查安全组中是否有目标 EC2 实例:
aws ec2 describe-security-groups --group-ids
sg-xxxxxxxxx
--regionyour-region
-
验证入站规则允许来自 Client VPN CIDR 区块的流量:
来自 Client VPN 的 SSH(端口 22)CIDR:
10.0.0.0/16
来自 Client VPN 的 HTTP(端口 80)CIDR:
10.0.0.0/16
来自 Client VPN 的 HTTPS(端口 443)CIDR:
10.0.0.0/16
根据需要自定义应用程序端口
-
对于 Client VPN 端点安全组(如果适用),请确保它允许:
来自 0.0.0.0/0 的 UDP 端口 443 (OpenVPN)
所有出站到 VPC CIDR 块的流量
-
检查网络 ACLs 是否没有阻塞流量。网络 ACLs 是无状态的,因此必须配置入站和出站规则。
-
验证您要发送的特定流量的入站和出站规则。
测试客户端连接
测试从 Client VPN 客户端到 Amazon VPC 资源的连接:
-
通过连接的 Client VPN 客户端,测试与 Amazon VPC 资源的连接:
ping
vpc-resource-ip
traceroutevpc-resource-ip
-
测试特定的应用程序连接:
telnet
vpc-resource-ip
port
-
如果使用私有 DNS 名称,请验证 DNS 解析:
nslookup
private-dns-name
-
如果启用了分割隧道,则测试与 Internet 资源的连接。
诊断客户端设备
在客户端设备上执行以下检查:
-
验证客户端配置文件 (.ovpn) 包含正确的设置:
正确的服务器端点 URL
有效的客户证书和私钥
正确的身份验证方法配置
-
检查客户端日志中是否存在连接错误:
Windows:事件查看器 → 应用程序和服务日志 → OpenVPN
macOS:主机应用程序,搜索 “Tunnelblick” 或 “OpenVPN”
Linux:
/var/log/openvpn/
或 systemd 日记
-
测试来自客户端的基本网络连接:
ping 8.8.8.8 nslookup
cvpn-endpoint-id
.cvpn.region
.amazonaws.com
解决 DNS 解析问题
DNS 问题可能会阻止使用私有 DNS 名称访问资源:
-
检查 Client VPN 终端节点中是否配置了 DNS 服务器:
aws ec2 describe-client-vpn-endpoints --client-vpn-endpoint-ids
cvpn-endpoint-id
--query 'ClientVpnEndpoints[0].DnsServers' -
测试来自客户端的 DNS 解析:
nslookup
private-resource.internal
digprivate-resource.internal
-
如果使用自定义 DNS 解析,请验证 Route 53 解析器规则。
-
检查安全组是否允许从 Client VPN CIDR 到 DNS 服务器的 DNS 流量(UDP/TCP 端口 53)。
排除性能故障
解决 Client VPN 连接的性能问题:
-
使用 ingress/egress 字节 CloudWatch 指标监控带宽利用率。
-
使用来自客户端的持续 ping 测试来检查数据包丢失。
-
确认 Client VPN 端点未达到连接限制。
-
考虑使用多个 Client VPN 端点进行负载分配。
-
在不同的客户地点进行测试,以确定区域绩效问题。
监控 Client VPN 指标
使用 CloudWatch以下方法监控 Client VPN 端点指标:
-
检查活动连接指标:
aws cloudwatch get-metric-statistics \ --namespace AWS/ClientVPN \ --metric-name ActiveConnectionsCount \ --dimensions Name=Endpoint,Value=
cvpn-endpoint-id
\ --start-timestart-time
\ --end-timeend-time
\ --period 300 \ --statistics Average -
查看身份验证失败指标:
aws cloudwatch get-metric-statistics \ --namespace AWS/ClientVPN \ --metric-name AuthenticationFailures \ --dimensions Name=Endpoint,Value=
cvpn-endpoint-id
\ --start-timestart-time
\ --end-timeend-time
\ --period 300 \ --statistics Sum -
查看其他可用指标,例如入口和出口字节和数据包。
查看 Client VPN 日志
Client VPN 连接日志提供有关连接尝试和错误的详细信息:
-
如果尚未配置,请启用 Client VPN 连接日志。
-
查看 CloudWatch 日志以了解连接尝试、身份验证失败和授权错误。
-
查找指明连接问题根本原因的特定错误代码和消息。
-
检查失败的连接中是否存在可能表明存在配置问题的模式。
常见问题和解决方案
可能影响 Client VPN 连接的常见问题:
- 身份验证失败次数
-
客户端证书已过期或无效,或者活动目录凭据不正确。验证身份验证配置和凭证有效性。
- 缺少授权规则
-
由于授权规则缺失或不正确,客户端无法访问目标网络。为所需网络添加适当的授权规则。
- 分割隧道问题
-
由于分割隧道配置,流量路由不正确。根据需要查看和调整分割隧道设置。
- 客户端 IP 池耗尽
-
客户端 CIDR 块中没有可用的 IP 地址。扩大客户端 CIDR 范围或断开未使用的客户端。
- MTU 问题
-
由于 MTU 大小限制,大型数据包被丢弃。尝试将 MTU 设置为 1436 字节或在客户端设备上启用 Path MTU 发现。
- DNS 解析问题
-
客户端无法解析私有 DNS 名称。验证 DNS 服务器配置并确保允许 DNS 流量通过安全组。
- 重叠的 IP 范围
-
客户端 CIDR 块与本地网络范围冲突。检查并解决客户端 CIDR 和本地网络之间是否存在任何重叠的 IP 地址范围。
- TLS 握手失败
-
TLS 协商期间连接失败。检查证书有效性,确保密码套件正确,并验证客户端和服务器证书的配置是否正确。
- 路径传播延迟
-
客户端无法立即使用新路由。更改 Client VPN 路由后,留出 1-2 分钟的时间进行路由传播。
- 连接中断/不稳定
-
频繁断开连接或连接不稳定。检查客户端设备上的网络拥塞、防火墙干扰或电源管理设置。