갈루아의 반서재

728x90

pgAdmin4로 구글 클라우드 VM의 PostgreSQL에 접속할 때 발생하는 "Connection refused (0x0000274D/10061)" 오류의 원인과 해결 방법을 정리했습니다. 방화벽, PostgreSQL 설정, 포트 확인 등 실전 대응 팁을 제공합니다.


PostgreSQL 서버 연결
과정에서 다음의 오류가 발생할 수 있다. 해당 오류의 처리 방법에 대해 알아보자. 

Unable to connect to server:

could not connect to server: Connection refused (0x0000274D/10061)
Is the server running on host "**.***.***.**" and accepting 
TCP/IP connections on port 5432?

 

이 에러 메시지는 PostgreSQL 서버에 **TCP/IP 연결이 되지 않고 있다는 것**을 의미하며, 다음과 같은 원인 중 하나일 가능성이 크다.

1. PostgreSQL이 실제로 실행 중이 아닌 경우

PostgreSQL 서버가 구동되지 않으면 위 오류가 발생한다. 다음과 같이 서버가 구동중인지 확인한다. 

sudo systemctl status postgresql


출력이 active (running)가 아니면 아래 명령으로 서버를 구동한다.

sudo systemctl start postgresql

 


2. postgresql.conf 에서 listen_addresses 설정 누락

PostgreSQL은 기본적으로 `localhost`만 listen하도록 설정되어 있다. 설정이 누락된 부분이 없는지 확인해본다.

설정 파일 열기

sudo nano /etc/postgresql/15/main/postgresql.conf

 

다음과 같이 설정이 되어 있는지 확인한다.

```ini
listen_addresses = '*'
```


변경 후 반드시 재시작한다.

sudo systemctl restart postgresql



3. pg_hba.conf 에 해당 IP 허용 안 됨

PostgreSQL은 pg_hba.conf를 통해 IP별 접근을 제어한다.

설정 파일을 연다.

sudo nano /etc/postgresql/15/main/pg_hba.conf


IPv4 local connections 항목이 다음과 같이 설정되어 있는지 확인한다.

host    all             all             0.0.0.0/0         md5


변경 후 재시작 필요

sudo systemctl restart postgresql



4. GCP 방화벽 설정에 포트 5432가 열려 있지 않음

GCP는 VM 외부에서 접속 가능한 포트를 별도로 방화벽 규칙(Firewall Rules)으로 제어한다. 확인 및 설정 방법은 다음과 같다.

1. GCP 콘솔 → VPC 네트워크 > 방화벽 규칙
2. 새 규칙 만들기:
   * 이름: `allow-postgres`
   * 대상: `모든 인스턴스`
   * IP 범위: `허용할 클라이언트 IP` 또는 `0.0.0.0/0` (모든 IP 허용)
   * 포트: `tcp:5432`

5. 서버의 로컬 방화벽 (ufw 등) 문제

마지막으로 만약 Ubuntu VM에서 UFW 방화벽을 사용하는 경우, 포트 5432가 막혀 있을 수 있다. 다음과 같이 확인할 수 있다.

sudo ufw status

 

막혀있는 경우 다음과 같이 허용한다.

sudo ufw allow 5432/tcp


이 중 하나라도 설정되지 않으면 `pgAdmin4`에서 "connection refused" 에러가 발생한다. 위 단계를 순서대로 확인해보시면 접속이 정상화될 가능성이 높다.

728x90