본문 바로가기
🗄️ DB_이야기/# 🐘 PostgreSQL

🐘[PostgreSQL] 외부 접속 허용 방법

by gwon_s 2025. 7. 30.

🔍 들어가며

PostgreSQL 설치 후 외부에서 접속하려고 할 때 connection refused 또는 timeout 에러가 발생하셨다면, 아래 설정을 하나씩 확인해보세요


이 글에서는 리눅스 서버에 설치된 PostgreSQL의 외부 접속을 허용하는 방법을 정리해보았습니다.

 


 

✅ 외부 접속 허용을 위한 3단계

1. postgresql.conf 설정

PostgreSQL의 메인 설정 파일에서 외부 IP 접속을 허용해줘야 합니다.

👇 아래와 같이 'listen_addreses'와 'port' 항목을 수정

vi $PGDATA/postgresql.conf

...(생략)...
#------------------------------------------------------------------------------
# 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
                                        # (change requires restart)
port = 5432                             # (change requires restart)

 

postgresql.conf - listen_addresses

 

  • localhost → 외부에서는 접속 불가
  • * → 모든 IP 허용 (운영환경에서는 제한된 IP만 허용하는 것이 좋음)

 

 

 

 

2. pg_hba.conf 설정

인증 방식과 허용할 클라이언트 IP를 설정하는 파일입니다.

👇 아래와 같이 #IPv4~ 부분의 IP 수정 

vi /var/lib/pgsql/14/data/pg_hba.conf

...(생략)...
# IPv4 local connections:
host    all             all             0.0.0.0/0            trust
...(생략)...

 

pg_hba.conf

  • 0.0.0.0/0: 모든 외부 IP 허용
    (운영환경에서는 특정 IP만 허용 권장: 예 192.168.0.10/32)
  • md5: 비밀번호 인증 방식

 

 

 

 

3. 방화벽 설정 (firewalld)

리눅스 방화벽에서 PostgreSQL 포트(기본: 5432)를 열어줘야 합니다.

sudo firewall-cmd --permanent --add-port=5432/tcp
sudo firewall-cmd --reload

포트 열기 확인:

sudo firewall-cmd --list-ports

 

 


 

🔄 PostgreSQL 재시작

설정을 반영하기 위해 PostgreSQL 서비스를 재시작합니다.

$PG_HOME/bin/pg_ctl -D $PGDATA restart

 

 


 

🧪 접속 테스트

외부 PC나 클라이언트에서 아래 명령어로 접속 테스트를 해봅니다.

psql -h <서버 IP> -U <계정명> -d <DB명>