无法远程连接到 Postgresql 9.5 实例

无法远程连接到 Postgresql 9.5 实例

我正在努力连接到在 Ubuntu 16.10 上运行的远程 Postgres 9.5 实例。
通常:

psql:无法连接到服务器:连接超时
服务器是否在主机“xx.xx.xx.xx”上运行并在端口 5432 上接受 TCP/IP 连接?

我的 postgresql.conf 包括

listen_addresses='*'

由输出确认

netstat -nlp | grep 5432
tcp        0      0 0.0.0.0:5432            0.0.0.0:*               LISTEN      22981/postgres      
tcp6       0      0 :::5432                 :::*                    LISTEN      22981/postgres      
unix  2      [ ACC ]     STREAM     LISTENING     3320886  22981/postgres       /var/run/postgresql/.s.PGSQL.5432

除了我的特定 IP 地址和范围之外,我还尝试了 pg_hba.conf 中的以下条目:

host    all             all             0.0.0.0/0               md5                                                                                                                                                                                       
host    all             all             ::/0                    md5
host    all             all             all                     md5
host    all             all             *                       md5 

我已经禁用 ufw 并清除了所有 iptables 规则:

iptables -L -n
Chain INPUT (policy ACCEPT)
target     prot opt source               destination         

Chain FORWARD (policy ACCEPT)
target     prot opt source               destination         

Chain OUTPUT (policy ACCEPT)
target     prot opt source               destination 

从我的工作站使用 nmap 进行扫描:

nmap xx.xx.xx.xx -p5432

Starting Nmap 7.01 ( https://nmap.org ) at 2017-02-13 09:17 SAST
Nmap scan report for xx.xx.xx.xx
Host is up (0.0074s latency).
PORT     STATE    SERVICE
5432/tcp filtered postgresql

telnet 到 xx.xx.xx.xx 5432 次。

SE 上几乎所有类似的问题似乎都可以通过

listen_addresses='*'

这不是问题。

更改 Postgres 监听的端口没有任何效果。

这是具有面向公众的网络接口的专用服务器。
服务器运行 SSH 和 Nginx,两者都可以通过接口进行远程访问。

对此真的很困惑,非常感谢您的帮助。
谢谢

编辑: 尝试使用评论中建议的 tcpdump 开关通过 psql 和 telnet 进入端口 5432 时的 tcpdump 输出:

tcpdump -i enp2s0 -s0 -XX -vv -n "tcp port 5432"
tcpdump: listening on enp2s0, link-type EN10MB (Ethernet), capture size 262144 bytes
^C
0 packets captured
2 packets received by filter
0 packets dropped by kernel

psql 超时后按 Ctrl-C

答案1

事实证明,我的托管服务提供商未经通知就将服务器移到了托管防火墙后面。

相关内容