我一直在努力打开端口 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_address
?postgresql.conf
如果是,请尝试以下操作:
udo ufw allow from <network> to any port 5432
因为<network>
你必须添加一些类似的内容10.20.1.1/24
,以适应你的环境。