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

无法连接远程PostgreSQL数据库问题排查求助

远程PostgreSQL连接超时问题排查与解决

已完成的排查动作

  • netstat 监听状态:PostgreSQL 已正常监听所有网卡的5432端口
    tcp        0      0 0.0.0.0:5432            0.0.0.0:*               LISTEN      32707/postgres
    
  • postgresql.conf 监听配置:已设置允许监听所有地址
    listen_addresses = "*"
    
  • pg_hba.conf 访问控制:已配置允许指定主机地址(xx.xx.xx.xx)的所有用户访问所有数据库
    host    all             all             xx.xx.xx.xx/0         trust
    
  • 防火墙(ufw)规则:已开放5432端口对指定主机地址的访问
    5432                       ALLOW       xx.xx.xx.xx
    
  • 测试结果:重启PostgreSQL服务后,执行psql -h yy.yy.yy.yy -p 5432连接超时;SSH可正常连接服务器,telnet yy.yy.yy.yy 5432挂起;本地网络内其他机器也无法连接该数据库。

下一步排查与解决步骤

  1. 确认目标服务器地址正确性

    • 核实yy.yy.yy.yy是否为服务器的真实公网/内网IP:服务器端执行curl ifconfig.me获取公网IP,对比是否与yy.yy.yy.yy一致;若为内网环境,确认该IP是否为服务器内网地址,且本地机器与服务器处于同一内网段。
  2. 检查云服务商安全组/网络ACL

    • 若服务器部署在云平台(如AWS、阿里云等),需登录云控制台检查安全组规则,确认是否允许来源IP(xx.xx.xx.xx)访问5432端口;部分平台的网络ACL也可能限制端口流量,需同步排查。
  3. 修正pg_hba.conf规则格式

    • 注意xx.xx.xx.xx/0的写法逻辑:/0代表允许所有IP访问,若你的主机是单个固定IP,应改为xx.xx.xx.xx/32以精准匹配;修改后重启PostgreSQL服务,再次测试连接。
    • 确认配置生效:执行postgres -c "show hba_file"获取配置文件路径,检查修改内容是否保存正确,且服务已完成重启。
  4. 验证服务器本地连通性

    • 在服务器本地执行psql -h localhost -p 5432,确认PostgreSQL服务本身可正常访问,排除服务异常问题;
    • 执行telnet localhost 5432,验证本地端口监听正常。
  5. 排查网络路由与丢包

    • 本地机器执行traceroute yy.yy.yy.yy(Linux/macOS)或tracert yy.yy.yy.yy(Windows),追踪数据包传输路径,确认在哪个节点出现丢包;
    • 确认本地机器的真实IP:执行curl ifconfig.me获取本地公网IP,对比pg_hba.conf和ufw规则中的xx.xx.xx.xx是否一致。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.16 05:22:39