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

Kubuntu22.04无法连接MongoDB Atlas集群,请求技术协助

问题分析

所有连接失败的核心原因是DNS解析超时:无论是Compass抛出的queryTxt ETIMEOUT,还是pymongo返回的DNS超时错误,都说明本地DNS服务器(127.0.0.53,即systemd-resolved服务)无法解析MongoDB Atlas的SRV记录。

解决方案

1. 更换公共DNS服务器

本地默认DNS无法解析Atlas的SRV记录,换成公共DNS即可快速解决:

  • 编辑/etc/systemd/resolved.conf文件,修改或添加以下配置:
    DNS=8.8.8.8 1.1.1.1
    
  • 重启DNS服务使配置生效:
    sudo systemctl restart systemd-resolved
    
  • 验证解析效果:执行nslookup sample.3a5djse.mongodb.net,如果返回正常的集群节点IP列表,说明DNS配置已生效。

2. 使用标准连接字符串(绕过SRV解析)

如果DNS问题暂时无法解决,可以直接使用Atlas提供的非SRV连接字符串,跳过SRV解析步骤:

  • 登录MongoDB Atlas控制台,进入目标集群的「Connect」页面
  • 选择「Connect with MongoDB Compass」,切换到「Standard Connection String」选项
  • 复制生成的完整连接字符串(格式示例:mongodb://plutoze:<password>@sample-shard-00-00.3a5djse.mongodb.net:27017,sample-shard-00-01.3a5djse.mongodb.net:27017,sample-shard-00-02.3a5djse.mongodb.net:27017/test?ssl=true&replicaSet=atlas-xxxxxx-shard-0&authSource=admin&retryWrites=true&w=majority)
  • 替换字符串中的<password>后,直接用于Compass、mongosh或pymongo连接。

3. 检查Atlas IP白名单

确保你的设备公网IP已添加到Atlas集群的IP白名单中:

  • 登录Atlas控制台,进入集群的「Network Access」页面
  • 点击「Add IP Address」,添加当前设备的公网IP(可通过curl ifconfig.me命令获取)
  • 保存配置后重新尝试连接。

4. 验证网络连通性

DNS解析正常后,检查设备能否访问Atlas集群的端口:

nc -zv sample.3a5djse.mongodb.net 27017

如果输出succeeded!,说明网络连通正常。

注意事项

本地mongod.conf是针对本地MongoDB服务的配置,和连接远程Atlas集群无关,无需修改该文件。

内容的提问来源于stack exchange,提问作者Aditya N

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.29 21:23:37