Почему при установлении явного разрешенного ip в postgresql.conf перестает работать подключение?
Настраиваю
postgresql.conf
В месте
listen_addresses = 'мой_ip'
Перестаёт работать
При этом в pg_hba.conf указал
host all all мой_ip/32 md5
Если же сделаю в postgresql.conf
listen_addresses = '*'
Тогда нормально работает.
Хочу в postgresql.conf ограничить слушание только моего апишника. Пробовал разные варианты, и через запятую, и с /32 всё равно не дает разрешение на соединение.
Читал доки, там вроде ничего такого нет про спец. синтаксис или еще что-то. Могу даже сюда скинуть:
listen_addresses (string)
Specifies the TCP/IP address(es) on which the server is to listen for connections from client applications. The value takes the form of a comma-separated list of host names and/or numeric IP addresses. The special entry * corresponds to all available IP interfaces. The entry 0.0.0.0 allows listening for all IPv4 addresses and :: allows listening for all IPv6 addresses. If the list is empty, the server does not listen on any IP interface at all, in which case only Unix-domain sockets can be used to connect to it. If the list is not empty, the server will start if it can listen on at least one TCP/IP address. A warning will be emitted for any TCP/IP address which cannot be opened. The default value is localhost, which allows only local TCP/IP “loopback” connections to be made.
While client authentication (Chapter 20) allows fine-grained control over who can access the server, listen_addresses controls which interfaces accept connection attempts, which can help prevent repeated malicious connection requests on insecure network interfaces. This parameter can only be set at server start.
Что означает "Перестаёт работать"? Если отказывается стартовать, то с какой формулировкой. Если стартует, то, опять же, что в логах и в чём выражается "Перестаёт работать"
По дефолту локалхост - значит он слушает с локалхоста? Что-то какая-то странная опция получается.
Что тут странного? Просто сервер слушает только локальные обращения, от запущенных в том же инстансе ОС приложений, и игнорирует обращения по сети с других компов.
f0kusn1k, А тогда это решается, например, SSH-туннелем. Или организацией VPN-соединения между серверами. Или хотя бы файрволом. Но не настройками сервера.
Rsa97, всё равно эта опция непонятна. Если я захочу туда внести апишники, в какой ситуации и какие апишники я туда могу вложить? Локального сервака апишник, если вставляю, то тоже ошибка подключения. А там предлагается даже внести апишники через запятую. Это при какой ситуации такой кейс реален?
f0kusn1k, Сервер в локальной сети с несколькими IP-подсетями, VLAN'ами или физическими интерфейсами. Можно определить, на каких именно адресах будет ждать соединения postgresql. Параллельно может работать несколько копий postgresql, каждая из которых принимает соединения на своих адресах и работает со своими базами данных.