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-2560.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
相关产品推荐
相关产品推荐

