无法连接新创建的公网可访问AWS RDS MySQL实例求助
排查AWS RDS MySQL公网连接失败问题
问题概述
我刚创建了一个空的AWS RDS MySQL实例,想要测试从全球任意电脑连接它。已创建带有互联网网关和DNS解析的VPC(满足实例公开可访问的前提),拥有管理员账号和密码,但本地连接时耗时极久,最终返回错误:
ERROR 2002 (HY000): Can't connect to server on '[aws-rds-endpoint]' (115)
当前配置截图:RDS实例配置
关联安全组规则截图:安全组入站规则,安全组规则看似允许所有入站请求。
更新补充nmap扫描结果:
Starting Nmap 7.93 ( https://nmap.org ) at 2023-07-18 12:46 -03 Nmap scan report for [aws-rds-endpoint] (x.xx.63.14) Host is up. rDNS record for x.xx.63.14: [aws-rds-endpoint] PORT STATE SERVICE 3306/tcp filtered mysql
针对性排查方案
1. 确认RDS实例「公开可访问」开关
登录AWS控制台进入RDS实例详情,检查公开可访问选项是否设为「是」。即使VPC配置了IGW,该开关关闭的话,实例不会分配公网IP,直接导致无法从公网访问。
2. 核对安全组的实际生效规则
安全组规则显示允许所有入站,但需逐一验证:
- 入站规则的源地址是否同时覆盖
0.0.0.0/0(IPv4)和::/0(IPv6,若需支持); - 规则的端口范围是否精确设置为3306,而非其他端口;
- 确认当前安全组确实绑定到目标RDS实例(避免误关联了其他安全组)。
3. 检查子网路由表配置
RDS实例所在子网的路由表必须包含一条指向互联网网关(IGW)的路由:
- 目标地址为
0.0.0.0/0,下一跳选择对应的IGW; - 如果子网是私有子网(无此路由),实例无法向外暴露公网访问能力。
4. 排查网络ACL(NACL)的流量限制
VPC或子网的NACL默认允许所有流量,但如果被修改,可能拦截3306端口:
- 入站NACL需添加允许
0.0.0.0/0的3306端口TCP流量规则; - 出站NACL需添加允许响应流量的规则(可设置为允许所有TCP出站,或匹配3306端口的回包)。
5. 排除本地网络环境干扰
本地电脑的防火墙、杀毒软件或代理可能阻止3306端口的出站请求:
- 临时关闭本地防火墙/杀毒软件测试连接;
- 切换至手机热点等其他网络,排除本地网络运营商或企业内网的限制。
6. 确认RDS实例状态正常
检查RDS实例的控制台状态,确保实例处于可用状态,没有正在进行的维护、重启或创建操作——这些状态下实例可能无法正常响应连接请求。
内容的提问来源于stack exchange,提问作者aarelovich
相关产品推荐
相关产品推荐

