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

使用TypeORM连接AWS RDS PostgreSQL时出现ETIMEDOUT错误求助

问题描述

启动Node.js + TypeORM项目时,遭遇PostgreSQL连接超时错误:

Error: connect ETIMEDOUT 13.112.12.202:5432
    at TCPConnectWrap.afterConnect [as oncomplete] (node:net:1187:16) {
  errno: -60,
  code: 'ETIMEDOUT',
  syscall: 'connect',
  address: '13.112.12.202',
  port: 5432
}

TypeORM数据源配置如下:

DataSource({
    type: "postgres",
    host: "sugar-index-database-1.cxpnplofhv5c.ap-northeast-1.rds.amazonaws.com",
    port: 5432,
    username: "postgres",
    password: "*****",
    database: "sugar-index-database-1",
    synchronize: true,
    logging: false,
    entities: [User],
    migrations: [],
    subscribers: [],
})

已完成配置:RDS实例设为公开可访问,配置了入站/出站安全规则允许5432端口访问。目标是让Node项目成功启动并连接AWS PostgreSQL实例。


排查与解决步骤

1. 验证DNS解析正确性

先确认RDS域名是否能解析到目标IP,终端执行:

nslookup sugar-index-database-1.cxpnplofhv5c.ap-northeast-1.rds.amazonaws.com

检查返回IP是否为13.112.12.202,若解析异常,尝试切换本地DNS服务器(如8.8.8.8)。

2. 测试端口连通性

用telnet或nc工具测试本地到RDS 5432端口的连通性:

# telnet方式
telnet 13.112.12.202 5432
# nc方式
nc -zv 13.112.12.202 5432

若连接失败,需排查:

  • 安全组入站规则:确认源IP是当前机器的公网IP(或临时设为0.0.0.0/0测试),协议为TCP,端口5432。
  • 本地防火墙/杀毒软件:是否拦截了5432端口的出站请求。
  • VPC网络ACL:若RDS在自定义VPC中,需确保网络ACL的入站、出站规则都允许5432端口流量。

3. 确认RDS实例状态与配置

  • 登录AWS控制台,检查RDS实例状态是否为可用(Available),创建/重启中的实例无法连接。
  • 再次确认实例的公共可访问性为是(在实例“连接性”配置项中查看)。
  • 核对数据库名称:确保配置中的sugar-index-database-1是RDS实例中已存在的数据库(默认postgres数据库可直接使用)。

4. 修正TypeORM配置细节

  • 验证密码正确性:可临时替换为明文测试(测试后务必改回),排除密码输入错误。
  • 添加SSL连接参数:AWS RDS PostgreSQL通常要求SSL连接,修改配置:
DataSource({
    // 原有配置...
    ssl: {
        rejectUnauthorized: false // 临时关闭证书验证用于测试,后续建议配置合法证书
    }
})

未配置SSL是导致连接超时或失败的常见原因。

5. 检查网络环境兼容性

若项目运行在国内网络,需确认是否能正常访问AWS ap-northeast-1区域的服务,必要时配置代理。


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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.03 20:20:25