无法从外部主机连接到 PostgreSQL 服务器

Unable to connect to PostgreSQL server from external host connection

我在家里的 ubuntu 电脑上有一个 postgresql 服务器 运行ning。

我已经将服务器设置为 post-转发以接受外部连接。

但由于某些原因,我只能在本地电脑上连接它,我似乎无法从外部连接到它。

这是我对 /etc/postgresql/12/main/pg_hba.conf

的设置
# TYPE  DATABASE        USER            ADDRESS                 METHOD

# "local" is for Unix domain socket connections only
local   all             all                                     password
# IPv4 local connections:
host    all             all             127.0.0.1/32            password
# IPv6 local connections:
host    all             all             ::1/128                 password
# Allow replication connections from localhost, by a user with the
# replication privilege.
local   replication     all                                     password
host    replication     all             127.0.0.1/32            password
host    replication     all             ::1/128                 password

这是 /etc/postgresql/12/main/postgresql.conf

的设置
listen_addresses = '*'
port = 5432

我已经将我的外部端口设置为 2345,并在我的路由器上完成了端口转发。

当我运行、psql -h 127.0.0.1 -p 5432 -d postgres -U postgres时,我可以连接到服务器。

但是当我运行,psql -h xxx.xx.xx.xx -p 2345 -d postgres -U postgres(ip地址隐藏)时,我得到以下错误

psql: error: could not connect to server: could not connect to server: Operation timed out
        Is the server running on host "xxx.xx.xx.xx" and accepting
        TCP/IP connections on port 2345?

我也不认为我的路由器有任何问题,因为我正在使用它来转发 SSH 连接并且我可以很好地从外部连接进行连接。

我的设置有什么问题?

与@anarchy 进行了交谈,他启用了简单的防火墙 (uwf)。 向防火墙添加规则有效。

检查使用网络实用程序打开了哪些端口

netstat -lntu

检查 UFW 是否 运行

sudo uwf status

如果启用,请添加您要打开的端口

sudo ufw allow 22

然后重新加载防火墙

sudo ufw reload