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

MongoDB Atlas连接遇ETIMEOUT错误,已尝试多方案仍未解决

无法连接MongoDB Atlas的问题排查与Node.js版本疑问

之前MongoDB Atlas可正常使用,但目前已无法连接一段时间,使用应用连接字符串、MongoDB Compass连接字符串及MongoDB Shell连接字符串时,均出现ETIMEOUT错误。

已尝试的操作

  • 创建使用不同云服务商及区域/可用区的新MongoDB Atlas账号
  • Windows Defender出站规则中已存在MongoDB Atlas的连接规则(远程端口27015-27017),推测为安装时自动创建,防火墙应无问题
  • 将0.0.0.0/0加入白名单(虽存在安全风险,但当前无重要数据)
  • 使用无需URL编码的无特殊字符密码

当前软件版本

  • nodejs: v16.13.0
  • express: v4.18.1
  • mongoose: v6.5.2

疑问

了解到降低Node.js版本可能解决该问题,若此方案可行,请问应降级至哪个版本?

MongoDB Compass连接字符串

mongodb+srv://brohjoe1:password@cluster0.4ross7o.mongodb.net/auth

具体错误信息

C:\Users\brohj\WebstormProjects\Firebase\redEyeMedia\node_modules\mongoose\lib\connection.js:824
  const serverSelectionError = new ServerSelectionError();
                               ^

