无法通过对等连接从EC2实例连接MongoDB Atlas问题排查
问题排查与解决方案
1. 验证MongoDB Atlas侧的对等连接及安全组配置
- 登录Atlas控制台,确认VPC对等连接请求已被接受,状态为Active。
- 检查Atlas集群所在VPC的路由表,确保已添加路由规则:目标为
10.2.0.0/16,指向对应的对等连接ID。 - 配置Atlas集群关联的安全组规则:添加TCP协议,端口为MongoDB集群使用的端口(默认27017),允许来源为
10.2.0.0/16或你的EC2实例安全组ID的访问请求。
2. 使用正确的私有连接字符串
- 从Atlas控制台的Network Access > Peering页面,获取VPC对等连接对应的私有端点连接字符串,替换你当前使用的公网连接字符串。公网连接字符串会强制走公网链路,无法利用对等连接,导致超时或白名单校验失败。
3. 确认VPC的DNS解析配置
- 检查你的VPC的DHCP选项集,确保使用的是
AmazonProvidedDNS(默认配置),或配置了能够解析Atlas私有域名的DNS服务器。自定义DNS服务器可能无法解析Atlas集群的私有域名,导致服务器无法被找到。
4. 验证私有子网路由表的正确性
- 确认私有子网路由表中,指向
{Atlas CIDR}的路由规则:{Atlas CIDR}需填写Atlas集群所在VPC的准确CIDR段,无拼写错误。- 对等连接ID(
pcx-{peering connection id})正确,且对等连接状态为Active。 - 由于路由前缀越长优先级越高,若Atlas CIDR是比
0.0.0.0/0更具体的前缀,流量会自动走对等连接,无需调整优先级。
5. 测试网络连通性
- 在EC2实例上执行以下命令测试连通性:
- 用
ping <Atlas集群私有IP>测试基础连通性(可从Atlas控制台获取私有IP)。 - 用
telnet <Atlas集群私有IP> 27017测试端口是否开放,若连接成功则网络层面无问题。
- 用
6. 修正白名单配置逻辑
- Atlas的IP访问列表仅针对公网访问,VPC对等连接的访问控制依赖双方的安全组规则,无需将EC2安全组ID加入IP白名单。确保Atlas侧安全组已允许你的VPC CIDR或EC2安全组的访问即可。
内容的提问来源于stack exchange,提问作者user2921009
相关产品推荐
相关产品推荐

