在阿里云 RDS MySQL 中开启公网连接,本质上是将数据库服务暴露到互联网上。出于安全考虑,默认情况下 RDS 实例仅支持内网(VPC)访问。若必须通过公网 IP 连接,需完成以下配置步骤及注意事项:
一、核心配置步骤
1. 开启公网地址
- 操作路径:登录阿里云控制台 → 进入 RDS 管理控制台 → 选择目标实例 → 左侧导航栏点击“数据安全性”或“网络与安全”。
- 关键动作:找到“公网地址”区域,点击“申请公网地址”。
- 注意:
- 首次申请后,系统会生成一个公网 IP 和端口(通常为 3306)。
- 公网地址是按量付费的,会产生流量费用,建议仅在必要时开启,用完后及时释放。
2. 白名单设置(至关重要)
RDS 默认启用白名单机制,未加入白名单的 IP 无法连接。
- 操作路径:同一页面下的“白名单”分组。
- 推荐配置:
- 严格模式:填入你本地电脑的公网出口 IP(可通过
ipconfig或在线工具查询)。 - 宽松模式(不推荐):填入
0.0.0.0/0,表示允许所有 IP 访问。此举存在极高安全风险,极易被暴力破解或勒索攻击,生产环境严禁使用。
- 严格模式:填入你本地电脑的公网出口 IP(可通过
- 高级功能:建议使用“IP 白名单分组”,便于统一管理多个开发/测试环境的 IP。
3. 账号权限配置
确保用于连接的数据库账号具有远程访问权限。
- 操作路径:账号管理 → 创建账号或修改现有账号。
- 关键点:
- 账号类型建议选择“普通账号”而非“高权限账号”(除非必要)。
- 确认该账号未被限制在内网访问(部分旧版实例可能有此限制,新版通常无此问题,但需检查账号属性)。
4. 客户端连接测试
- 使用 MySQL 客户端(如 Navicat、DBeaver、命令行 mysql)进行连接。
- 连接参数:
- Host: 公网 IP
- Port: 3306(或其他自定义端口)
- User: 数据库账号
- Password: 密码
- 常见问题:若连接超时,请检查本地网络防火墙是否出站拦截了 3306 端口。
二、安全最佳实践(强烈建议)
直接暴露公网 IP 风险极高,以下是更安全的替代方案:
✅ 推荐方案:SSH 隧道 / Jump Server
- 在 ECS 服务器上部署 SSH 服务。
- 将 RDS 设为仅允许该 ECS 的内网 IP 访问。
- 本地电脑通过 SSH 隧道转发本地端口到 ECS,再连接到 RDS。
ssh -L 3307:<RDS内网地址>:3306 user@<ECS公网IP>然后本地连接
localhost:3307即可,全程加密且无需开放 RDS 公网。
✅ 推荐方案:云企业网 CEN + VPC 对等路由
适用于跨地域或混合云场景,通过专线或高速通道实现安全互联,避免公网暴露。
❌ 避免做法:
- 不要将
0.0.0.0/0加入白名单。 - 不要使用弱密码。
- 不要在公网环境下传输敏感数据而不使用 SSL/TLS 加密。
三、常见故障排查
| 现象 | 可能原因 | 解决方案 |
|---|---|---|
| 连接超时 | 白名单未添加本机公网 IP | 确认当前出口 IP 并加入白名单;检查本地防火墙 |
| Access denied | 账号密码错误 / 账号无远程权限 | 重置密码;检查账号是否在正确白名单组 |
| Connection refused | 端口错误或实例未启动 | 确认端口为 3306(或自定义端口);检查实例状态 |
| 公网费用高 | 长期开启公网地址 | 用完即释放公网地址;改用内网+SSH隧道 |
四、总结
- 必须配置项:申请公网地址 + 添加本机公网 IP 到白名单 + 正确账号密码。
- 核心原则:最小权限原则。仅临时开启公网,完成后立即释放公网地址。
- 更安全替代:优先使用 SSH 隧道或堡垒机方式连接,避免直接暴露数据库至公网。
⚠️ 提醒:根据《网络安全法》及等保要求,数据库直接暴露于公网属于高风险行为,企业级应用应严格禁止此类架构,采用内网隔离+跳板机/堡垒机审计模式。
CLOUD云枢