MongooseServerSelectionError: Could not connect to any servers in your MongoDB Atlas cluster. One common reason is that you're trying to access the database from an 
IP that isn't whitelisted. Make sure your current IP address is on your Atlas cluster's IP whitelist: https://docs.atlas.mongodb.com/security-whitelist/
    at NativeConnection.Connection.openUri (C:\Users\brohj\WebstormProjects\Firebase\redEyeMedia\node_modules\mongoose\lib\connection.js:824:32)
    at C:\Users\brohj\WebstormProjects\Firebase\redEyeMedia\node_modules\mongoose\lib\index.js:380:10
    at C:\Users\brohj\WebstormProjects\Firebase\redEyeMedia\node_modules\mongoose\lib\helpers\promiseOrCallback.js:41:5
    at new Promise (<anonymous>)
    at promiseOrCallback (C:\Users\brohj\WebstormProjects\Firebase\redEyeMedia\node_modules\mongoose\lib\helpers\promiseOrCallback.js:40:10)
    at Mongoose._promiseOrCallback (C:\Users\brohj\WebstormProjects\Firebase\redEyeMedia\node_modules\mongoose\lib\index.js:1225:10)
    at Mongoose.connect (C:\Users\brohj\WebstormProjects\Firebase\redEyeMedia\node_modules\mongoose\lib\index.js:379:20)
    at Object.<anonymous> (C:\Users\brohj\WebstormProjects\Firebase\redEyeMedia\app.js:11:10)
    at Module._compile (node:internal/modules/cjs/loader:1101:14)
    at Object.Module._extensions..js (node:internal/modules/cjs/loader:1153:10) {
  reason: TopologyDescription {
    type: 'ReplicaSetNoPrimary',
    servers: Map(3) {
      'ac-v2tectr-shard-00-01.4ross7o.mongodb.net:27017' => ServerDescription {
        _hostAddress: HostAddress {
          isIPv6: false,
          host: 'ac-v2tectr-shard-00-01.4ross7o.mongodb.net',
          port: 27017
        },
        address: 'ac-v2tectr-shard-00-01.4ross7o.mongodb.net:27017',
        type: 'Unknown',
        hosts: [],
        passives: [],
        arbiters: [],
        tags: {},
        minWireVersion: 0,
        maxWireVersion: 0,
        roundTripTime: -1,
        lastUpdateTime: 1097611983,
        lastWriteDate: 0,
        error: MongoNetworkError: connect ETIMEDOUT 35.239.246.213:27017
            at connectionFailureError (C:\Users\brohj\WebstormProjects\Firebase\redEyeMedia\node_modules\mongodb\lib\cmap\connect.js:379:20)
            at TLSSocket.<anonymous> (C:\Users\brohj\WebstormProjects\Firebase\redEyeMedia\node_modules\mongodb\lib\cmap\connect.js:302:22)
            at Object.onceWrapper (node:events:510:26)
            at TLSSocket.emit (node:events:390:28)
            at emitErrorNT (node:internal/streams/destroy:157:8)
            at emitErrorCloseNT (node:internal/streams/destroy:122:3)
            at processTicksAndRejections (node:internal/process/task_queues:83:21) {
          [Symbol(errorLabels)]: Set(0) {}
        }
      },
      'ac-v2tectr-shard-00-02.4ross7o.mongodb.net:27017' => ServerDescription {
        _hostAddress: HostAddress {
          isIPv6: false,
          host: 'ac-v2tectr-shard-00-02.4ross7o.mongodb.net',
          port: 27017
        },
        address: 'ac-v2tectr-shard-00-02.4ross7o.mongodb.net:27017',
        type: 'Unknown',
        hosts: [],
        passives: [],
        arbiters: [],
        tags: {},
        minWireVersion: 0,
        maxWireVersion: 0,
        roundTripTime: -1,
        lastUpdateTime: 1097611977,
        lastWriteDate: 0,
        error: MongoNetworkError: connect ETIMEDOUT 35.232.109.33:27017
            at connectionFailureError (C:\Users\brohj\WebstormProjects\Firebase\redEyeMedia\node_modules\mongodb\lib\cmap\connect.js:379:20)
            at TLSSocket.<anonymous> (C:\Users\brohj\WebstormProjects\Firebase\redEyeMedia\node_modules\mongodb\lib\cmap\connect.js:302:22)
            at Object.onceWrapper (node:events:510:26)
            at TLSSocket.emit (node:events:390:28)
            at emitErrorNT (node:internal/streams/destroy:157:8)
            at emitErrorCloseNT (node:internal/streams/destroy:122:3)
            at processTicksAndRejections (node:internal/process/task_queues:83:21) {
          [Symbol(errorLabels)]: Set(0) {}
        }
      },
      'ac-v2tectr-shard-00-00.4ross7o.mongodb.net:27017' => ServerDescription {
        _hostAddress: HostAddress {
          isIPv6: false,
          host: 'ac-v2tectr-shard-00-00.4ross7o.mongodb.net',
          port: 27017
        },
        address: 'ac-v2tectr-shard-00-00.4ross7o.mongodb.net:27017',
        type: 'Unknown',
        hosts: [],
        passives: [],
        arbiters: [],
        tags: {},
        minWireVersion: 0,
        maxWireVersion: 0,
        roundTripTime: -1,
        lastUpdateTime: 1097612045,
        lastWriteDate: 0,
        error: MongoNetworkError: connect ETIMEDOUT 35.238.72.187:27017
            at connectionFailureError (C:\Users\brohj\WebstormProjects\Firebase\redEyeMedia\node_modules\mongodb\lib\cmap\connect.js:379:20)
            at TLSSocket.<anonymous> (C:\Users\brohj\WebstormProjects\Firebase\redEyeMedia\node_modules\mongodb\lib\cmap\connect.js:302:22)
            at Object.onceWrapper (node:events:510:26)
            at TLSSocket.emit (node:events:390:28)
            at emitErrorNT (node:internal/streams/destroy:157:8)
            at emitErrorCloseNT (node:internal/streams/destroy:122:3)
            at processTicksAndRejections (node:internal/process/task_queues:83:21) {
          [Symbol(errorLabels)]: Set(0) {}
        }
      }
    },
    stale: false,
    compatible: true,
    heartbeatFrequencyMS: 10000,
    localThresholdMS: 15,
    setName: 'atlas-bt7sor-shard-0',
    logicalSessionTimeoutMinutes: undefined
  },
  code: undefined
}

解决方案建议

从错误信息看,核心是ETIMEDOUT网络连接超时,降级Node.js版本确实可能解决部分兼容性问题:

  • 优先推荐降级到Node.js 16.20.x(Node.js 16系列的最新LTS版本),这个版本修复了16早期版本的一些网络相关bug,和mongoose 6.5.2的兼容性更稳定。
  • 如果还是不行,可以尝试降级到Node.js 14.21.x(Node.js 14系列的最新LTS版本),mongoose 6.x完全兼容该版本,很多用户反馈过类似超时问题在切换到14版本后解决。

另外补充两点排查方向:

  1. 用ping ac-v2tectr-shard-00-00.4ross7o.mongodb.net或者telnet ac-v2tectr-shard-00-00.4ross7o.mongodb.net 27017测试节点连通性,确认不是本地网络运营商的端口限制。
  2. 换一个网络环境(比如手机热点)尝试连接,排除本地网络的问题。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.22 12:45:51