psql:无法连接到服务器:没有到主机的路由

psql:无法连接到服务器:没有到主机的路由

我知道这是一个重复的问题,但我没有找到任何解决方案

我想在 Debian 9 中为 PostgreSQL 9.6 设置主从复制。但从服务器无法连接主服务器。

xx.xxx.xxx.205 = master
xx.xxx.xxx.206 = slave


    root@master:~# netstat -plntu |grep 5432
tcp        0      0 0.0.0.0:5432            0.0.0.0:*               LISTEN      6290/postgres
tcp6       0      0 :::5432                 :::*                    LISTEN      6290/postgres

root@slave:~# netstat -plntu |grep 5432
tcp        0      0 0.0.0.0:5432            0.0.0.0:*               LISTEN      31961/postgres
tcp6       0      0 :::5432                 :::*                    LISTEN      31961/postgres

我明白了错误优先当我尝试将 PostgreSQL 数据从 MASTER 复制到 SLAVE 时。

postgres@slave:~/9.6$ pg_basebackup -h xx.xxx.xxx.205 -D ~postgres/9.6/main/ -X stream -P
pg_basebackup: could not connect to server: could not connect to server: No route to host
        Is the server running on host "xx.xxx.xxx.205" and accepting
        TCP/IP connections on port 5432?

之后我检查了postgresql上的连接。

我的服务器中有firewalld和ufw。

我编辑了pg_hba.conf 和 postgresql.conf在两个服务器上都这样。

host     all         all        xx.xxx.xxx.205/32 md5
host     all         all        xx.xxx.xxx.206/32 md5

PostgreSQL 配置文件

listen_addresses = '*'

我可以从主机连接从机,它工作正常。

root@master:~# psql -h xx.xxx.xxx.206 -p 5432
Password:

但我无法从从机连接到主机。

root@slave:~# psql -h xx.xxx.xxx.205 -p 5432
psql: could not connect to server: No route to host
        Is the server running on host "xx.xxx.xxx.205" and accepting
        TCP/IP connections on port 5432?

请帮我..

答案1

最后我找到了解决方案,我的 Iptables 规则在 Master 和 Slave 上是不同的。

iptables -L INPUT


iptables -P INPUT ACCEPT
iptables -P OUTPUT ACCEPT
iptables -P FORWARD ACCEPT
iptables -F INPUT 
iptables -F OUTPUT
iptables  -F FORWARD

iptables -L INPUT

相关内容