Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/email/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
无法从外部主机连接连接到PostgreSQL server_Postgresql_Psql_Portforwarding - Fatal编程技术网

无法从外部主机连接连接到PostgreSQL server

无法从外部主机连接连接到PostgreSQL server,postgresql,psql,portforwarding,Postgresql,Psql,Portforwarding,我在家里的ubuntu电脑上运行着postgresql服务器 我已经将服务器设置为post forward以接受外部连接 但由于某些原因,我只能在本地pc上连接到它,似乎无法通过外部连接连接到它 以下是我对/etc/postgresql/12/main/pg_hba.conf的设置 # TYPE DATABASE USER ADDRESS METHOD # "local" is for Unix doma

我在家里的ubuntu电脑上运行着postgresql服务器

我已经将服务器设置为post forward以接受外部连接

但由于某些原因,我只能在本地pc上连接到它,似乎无法通过外部连接连接到它

以下是我对
/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
listen_addresses = '*'
port = 5432
以下是
/etc/postgresql/12/main/postgresql.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
listen_addresses = '*'
port = 5432
我已将外部端口设置为
2345
,并在路由器上完成端口转发

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

但是当我运行时,
psql-hxxx.xx.xx-p2345-dpostgres-upostgres
(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)。 将规则添加到防火墙有效

要检查,请使用network utility检查打开了哪些端口

netstat -lntu
检查UFW是否正在运行

sudo uwf status
如果已启用,请添加要打开的端口

sudo ufw allow 22
然后重新加载防火墙

sudo ufw reload

在本地时,您可以使用0.0.0.0或计算机的IP进行连接吗?在配置的ipv4部分中,它设置为仅允许从127.0.0.1
主机连接所有127.0.0.1/32密码
尝试将其更改为公共IP。@TalhaJunaid我可以从本地计算机使用0.0.0进行连接,但是当我将127.0.0.1更改为外部IP地址时,0.0.0.0和外部IP地址都不起作用。尝试将IP设置为
0.0.0/0
我可以连接到0.0.0.0,但我无法使用外部IP和外部端口连接,我可以看出它正在尝试连接,它不会像使用其他端口一样立即抛出错误。。