Я пытаюсь настроить свой экземпляр Postgres так, чтобы только локальный компьютер и мой компьютер (через Интернет) могли получить доступ к базе данных. В postgresql.conf
файл имеет параметр listen_addresses
который может использоваться для установки списка IP-адресов, к которым предоставляется доступ.
Поэтому я установил это как listen_addresses 'localhost,a.b.c.d'
что означает, что он предоставит доступ к localhost
и a.b.c.d
что, скажем, мой IP-адрес. Но в этом случае он просто предоставляет доступ к localhost.
listen_addresses 'a.b.c.d'
тоже не работает. Я дважды проверил IP-адрес в Интернете, но он правильный. Я попытался
listen_addresses 'localhost' // works only for local machine.
listen_addresses '*' // works for both local and my machine
listen_addresses 'localhost,a.b.c.d' // does not work for my machine
listen_addresses 'a.b.c.d' // does not work for my machine
Так я что-то упускаю?
Вы неправильно поняли концепцию прослушивания адресов.
listen_addresses
это список IP-адресов интерфейсов на сервере под управлением PostgreSQL, которые можно использовать для подключения к службе PostgreSQL.
Так, например, ваш сервер PostgreSQL имеет IP-адрес 192.168.10.1
, вы указываете:
listen_addresses 'localhost,192.168.10.1';
Это означает, что все клиенты, которые могут получить доступ к IP-адресу 192.168.10.1
может подключиться к серверу PostgreSQL.
Если вы хотите ограничить соединения, подключив IP-адрес клиента, у вас есть два варианта:
pg_hba.conf
. Видеть аутентификация клиента.