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

Oracle Cloud Linux服务器远程连接PSQL失败问题求助

PostgreSQL远程连接Oracle Cloud服务器失败排查方案

问题概述

在Oracle Cloud Ubuntu服务器部署PostgreSQL 15.2后,本地连接正常,但执行远程连接命令:

psql -h 129.213.17.88 -p 5432 -d breedingdb -U postgres

报错:

psql: error: connection to server at "129.213.17.88", port 5432 failed: No route to host
    Is the server running on that host and accepting TCP/IP connections?

已完成以下配置:

  • 修改postgresql.conf设置listen_addresses = '*'、port = 5432并重启服务
  • 修改pg_hba.conf添加host all all 0.0.0.0/0 md5规则
  • 配置Oracle Cloud入站规则
  • netstat显示PostgreSQL已监听0.0.0.0:5432和:::5432
  • 公网IP可ping通,但nmap扫描显示5432端口为closed

解决步骤

1. 检查服务器本地防火墙规则

Oracle Cloud安全列表之外,服务器本地的ufw或iptables可能拦截了5432端口:

  • 查看ufw状态:
    sudo ufw status
    
    如果状态为active,添加并生效5432端口规则:
    sudo ufw allow 5432/tcp
    sudo ufw reload
    
  • 若使用iptables,检查现有规则:
    sudo iptables -L -n
    
    添加允许规则并保存:
    sudo iptables -A INPUT -p tcp --dport 5432 -j ACCEPT
    sudo netfilter-persistent save
    

2. 验证Oracle Cloud安全列表配置

确认安全列表的入站规则完全正确:

  • 规则需包含:协议TCP,端口范围5432,源地址0.0.0.0/0(或指定你的本地IP),动作允许
  • 注意:安全列表是绑定到子网的,需确认服务器所在子网的安全列表已配置该规则,而非其他子网

3. 确认公网IP与实例的绑定关系

检查服务器的公网IP是否正确关联:

  • 在服务器上执行命令确认当前公网IP:
    curl ifconfig.me
    
  • 登录Oracle Cloud控制台,查看实例详情,确认弹性IP已成功附加到该服务器实例

4. 换工具测试端口连通性

用telnet或nc替代nmap测试,避免扫描工具的误判:

  • telnet测试:
    telnet 129.213.17.88 5432
    
  • nc测试:
    nc -zv 129.213.17.88 5432
    

如果仍不通,尝试切换本地网络(如手机热点)排查是否是本地网络的防火墙或运营商屏蔽问题

5. 检查PostgreSQL服务日志与监听进程

确认PostgreSQL服务正常运行且配置生效:

  • 查看监听进程详情,确保是postgres进程在监听5432端口:
    ss -tulpn | grep postgres
    
  • 查看PostgreSQL日志,检查重启后的状态与报错信息:
    sudo tail -n 20 /var/log/postgresql/postgresql-15-main.log
    

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.31 05:39:54