AWS Client VPN连接EC2实例MySQL失败,ping私有IP不通求排查
问题排查与缺失配置分析
针对你遇到的AWS Client VPN无法连接EC2实例MySQL、ping私有IP失败的问题,以下是你可能遗漏的关键配置项:
1. EC2实例安全组入站规则补全
你当前的安全组仅允许同一安全组内的TCP流量,但VPN客户端属于独立的客户端CIDR段,不属于同一安全组,需补充两条规则:
- MySQL连接规则:协议选TCP,端口范围填
3306,来源设为你的Client VPN客户端CIDR块(如10.1.0.0/24,即创建VPN时指定的客户端地址池) - Ping连通性规则:协议选ICMP,类型设为「回显请求(Echo Request)」,来源同样填VPN客户端CIDR块
2. 验证Client VPN路由表的有效性
虽然你提到路由表目标子网与EC2一致,仍需确认:
- 路由表中是否存在指向EC2所在VPC私有CIDR的路由,且状态为「已激活」
- 检查是否存在更具体的路由条目,覆盖了到EC2子网的流量(路由匹配遵循最长前缀原则)
3. 网络ACL(NACL)规则配置
若你的VPC/子网启用了NACL(默认是允许所有,但如果自定义过),需补充双向规则:
- 入站NACL:允许UDP 443、TCP 3306、ICMP回显请求,来源为VPN客户端CIDR
- 出站NACL:允许TCP 3306响应流量、ICMP回显响应,目标为VPN客户端CIDR
NACL是无状态规则,入站和出站必须分别配置,不能依赖安全组的有状态特性。
4. EC2实例操作系统防火墙检查
不要忽略实例内部的防火墙限制:
- Linux实例:用
iptables或firewalld确认是否允许3306端口和ICMP流量来自VPN客户端CIDR,例如:# firewalld添加规则示例 firewall-cmd --add-rich-rule='rule family="ipv4" source address="VPN_CLIENT_CIDR" port port="3306" protocol="tcp" accept' --permanent firewall-cmd --add-rich-rule='rule family="ipv4" source address="VPN_CLIENT_CIDR" protocol="icmp" accept' --permanent firewall-cmd --reload - Windows实例:在Windows防火墙高级设置中,添加入站规则允许TCP 3306和ICMP回显请求,来源指定为VPN客户端CIDR
5. Client VPN传输协议与安全组匹配
检查你的Client VPN端点使用的传输协议:
- 若端点配置为TCP协议,需在安全组中添加「允许VPN客户端CIDR访问TCP 443」的规则(你当前仅配置了UDP 443)
- 可在Client VPN端点详情页的「传输协议」字段确认配置,对应调整安全组规则
内容的提问来源于stack exchange,提问作者432i
相关产品推荐
相关产品推荐

