listen_addresses
| 버전 | 기본값 | context | 타입 |
|---|---|---|---|
| 14 | localhost | postmaster (재시작) | string |
| 15 | localhost | postmaster (재시작) | string |
| 16 | localhost | postmaster (재시작) | string |
| 17 | localhost | postmaster (재시작) | string |
| 18 | localhost | postmaster (재시작) | string |
| 19 | localhost | postmaster (재시작) | string |
서버가 client 애플리케이션의 connection을 받아들일 TCP/IP 주소를 지정한다. 기본값은 localhost로, 로컬 loopback connection만 허용한다. 이 파라미터는 서버를 시작할 때만 설정할 수 있다.
값은 호스트명이나 IP 주소를 쉼표로 구분한 목록이다. 특수 값 *는 사용 가능한 모든 IP 인터페이스를 뜻하고, 0.0.0.0은 모든 IPv4 주소, ::는 모든 IPv6 주소에서 연결을 받는다. 목록을 비워 두면 서버는 어떤 IP 인터페이스에서도 listen하지 않으며, 이 경우 Unix-domain socket으로만 접속할 수 있다. 목록이 비어 있지 않다면 최소 하나의 TCP/IP 주소에서 listen에 성공하는 한 서버는 기동하고, 열지 못한 주소에 대해서는 경고만 남긴다.
pg_hba.conf의 client authentication이 “누가 접속할 수 있는가"를 세밀하게 통제한다면, listen_addresses는 그보다 앞 단계에서 “어떤 인터페이스가 연결 시도 자체를 받는가"를 결정한다. 신뢰할 수 없는 네트워크 인터페이스를 아예 listen 대상에서 빼면 반복적인 악성 연결 시도를 원천 차단할 수 있다.
운영 노트: 원격에서 접속이 안 될 때 가장 먼저 확인할 파라미터다. 기본값
localhost 그대로면 외부 접속은 모두 거부된다. 반대로 *로 열 때는 pg_hba.conf와 방화벽 규칙을 반드시 함께 정비해야 한다. 변경 후에는 reload가 아니라 서버 재시작이 필요하다는 점도 놓치기 쉽다.출처: PostgreSQL 18 문서