我正在尝试远程访问 postgres 数据库,但我无论如何也无法让它工作。
我在 Azure 中安装了 Gen 2 Linux VM,并安装了 Ubuntu 14.04 和 postgres。SSH 可以远程工作,并且 psql 在远程工作时可以正常工作。
我已采取的步骤:
postgresql.conf
listen_addresses
已更新并'*'
通过 确认正在收听。psql
show listen_addresses
*
已更新,
pg_hba.conf
添加host all all 0.0.0.0/0 md5
。重新启动 postgres/ubuntu。
完成这些步骤后,我就能正常使用和访问 psql,但每当我尝试通过 pgAdmin3 远程连接到实例时,都会收到一条错误消息,提示连接超时。
此外,当我远程使用端口检查器时,端口 5432 被报告为已关闭。
我遗漏了什么或者做错了什么?
提前致谢。
更新:
答案1
听起来你需要使用 iptables-persistent
看
http://postgresql.freeideas.cz/install-postgresql-9-5-on-ubuntu-14-04/
答案2
因此,出于某种原因,这是一个 Azure 问题。我打开了端口5432
,但没有用。在绝望中,我打开了 1024-65535,现在我可以连接了。显然,我遗漏了与入站规则的使用相关的一些内容。虽然这确实解决了我的问题,但显然不是最佳做法。对我遗漏的内容有什么看法吗?
答案3
我在 Azure VM - Linux 上遇到了同样的问题。我尝试了以下方法
更改 PG_hba.conf 更改 postgres.conf 使用 Azure 门户在防火墙中添加规则
但无法使用 pgadmin 进行连接。但是一旦我运行以下命令,我就能连接。
iptables -I 输入 1 -m tcp -p tcp --dport 5432 -j 接受
以上对我绝对有用。花了这么多时间之后 :)
一切顺利 !!
答案4
遇到了同样的问题,端口在 25000-27500 之间。您可以继续尝试缩小范围,但目前对我来说这似乎已经足够了 - 比暴露每个端口要好。我还有另一条规则,让端口 5432 保持开放。