Mam maszynę wirtualną z adresem IP 192.168.0.192 z uruchomionym postgreSQL.
Jeśli podam
listen_addresses = '*'
następnie mogę połączyć się z inną maszyną wirtualną pod adresem 192.168.0.191 i z hosta lokalnego.
Ale nie mogę użyć listy, aby powiedzieć postgreSQLowi, aby używał tych dwóch adresów. Jeśli zmienię Listen_addires na listę:
listen_addresses = '192.168.0.191, localhost'
wtedy nie mogę już połączyć się z 192.168.0.191.
Zauważam, że prawie wszystkie przykłady na stackexchange ustawiają listen_addresses na '*'. Czy to dlatego, że formularz listy nie działa?
źródło
localhost
taki sposób, aby połączenia TCP / IP nie były możliwe z żadnego zewnętrznego interfejsu sieciowego, tylko adres pętli zwrotnej.Przekonałem się, że zamiast
localhost
go używać127.0.0.1
, musisz podać inne adresy.Więc w moim przypadku nasłuchiwania na adresie IP hosta Dockera, a także na localhost, ale nie na zewnętrznym IP, to nie działa (otrzymuję odmowę połączenia z moich kontenerów Docker):
Ale to powoduje:
źródło
Wpis 0.0.0.0 umożliwia nasłuchiwanie dla wszystkich adresów IPv4 i :: umożliwia nasłuchiwanie dla wszystkich adresów IPv6. Jeśli lista jest pusta, serwer w ogóle nie nasłuchuje na żadnym interfejsie IP, w którym to przypadku do połączenia z nim można użyć tylko gniazd w domenie uniksowej.
źródło