본문 바로가기

OS/windows

[WSL] WSL2 에서 실행한 프로젝트 접속하기 (포트포워딩/방화벽)

반응형

WSL1은 Windows와 같은 네트워크 스택을 공유하여 아래 설정이 필요없으나,

WSL2는 기본적으로 가상 네트워크 인터페이스를 사용한다.

즉, WSL에서 실행한 프로젝트에 외부에서 접속하려고 하면 안되는것이다.

# version 확인
wsl -v

 

WSL2인 경우 아래 절차를 밟으면 외부에서 접속이 가능하다.

1. 내 윈도우 ip 확인

ipconfig

2. wsl 내부 ip 확인

wsl
ifconfig

 

3. wsl2에서 fastapi 구동중인 포트를 윈도우로 포트포워딩

명확한 ip를 제시해야하며 0.0.0.0 은 제공하지않는다.

netsh interface portproxy add v4tov4 listenport=<포워딩할 포트> listenaddress=<내 윈도우 ip> connectport=<포워딩할 포트> connectaddress=<내 wsl2 ip>

netsh interface portproxy add v4tov4 listenport=<포워딩할 포트> listenaddress=192.168.0.1 connectport=8000 connectaddress=172.0.0.1

 

4. 포트포워딩 등록 리스트 확인

netsh interface portproxy show all


기존 등록 삭제

netsh interface portproxy delete v4tov4 listenport=<포워딩한 포트> listenaddress=<외부 ip>

 

5. 방화벽 예외 추가

 Windows 방화벽은 localhost를 제외한 모든 접속 대해 기본 차단되기 때문에 아래와 같이 특정 포트로 접속하기 위한 방화벽 예외 추가 작업이 필요하다.

New-NetFirewallRule -DisplayName "Allow 9000" -Direction Inbound -LocalPort <포워딩한 포트> -Protocol TCP -Action Allow
반응형