У меня есть виртуальная машина Ubuntu, размещенная в 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
дает мне отказ в соединении, что, как я полагаю, означает, что мой хост, по крайней мере, прослушивает эти порты.
Что я мог здесь упустить?
Попробуйте переключиться как пользователь postgres и введите psql
на машине, где установлен postgres. Это позволит убедиться, что установка правильная или неправильная.
su - postgres
psql
Проверьте брандмауэр в консоли Azure, возможно, вам придется включить порт 5432.
Дополнительные сведения о том, как открывать порты на виртуальной машине Azure, можно найти. Вот.