방화벽 규칙에서 사용한 옵션 설명
- name="WSL PostgreSQL Port Forwarding": 규칙의 이름을 지정합니다.
- dir=in: 규칙의 방향을 지정하여, direction=inbound 즉, 들어오는 트래픽에 적용합니다.
- action=allow: 트래픽을 허용합니다.
- protocol=TCP: 규칙이 TCP 프로토콜에 적용됩니다.
- localport=5432: 로컬 포트 5432로 향하는 트래픽에 적용됩니다.
WSL 에서는 윈도우의 물리적 네트워크 인터페이스를 사용하는데 반해 WSL 2는 경량 VM에서 리눅스 커널이 실행됩니다.
가상화된 네트워크 어댑터가 있어서 자체 IP 주소가 할당되어 네트워크를 이용할 수 있습니다.
윈도우에서 PowerShell을 실행시키고 다음 명령어를 입력하면 네트워크 어댑터 정보를 확인할 수 있습니다.
Get-NetAdapter *WSL* | Format-List
IP 주소를 확인하려면 PowerShell에서 다음과 같이 입력합니다.
Get-NetAdapter *WSL* | Get-NetIPAddress | Format-List IPAddress
WSL의 우분투 배포판의 IP는 NAT 가상 네트워크에 속해 있으므로 터미널을 열고 ifconfig으로 알아냅니다.
ifconfig
우분투 터미널 내에서 윈도우 호스트의 IP를 알아내려면 우분투 터미널에서 /etc/resolv.conf 파일을 확인합니다.
cat /etc/resolv.conf
그러면 출력되는 내용 중에서 nameserver로 되어있는 IP가 윈도우의 호스트 IP입니다.
윈도우에서 WSL 우분투 배포판의 애플리케이션에 접속할 때 포트 포워딩을 이용할 수 있습니다.
포트 번호는 애플리케이션마다 다르지만 여기서는 postgresql의 기본 포트인 5432 포트를 기준으로 합니다.
윈도우 파워셸에서 다음을 실행해 주세요.
# WSL의 내부 IP 주소를 172.19.120.200 이라 가정합니다.
# 윈도우즈 파워쉘의 네트워크 관리 기능인 netsh 명령어를 이용하여 5432 포트를 포워딩 설정합니다.
netsh interface portproxy add v4tov4 listenport=5432 listenaddress=0.0.0.0 connectport=5432 connectaddress=172.19.120.200
# 다시 netsh 명령어로 방화벽 규칙을 추가합니다.
netsh advfirewall firewall add rule name="WSL PostgreSQL Port Forwarding" dir=in action=allow protocol=TCP localport=5432
방화벽 규칙에서 사용한 옵션 설명
호스트(윈도우)의 웹 브라우저에서 WSL 우분투의 톰캣 서버에 접속하려면 localhost 포트 포워딩을 이용 할 수 있습니다.
최신 WSL2은 기본적으로 localhost 포트 포워딩을 제공합니다.
예를들어 WSL 우분투의 톰캣 서버를 8080 포트로 실행했다면 윈도우(호스트)의 브라우저 주소창에 http://localhost:8080 을 입력하면 우분투의 톰캣 서버로 자동 연결됩니다.
네트워크가 NAT인경우 윈도우(호스트)와 WSL 배포판 우분투의 IP가 다르지만 locahost로 접근하는 경우 자동 포트 포워딩을 해주는 기능을 이용하는 것입니다.
가상 네트워크(NAT)를 사용할 때 우분투 배포판을 재시작 하는 경우 IP가 변경될 수도 있습니다.
그럴때마다 위에서 설정했던 포트 포워딩이랑 방화벽 설정을 해야할 수도 있습니다.
이 문제를 해결하는 방법이 NAT를 사용하지 않고 Mirrored 모드 네트워킹을 사용하는 것입니다.
이 모드는 WSL이 호스트(윈도우)의 네트워크 인터페이스를 그대로 복제(미러링)해서 사용하는 방식입니다.
이 모드는 윈도우즈11 의 22H2 이후 버전에서만 지원합니다
Mirrored 네트워킹의 장점은 다음과 같습니다..
1. 윈도우 탐색기 주소창에 %USERPROFILE% 을 입력하면 사용자 홈 디렉토리로 이동합니다.
2. 해당 폴더에서 .wslconfig 파일을 생성한 뒤 텍스트 편집기로 엽니다.(주의: 파일명 앞에 마침표 있습니다.) 이미 해당 파일이 존재하면 생성할 필요없이 텍스트 편집기로 엽니다.
3. 파일에 다음 내용을 추가해주거나 입력합니다.
[wsl2]
networkingMode=mirrored
4. 파일을 저장합니다.
5. WSL을 종료합니다. 파워셸(powershell) 또는 명령프롬프트(cmd) 에서 다음과 같이 입력합니다.
wsl --shutdown
6. 다시 WSL 우분투를 시작하면 새로운 네트워킹 모드로 실행되어 윈도우와 우분투의 IP가 동일하게 설정된 것을 확인할 수 있습니다.
ifconfig
| git branch 관리: tracking, cherry-pick, stash (1) | 2025.10.31 |
|---|---|
| git 기본 사용 방법 (0) | 2025.10.31 |
| WSL 우분투 배포판에서 Node.js 설치 (0) | 2025.10.26 |
| WSL에서 리눅스 개발 환경 설정 (0) | 2025.10.22 |
| https 테스트 용 SSL 사설 인증서 Tomcat 적용 (0) | 2025.04.21 |