无法打开端口

无法打开端口

我一直在努力打开端口 5432 以进行远程 PostgreSQL 访问。我将其安装在 Ubuntu 10.04 台式机上。

这是外壳日志:

xybrek@ubuntu:~$ sudo ufw allow 5432
[sudo] password for xybrek: 
Skipping adding existing rule
xybrek@ubuntu:~$ sudo ufw allow 5432/tcp
Skipping adding existing rule
xybrek@ubuntu:~$ sudo ufw status
Status: active

To                         Action      From
--                         ------      ----
5432/tcp                   ALLOW       Anywhere
5433/tcp                   ALLOW       Anywhere
5432                       ALLOW       Anywhere

5432/tcp                   ALLOW OUT   Anywhere

xybrek@ubuntu:~$ sudo nmap localhost -p5432

Starting Nmap 5.00 ( http://nmap.org ) at 2013-05-28 17:57 PHT
Warning: Hostname localhost resolves to 2 IPs. Using 127.0.0.1.
Interesting ports on localhost (127.0.0.1):
PORT     STATE  SERVICE
5432/tcp closed postgresql

Nmap done: 1 IP address (1 host up) scanned in 0.12 seconds

当我尝试从另一台机器连接到该端口时,它只是连接超时,而当我尝试连接到其他端口(如 80、8080)时,它可以正常工作。我错过了什么?

编辑:

Status: active

     To                         Action      From
     --                         ------      ----
[ 1] 5432                       ALLOW IN    Anywhere

答案1

您只允许该端口上的 OUT。因此,由于您不允许进入,因此该端口被视为已关闭。5432 规则将被忽略,因为 5432 OUT 优先。

要修复此问题,最好删除现有内容并重新添加规则。

使用以下命令列出规则

sudo ufw status numbered

然后按行号删除规则

 sudo ufw delete X

其中 X 是与 5432 相悖的规则。重复此操作以删除其他规则,请确保再次执行状态编号命令以查看新编号,因为删除一个编号时编号会发生变化

然后使用命令正确添加规则

sudo ufw allow 5432

答案2

您是否已更改您的pg_hba.conf以适应您的网络环境和listen_addresspostgresql.conf

如果是,请尝试以下操作:

udo ufw allow from <network> to any port 5432

因为<network>你必须添加一些类似的内容10.20.1.1/24,以适应你的环境。

相关内容