본문 바로가기
개발

[WSL2] WSL2에 Window PC의 포트를 포워딩하는 방법

by 뿔난 도비 2025. 7. 24.
반응형

WSL2의 포트를 개방하고 Window PC의 외부에서 접근하는 방법에 대해 설명합니다.

 

WSL2에 포트 포워딩하는 방법

 

 

Window PC 방화벽 설정

 

- WindowPC 내 WSL2에서 Nginx를 설치하고 WindowPC의 80포트로 접근해도 Nginx 화면이 뜨지 않아서 웹 앱을 사내망에서 테스트로 배포해볼 수 없는 상황이 생겨 이것저것 찾아봤고 까먹을 것 같아 기록으로 남기기로 결정했다.

 

- 웃긴 것은 WindowPC에서 localhost:80으로 접근하면 WSL2 내부의 Nginx로 접근이 가능하다.

- 아 그래서 뭔가 도커 컨테이너처럼 호스트 PC의 포트를 공유하나보다 라고 생각했고, 다른 PC에서 WSL2가 동작중인 PC의 IP로 접근을 시도했는데, 좀처럼 되지 않았다.

- 나는 그래서 의문에 빠졌고,,, 여러 가지를 찾다가 총 세 가지의 설정이 필요하다는 것을 알았다.

 

I. 방화벽 OFF

 

- 먼저 WindowPC의 방화벽을 해제해 주어야 한다.

 

- Window 11 기준으로 설정 페이지에서 방화벽에 접근할 수 있다.

("네트워크 및 인터넷" -> "Window 방화벽")

- 여기서 공용 네트워크 방화벽을 끈다.

- 일단 이게 활성화되어 있으면, 외부에서 내 PC에 접근조차 되지 않는다.

- 이제 접속을 테스트하는 외부 PC에서 현재 PC로 Ping을 날려본다.

- 만약 안된다면,,, 개인 네트워크나 도메인 네트워크의 방화벽도 꺼야할 수 있다.

 

II. 포트 개방

 

- 일반적인 서버와 마찬가지로 포트 개방을 해주어야 한다.

 

- 아까의 설정 페이지에서 "고급 설정"을 누르면 위의 사진과 같이 규칙 설정으로 넘어간다.

- 여기서 "인바운드 규칙"을 누르고 새 규칙을 등록한다.

 

- 위의 사진처럼 순서대로 설정을 하면 된다.

- 포트에는 개방할 포트 번호를 입력해주자.

- 나는 80포트를 열고 Nginx에서 리버스 프록시를 걸어줄 것이기 때문에 80포트로 설정했다.

 

- 자 이제 될 것 같은가???

- 정답은 아니다..

 

Window PC 포트 포워딩 설정

 

- 나는 WSL2가 호스트 PC의 포트를 같이 사용하는 줄 알고, 위 설정만 했는데도 안되는 상황을 이해하지 못했다.

- 그러다가 혹시 포트 포워딩을 해줘야 하나?? 하고 찾았는데 실제로 그런 설정이 존재했다..

 

- 아래의 게시글을 참고했다.

https://slow-but-properly.tistory.com/38

 

[배움기록] WSL 포트포워딩 환경 설정하기!

2대의 컴퓨터를 활용하여 API요청하는 환경을 만들어보았다.한 대는 FAST API를 통해 백엔드 서버로 사용. GPU 가속 때문에 WSL 사용.다른 한 대는 플러터를 활용해서 API를 요청.그림으로 그린다면 이

slow-but-properly.tistory.com

 

- 명령어는 다음과 같다.

# WSL 포워딩 하기
netsh interface portproxy add v4tov4 listenport={host port} listenaddress={host IP} connectport={target port} connectaddress={target IP}

# 확인하기
netsh interface portproxy show all

# 설정 지우기
netsh interface portproxy delete v4tov4 listenport={host port} listenaddress={host port}

 

- 위의 명령어를 이용해서 host의 포트를 target 포트로 매핑을 해주면 완료이다.

- 이제 WSL2에서 동작중인 Nginx까지 요청이 넘어가는 것을 알 수 있다.

 

요즘 자꾸 인프라 관련으로 게시글을 포스팅하게 되는 것 같다. 원래도 인프라 쪽에 관심이 많았었는데, 요즘은 이렇게 배포하고 뭐 설정하는 것들이 재밌다.

반응형