我有一个 Ubuntu VM,托管在 Microsoft Azure 上。它是完全空白的,然后我使用 安装了 Postgres sudo apt-get install postgresql
。
我安装的版本是Ubuntu 10.10-0ubuntu0.18.04.1
。
我配置了 Postgres 以接受远程连接,方法如下本教程:
- 我
postgresql.conf
通过设置来编辑我的文件listen_addresses = '*'
。 我
pg_hba.conf
通过添加以下两行来编辑我的文件:host all all 0.0.0.0/0 md5
host all all ::/0 md5
我重新启动了 Postgres,甚至重新启动了整个服务器。
当我执行时netstat -tln
,我获得以下结果:
Active Internet connections (only servers)
Proto Recv-Q Send-Q Local Address Foreign Address State
tcp 0 0 127.0.0.53:53 0.0.0.0:* LISTEN
tcp 0 0 0.0.0.0:22 0.0.0.0:* LISTEN
tcp 0 0 0.0.0.0:5432 0.0.0.0:* LISTEN
tcp6 0 0 :::22 :::* LISTEN
tcp6 0 0 :::5432 :::* LISTEN
我的iptables
完全是空的,创建虚拟机后我没有对它做任何事情。
我尝试从另一个客户端执行sudo -u postgres psql -h [host] -U postgres
,但请求超时。
当我从另一个客户端执行时telnet [host] 5432
,直到超时,什么都没有发生。但是,执行telnet [host] 22
工作正常,并且执行时telnet [host] 80
我收到拒绝连接的消息,我认为这意味着我的主机至少正在监听这些端口。
我在这里可能遗漏了什么?
答案1
尝试切换到 postgres 用户并进入psql
安装 postgres 的机器。这将确保安装正确或错误。
su - postgres
psql
检查 Azure 控制台中的防火墙,可能您必须启用端口 5432。
有关如何在 Azure VM 上打开端口的更多信息,请参见这里。