betacode

Настройте PostgreSQL для разрешения удаленных подключений

1- Удаленное подключение к Postgres

Иногда вы создаете удаленное подключение к базе данных Postgres и получаете уведомление об ошибке, подобное этому:
could not connect to server: Connection refused (0x0000274D/10061)
Причина состоит в том, что эта база данных принимает только локальные подключения, поэтому вам нужно настроить Postgres так, чтобы она принимала удаленные подключения.
Прежде чем мы начнем, важно знать, что есть два конфигурационных файла, контролирующих работу сервера базы данных Postgres, и вам нужно изменить некоторые параметры этих двух файлов.
  1. postgresql.conf
  2. pg_hba.conf
Вы можете найти эти два файла в папке:
  • /etc/postgresql/13/main  (Linux)
  • C:/Program Files/PostgreSQL/13/data  (Windows)

postgresql.conf

Файл postgresql.conf позволяет настроить IP-адреса, которые Postgres использует для прослушивания подключений к нему. По умолчанию Postgres прослушивает только адрес localhost, поэтому вы не можете удаленно подключиться к нему.
Откройте Terminal в Linux (Ubuntu и т. д.) и перейдите в папку, где находится файл postgresql.conf.
Для Linux (Ubuntu и т. д.) используйте команду nano, чтобы открыть и изменить файл postgresql.conf.
sudo nano postgresql.conf
Найдите:
#listen_addresses = "localhost"
Затем замените его на:
listen_addresses = '*'
Вышеуказанное изменение позволяет Postgres прослушивать все IP-адреса компьютера, на котором они установлены. Вы также можете указать список адресов прослушивания  (listen addresses) для Postgres, которые разделяются запятыми.
listen_addresses = '192.168.0.1,112.113.10.1'
Затем нажмите CTRL + O --> ENTER, чтобы сохранить изменения, и CTRL + X, чтобы выйти из nano.

pg_hba.conf

Файл pg_hba.conf используется для аутентификации клиента (client). Другими словами, он позволяет указать, какие клиенты могут подключаться к Postgres. HBA означает "Host-Based Authentication" (аутентификация на основе Хоста).
Для Linux (Ubuntu и т. д.) используйте команду nano, чтобы открыть и изменить файл pg_hba.conf:
sudo nano pg_hba.conf
Найдите:
# IPv4 local connections:
host     all      all    127.0.0.1/32    md5
Затем замените его на:
# IPv4 local connections:
host     all      all    0.0.0.0/0   md5
Вышеуказанное изменение позволит всем клиентам (client) подключаться к Postgres.
Вы также можете настроить разрешение для диапазона IP-адресов для подключения к Postgres:
# IPv4 local connections:
host     all      all    112.100.20.1/30   md5
Наконец, перезапустите Postgres, чтобы изменения вступили в силу.
sudo service postgresql stop
sudo service postgresql start
Узнать больше: