psql:无法连接到服务器:网络不可达

psql:无法连接到服务器:网络不可达

我知道这是一个重复的问题,但他们的解决方案不起作用,

我正在做的是从我的本地 ubunut 机器连接到远程 Postgresql 数据库:

psql -h x.x.x.x -U username

但它给出了错误:

> psql: could not connect to server: Network is unreachable
    Is the server running on host "x.x.x.x" and accepting
    TCP/IP connections on port 5432?

我做了什么,

我更新了我的配置文件&PostgreSQL 配置文件文件并使用以下命令重新启动服务器:

/etc/init.d/postgresql restart

这说好的,重新启动

我从本地机器对远程 vps 进行了 NMAP 检查,显示以下输出:

root@host:~# nmap x.x.x.x -p 5432
Starting Nmap 5.21 ( http://nmap.org ) at 2015-11-19 15:49 IST
 Nmap scan report for x.x.x.x
 Host is up (0.16s latency).
 PORT     STATE    SERVICE
 5432/tcp filtered postgresql

输出

# netstat -plnt |grep 5432

tcp  0 0  0.0.0.0:5432   0.0.0.0:*  LISTEN      9167/postgres            
tcp6 0 0  :::5432        :::*  LISTEN      9167/postgres

我该如何解决该问题?

已编辑 添加iptables -L输出: 在此处输入图片描述

答案1

您没有提到在客户端和数据库服务器之间有防火墙,但我可以看到您有iptables标签。

正如错误消息所说,您需要确保您可以从客户端访问服务器 xxxx,特别是 TCP 端口 5432(默认 postgresql 端口)。

如果您在数据库机器上使用 iptables,则可能需要添加如下规则:

-I INPUT -p tcp --dport 5432 -j ACCEPT

您可以通过添加 来通过源 IP 地址来限制此规则-s y.y.y.y

如果您处于受信任的网络中,您甚至可以禁用防火墙。

相关内容