You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何通过客户端VPN以私有IP连接MongoDB Atlas端点?

问题背景

已搭建MongoDB Atlas,并完成以下配置:

  • 建立MongoDB Atlas与AWS VPC的VPC对等连接,IP访问列表放行VPC CIDR,VPC内连接正常。
  • 配置AWS客户端VPN端点用于本地安全连接VPC,IP访问列表放行客户端VPN私有IP段,但本地无法连接MongoDB Atlas端点。

排查发现:

  • 在VPC内执行ping clusterx-shard-xx-xx.xxxxxx.mongodb.net,主机名解析为私有IP;本地执行时解析为公网IP,导致连接失败。
解决方案

要实现本地通过私有IP连接MongoDB Atlas,可采用以下几种方案:

方案1:配置客户端VPN使用AWS VPC DNS服务器(推荐)

这是最稳定的方案,让客户端通过VPN连接时使用AWS VPC的DNS解析服务,从而获取Atlas的私有IP:

  • 登录AWS控制台,找到对应的客户端VPN端点,修改其DNS服务器设置,填入VPC的DNS服务器地址(通常为VPC CIDR段的第二个IP,比如VPC CIDR是10.0.0.0/16,DNS地址就是10.0.0.2),或者填入AWS Route 53 Resolver的端点IP。
  • 确保客户端VPN的连接配置(比如.ovpn文件)中包含DNS配置,让客户端连接VPN后自动使用指定的DNS服务器。
  • 连接VPN后,重新执行nslookup clusterx-shard-xx-xx.xxxxxx.mongodb.net,确认解析结果为私有IP,再尝试连接MongoDB。

方案2:本地hosts文件手动映射(临时测试用)

适合临时验证场景,手动将Atlas分片域名映射到私有IP:

  • 在VPC内执行nslookup clusterx-shard-xx-xx.xxxxxx.mongodb.net,记录返回的私有IP地址。
  • 编辑本地hosts文件:
    • Windows:C:\Windows\System32\drivers\etc\hosts
    • macOS/Linux:/etc/hosts
  • 添加条目:[私有IP] clusterx-shard-xx-xx.xxxxxx.mongodb.net,替换所有分片的域名和对应私有IP。
  • 保存后,本地访问Atlas时会直接使用私有IP,但需注意:若Atlas集群扩容或维护导致私有IP变更,需手动更新hosts文件。

方案3:Route 53私有托管区(生产级方案)

通过AWS Route 53创建私有域名解析记录,确保VPC内(含VPN客户端)解析Atlas域名返回私有IP:

  • 在Route 53控制台创建私有托管区,域名设置为MongoDB Atlas集群的根域名(比如xxxxxxxxxx.mongodb.net)。
  • 将该私有托管区关联到你的AWS VPC。
  • 在托管区内添加A记录,将每个Atlas分片的域名(如clusterx-shard-xx-xx.xxxxxx.mongodb.net)指向对应的私有IP(从VPC内解析获取)。
  • 确保客户端VPN使用VPC的DNS服务器,这样连接VPN后,解析Atlas域名会优先使用私有托管区的记录,返回私有IP。

内容的提问来源于stack exchange,提问作者Dipendra Dangal

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.12 10:06:11