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

通过反向代理连接PostgreSQL时出现TCP/IP连接拒绝问题求助

反向代理访问PostgreSQL连接拒绝问题排查步骤

1. 验证反向代理端口的基础连通性

  • 在本地执行telnet <FQDN_2> 5432或nc -zv <FQDN_2> 5432(根据系统选择工具),测试能否连接到代理的5432端口:
    • 如果返回连接拒绝,说明反向代理未监听5432端口,或代理所在机器的防火墙拦截了该端口的入站请求。需检查代理配置的监听规则(如Nginx的listen、HAProxy的bind),以及代理机器的防火墙策略。

2. 确认反向代理的TCP转发配置正确性

  • 确保代理配置的是TCP协议转发:PostgreSQL使用自定义TCP协议,不能用HTTP/HTTPS转发规则。例如Nginx需启用stream模块配置TCP转发,HAProxy需设置mode tcp。
  • 在代理机器上测试到目标服务器的连通性:执行telnet <FQDN_1> 5432,确认代理能直接访问Windows服务器的5432端口。如果此步骤失败,需排查代理到<FQDN_1>的网络链路问题。
  • 核对转发目标:确认代理规则是将5432端口流量转发至<FQDN_1>:5432,而非错误的IP或端口。

3. 二次校验PostgreSQL的监听与权限配置

  • 检查postgresql.conf:确认listen_addresses = '*',且修改后已重启PostgreSQL服务(配置变更需重启生效)。
  • 检查pg_hba.conf:确认存在允许反向代理IP(<IP_2>)访问的规则,示例格式:
    host    postgres     postgres     <IP_2>/32     scram-sha-256
    
    修改后需重载配置(执行pg_ctl reload或重启服务)。
  • 在Windows服务器上执行netstat -ano | findstr :5432,确认PostgreSQL进程正在监听0.0.0.0:5432(所有IP),而非仅127.0.0.1。

4. 排查Windows服务器的额外网络限制

  • 确认Windows防火墙的入站规则已明确允许5432端口的TCP连接,且未针对<IP_2>设置例外拦截。
  • 若服务器启用了网络策略组(GPO),检查是否存在限制代理IP访问的策略。

5. 客户端侧的快速排查

  • 尝试用代理的IP直接连接:psql -h <IP_2> -p 5432 -U postgres postgres,排除DNS解析异常导致的问题。
  • 检查本地防火墙是否拦截了psql的出站连接请求。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.21 07:15:20