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

无法从本地Mac连接AWS EC2实例上的PostgreSQL 10问题排查

PostgreSQL远程连接超时排查(AWS EC2 Ubuntu 18环境)

结论先行:不需要为PostgreSQL配置Nginx路由

PostgreSQL基于TCP协议提供服务,直接通过端口访问即可,Nginx默认是HTTP代理,没必要额外配置路由。以下是具体排查步骤:

  • 检查EC2安全组规则细节
    确认入站规则中5432端口的配置:

    • 协议必须选TCP(不是UDP)
    • 源地址如果是0.0.0.0/0要确保规则已应用到当前实例所属的安全组;更安全的做法是限制为你的Mac公网IP
    • 避免规则处于"未生效"状态(比如创建时选错了安全组)
  • 排查Ubuntu系统防火墙(ufw)
    Ubuntu默认可能启用ufw,即使安全组放行,系统防火墙也会拦截端口:

    1. 查看防火墙状态:sudo ufw status
    2. 如果显示active,添加5432端口放行规则:sudo ufw allow 5432/tcp
    3. 重启防火墙生效:sudo ufw reload
  • 验证PostgreSQL监听配置
    确保postgresql.conf的修改已生效:

    1. 执行命令确认监听地址:netstat -tulpn | grep 5432
    2. 输出需包含0.0.0.0:5432和:::5432,若只有127.0.0.1:5432,说明配置未生效,重启PostgreSQL服务:sudo systemctl restart postgresql@10-main
  • 检查VPC网络ACL
    VPC层面的网络ACL是无状态的,入站和出站都需配置:

    • 进入AWS VPC控制台,找到实例所在子网的网络ACL
    • 入站规则添加允许TCP 5432端口(源0.0.0.0/0)
    • 出站规则添加允许所有TCP响应(或至少允许5432端口的出站流量)
  • 排查本地网络限制
    你的Mac所在网络可能存在防火墙或ISP拦截:

    • 切换到手机热点等其他网络测试连接
    • 在EC2实例内部执行telnet 实例公网IP 5432,若能连通则说明问题出在本地到EC2的网络通路

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.11 16:30:45