Windows 터미널에서 WSL(Windows Subsystem for Linux)을 실행했을 때,
WSL 2는 별도의 가상 네트워크 인터페이스를 사용한다.
= 다른 네트워크처럼 동작
따라서 WSL 2와 Windows는 다른 IP 주소를 가진다.
일반적으로 172.x.x.x 대역의 프라이빗 IP를 가진다.
참고로 WSL 1은 Windows와 동일한 커널을 공유하고 Windows 네트워크 스택을 사용한다.
즉, WSL 1에서는 Windows와 동일한 네트워크 인터페이스/IP를 사용한다.
※ 요약
항목 WSL 1 WSL 2 네트워크 스택 Windows와 공유 가상화된 별도 네트워크 IP 주소 Windows와 동일 WSL 전용 별도 IP 통신 방식 직접 공유 NAT 기반 통신
그렇기 때문에 WSL 2에서 localhost로 호출하면 WSL 2 내부에서 찾게 된다.
localhost로 Windows 서비스(예를 들어, PostgreSQL)에 접근할 수 없다.
→ IP로 호출
1. Windows IP 확인
cat /etc/resolv.conf
2. Windows IP 정보로 'localhost' 교체
3. pg_hba.conf 파일에 WSL 2 IP도 추가해야 한다.
PostgreSQL 설치할 때 기본적으로 pg_hba.conf 파일(접근 제어 설정)에는 기본 방화벽 설정만 있음.
1) WSL 2 IP 확인
ip addr show eth0
2) pg_hba.conf에 추가
WSL 2 IP는 재시작할 때 바뀔 수 있으므로 16비트 변동되는 경우 고려하여 추가