我在Ubuntu A主机使用 ping , telnet 都可连到 B 主机

以及 Ubuntu A 主机的 iptables 与 ufw 的配置:

接着,这是 Ubuntu B 主机的 postgresql 状态

且Ubuntu B 主机的 pg_hba.conf 有设置让Ubuntu A主机的IP连线,以及postgresql.conf的listen_addresses = \'*\' 也设置好了

但我在Ubuntu A主机使用 psql 就是连不到,且我 Container 的应用系统也连不到

而且这看起来有建立连线,但就是无法进入postgresql中,也不会写入任何LOG想请问各位,这是什么问题啊,我已经处理这问题处理了15天了,我还重新安装postgresql,也没用....

1 个回答

0

DennisLu

iT邦好手 1 级 ‧ 2024-09-24 16:59:03

pg_hba.conf 有修改要记得reload喔。

测试错误可以pg_hba.conf 对你的A的IP先改成 trust,
Ubuntu A ufw暂时关,
再来测试看看。先全开,由外而内一道一道紧缩直到找到不通的原因。

PostgreSQL 如果有连线,即使失败也是有错误跟失败原因(包含是因为pg_hba.conf规则阻挡都会跟你说是哪一条),PostgreSQL若完全没log代表碰都没碰到可能性比较高。

你看到的错误讯息是
connect_timeout=30来的,你任意指向不存在的IP,也是一样的结果。
真的有连上但有错误,也不用到30秒的,而且会提示错什么。

判断你的问题偏向网路成分比较高。