首页 > 解决方案 > psql:无法连接到服务器:连接被拒绝

问题描述

我可以访问远程 postgesqlpsql -h xxx.xxx.xxx.xxx -p 1486 postgres

它显示了这个错误

psql: could not connect to server: Connection refused
Is the server running on host "xxx.xxx.xxx.xxx" and accepting
TCP/IP connections on port 1486?

postgresql.conf文件

listen_addresses = '*'

pg_hba.conf文件

host    all             all             0.0.0.0/0          md5

同时申请开放1486端口

iptables -A INPUT -p tcp -s 0/0 --sport 1024:65535 -d X.X.X.X  --dport 1486 -m state --state NEW,ESTABLISHED -j ACCEPT
iptables -A OUTPUT -p tcp -s X.X.X.X --sport 1486 -d 0/0 --dport 1024:65535 -m state --state ESTABLISHED -j ACCEPT

它返回相同的错误。

标签: postgresql

解决方案


很难给出一个规范的答案,但这里有一些事情可以尝试(其中一些可能不适用/可能):

  • ping 有问题的 IP 地址 - 服务器是否已启动/可访问?盒子上是否还有其他可以访问的服务?
  • 假设您具有控制台或 ssh 访问权限,则从服务器本身的本地连接进行连接
  • 如果您具有本地访问权限并且基于网络的访问权限不起作用,是否允许 unix 域套接字访问,如果允许,那是否有效?
  • 检查 postgresql.conf 中的端口配置 - 它真的在您认为的位置吗?
  • 自上次服务器重新启动以来,配置文件是否已被编辑?您列出的参数都需要重新启动服务器才能生效。
  • 它实际上是在使用您认为的配置文件吗?运行“显示配置文件;” 如果您可以建立本地连接,超级用户会有所帮助
  • telnet 1486 会发生什么?您是否收到网络连接或类似错误?
  • 获取 pcap 并检查网络级别发生的情况(wireshark 或 tcpdump 会有所帮助)

推荐阅读