You need to enable JavaScript to run this app. EC2部署的MongoDB连接Node.js应用报无法使用IPv4、querySrv ENOTFOUND错误
优惠活动
大模型
产品
解决方案
定价
更多

EC2部署的MongoDB连接Node.js应用报无法使用IPv4、querySrv ENOTFOUND错误

EC2 MongoDB连接故障排查解决步骤

你遇到的querySrv ENOTFOUND报错核心原因是你使用了MongoDB的+srv格式连接串,这种格式默认会查询_mongodb._tcp.前缀的SRV DNS记录,而你自行部署在EC2上的MongoDB默认没有配置对应SRV记录,所以会触发该错误,可按以下步骤逐一排查修复:

1. 修正连接串格式

  • 放弃使用mongodb+srv://开头的SRV连接格式,改用标准连接格式:
    mongodb://<数据库账号>:<数据库密码>@<EC2公网IP/EC2公网域名>:27017/<目标数据库名>?authSource=admin
  • 显式指定MongoDB默认端口27017,不需要依赖DNS解析获取连接信息。

2. 排查IPv4连接限制

如果修改连接串后仍然提示无法使用IPv4连接,按以下项检查配置:

  • 检查EC2安全组入站规则:确认开放了27017端口的入站权限,测试阶段可临时将源地址设为0.0.0.0/0,验证连通后再缩小为Node.js应用的公网IP。
  • 检查MongoDB绑定地址:登录EC2实例,编辑MongoDB默认配置文件/etc/mongod.conf,将bindIp参数从默认的127.0.0.1修改为0.0.0.0(允许所有IPv4地址连接),修改完成后执行sudo systemctl restart mongod重启服务生效。
  • 检查EC2内部防火墙:确认EC2实例的iptables/ufw没有拦截27017端口,Ubuntu系统可执行sudo ufw allow 27017临时放通端口验证。

3. 连通性验证

  • 在运行Node.js应用的机器上执行telnet <EC2公网IP> 27017,如果能成功连接说明网络层面没有问题,否则需要回头检查前面的网络配置项。
  • 可直接用MongoDB本地客户端工具连接EC2上的MongoDB实例,验证账号密码、数据库权限配置正确后,再将对应参数填入Node.js的连接配置中。

可选:需要使用SRV连接的配置方法

如果你确实需要用+srv格式的连接串,可以在你的域名解析服务商处添加一条SRV记录:记录名为_mongodb._tcp.<你的自定义域名>,端口设为27017,目标地址填写你的EC2公网域名,等待DNS解析生效后即可正常使用SRV格式连接串。


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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.08 22:54:02