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

OVH主机Ubuntu 23.04上PostgreSQL远程连接失败求助

排查PostgreSQL远程连接超时问题

1. 确认postgresql.conf的监听配置

  • 打开配置文件:sudo nano /etc/postgresql/<版本号>/main/postgresql.conf
  • 找到listen_addresses,确保设置为*(允许所有IP访问)或者指定你需要开放的IP,而非默认的localhost
  • 修改后重启PostgreSQL服务:sudo systemctl restart postgresql

2. 检查pg_hba.conf的访问规则

  • 打开配置文件:sudo nano /etc/postgresql/<版本号>/main/pg_hba.conf
  • 添加允许远程访问的规则,例如:
    host    all             all             0.0.0.0/0               scram-sha-256
    
    (0.0.0.0/0允许所有IPv4远程连接,可根据需求改为特定IP段,比如192.168.1.0/24)
  • 修改后重启PostgreSQL服务使规则生效

3. 验证Ubuntu本地防火墙(ufw)规则

  • 确保5432端口已开放:sudo ufw allow 5432/tcp
  • 再次检查状态:sudo ufw status,确认输出中存在5432/tcp的允许规则
  • 若之前规则有误,可先删除旧规则再重新添加:sudo ufw delete allow 5432/tcp

4. 检查OVH服务器的硬件防火墙

  • 登录OVH管理控制台,找到对应服务器的「防火墙」设置
  • 确认已添加允许入站的5432/tcp规则,来源可设为0.0.0.0/0或特定IP
  • 注意:OVH硬件防火墙规则生效可能需要几分钟,修改后等待片刻再测试

5. 验证PostgreSQL服务的监听状态

  • 执行命令:sudo netstat -tulpn | grep 5432
  • 输出需显示postgresql进程监听0.0.0.0:5432或指定的公网IP,而非仅监听127.0.0.1:5432
  • 若仅监听localhost,说明postgresql.conf配置未生效,重新检查配置并重启服务

6. 测试服务器本地连接

  • 在服务器本地执行:psql -U <你的用户名> -d <数据库名>,确认PostgreSQL服务本身运行正常
  • 若本地连接失败,优先解决服务启动问题,再排查远程连接

7. 确认公网IP正确性

  • 通过curl ifconfig.me查看服务器公网IP,确保pgAdmin中填写的是该IP,而非服务器内网IP

connection timeout expired和telnet连接失败的核心原因通常是端口未对外开放、服务未监听公网IP,按照上述步骤逐一排查即可定位问题。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.27 08:32:41