본문 바로가기

[PostgreSQL] Host에서 포트포워딩과 방화벽을 열어도 외부에서 접속 안되는 문제

@우잉_2025. 10. 20. 22:48

문제

PostgreSQL을 포트포워딩과 방화벽 모두 설정되어있는 Host에 배포한 상태에서 외부 시스템이 접근할 수 없음

원인

PostgreSQL은 기본 설정으로 외부 접근을 제한하고있다. 추가적인 설정을 통해 예외 설정을 해야한다.

해결 방법

1. postgresql.conf 수정

 vi <pgsql 설치 경로>/data/postgresql.conf
 
''' listen_addresses에 허용할 IP 추가 혹은 '*'로 변경
#------------------------------------------------------------------------------
# CONNECTIONS AND AUTHENTICATION
#------------------------------------------------------------------------------
# - Connection Settings -
listen_addresses = '*'          # what IP address(es) to listen on;
                                        # comma-separated list of addresses;
                                        # defaults to 'localhost'; use '*' for all
'''

2. pg_hba.conf 수정

수신할 IP 주소를 입력해도 아래의 오류로 접근이 안될 수 있다. 이를 위해 pg_hba.conf에 접근 권한을 추가해주어야 한다.

FATAL: no pg_hba.conf entry for host "<접속 시도한 Host IP>", user "<유저 id>", database "<DB명>", no encryption
vi /usr/local/pgsql/data/pg_hba.conf
'''
# TYPE  DATABASE        USER            ADDRESS                 METHOD
host    <허용할 DB명>    <허용할 유저명>  <허용할 IP>              <허용할 인증 방법>
#전체 허용
host    all             all             0.0.0.0/0               trust
'''
우잉_
@우잉_ :: wooing

공부한것들 기록하기 Github: https://github.com/wooing1084

공감하셨다면 ❤️ 구독도 환영합니다! 🤗

목차