미분류

[Flask/WSL] WSL2 서버 외부 접속 시, 접속 안되는 문제 해결

저는 WSL2를 이용하여 윈도우에서 리눅스 기반 파일들을 실행하고, 서버를 구축하여 실행된 파일을 클라이언트에게 보내도록 구성하려고 하였습니다.

하지만 WSL을 사용하지 않은 상태면 외부에서 저의 Flask 서버로 접근이 가능했는데, WSL을 사용하면 외부에서 저의 Flask 서버로 접근이 안되는 것이었습니다.

알고보니, WSL은 윈도우와는 다른 가상 네트워크를 사용하기 때문이었습니다. 방법은 아래 글을 읽어주세요.

1. WSL2 네트워크 툴 설치

WSL에서 ‘net-tools’를 설치하여, 네트워크 IP 주소를 확인할 것입니다.

sudo apt intall net-tools

2. WSL2 IP 주소 확인

아래 코드로 WSL2에서 사용되는 IP 주소를 확인할 수 있습니다.

ip addr show eth0 | grep 'inet ' | awk '{print $2}' | cut -d/ -f1

3. 포트포워딩 설정

Windows 명령 프롬프트(CMD)를 관리자 권한으로 실행시켜, 아래의 명령어를 사용하여 윈도우-WSL간의 포트 포워딩을 설정합니다. 예를 들어, 본인의 Flask 서버 포트가 5000번이라면 아래와 같이 실행하시면 됩니다.

netsh interface portproxy add v4tov4 listenport=5000 listenaddress=0.0.0.0 connectport=5000 connectaddress=<WSL2_IP>

<WSL2_IP>에는 본인의 WSL2 IP를 넣으시면 되고, <>는 빼고 넣어주세요.

 

4. Windows 방화벽 설정

아래 방법을 통하여, Windows 방화벽이 5000번 포트를 허용하도록 설정합니다.

Windows 방화벽 설정:

1. 제어판 -> 시스템 및 보안 -> Windows Defender 방화벽 -> 고급 설정

2. 인바운드 규칙에서 ‘새 규칙’ 클릭

3. ‘포트’ 선택 후, 다음 클릭

4. ‘TCP’와 ‘특정 로컬 포트’를 선택하고 5000 입력 후 다음 클릭

5. ‘연결 허용’ 선택 후 다음 클릭

6. 필요한 경우 네트워크 프로파일 선택 후 다음 클릭

7. 규칙 이름 입력 (예: Flask Test) 후 완료 클릭

 

5. 라우터 포트 포워딩 설정

1~4번의 과정으로 윈도우-WSL 간의 포트포워딩이 설정 되었으니, 다음으로 외부와 내부간의 포트포워딩을 설정합니다.

ipTime: https://coreeny.tistory.com/75

sk브로드밴드: https://eastsea92-com.tistory.com/49

정리를 잘 해놓아주신 분들이 계시니, 이분들의 글을 보시고 포트포워딩 설정을 해주시면 됩니다!

이때 외부 포트는 사용할 포트(5000 또는 5000:5000), 내부 포트도 사용하실 포트(5000 또는 5000:5000) 로 설정해주시고, 내부 IP는 Windows 내부 ipv4를 적어주시면 됩니다.

(CMD에서 ipconfig를 입력하시변 보실 수 있습니다.)

 

6. 공인 IP 주소 확인

WhatIsMyIP와 같은 사이트에서 확인하시거나, 네이버에서 ‘IP주소확인’ 이라고 검색하셔서 확인하시면 됩니다.

 

7. 외부에서 접속

외부 네트워크(휴대폰, 다른 컴퓨터 등)에서 아래의 URL로 접속하시면 됩니다.

http://<공인 IP 주소>:5000
Info-Geon

Recent Posts

관절 건강에 좋다는 MSM의 모든 것

MSM은 건강 보조제로 널리 사용되며, 특히 관절 건강을 개선하고 통증을 완화하는 데 도움을 준다고 알려져…

3주 ago

칼슘 보충제 섭취 전 꼭 알아야 할 6가지 필수 정보

칼슘은 우리 몸에서 가장 풍부하게 존재하는 미네랄로, 전체 체중의 약 1-2%를 차지하며 주로 뼈와 치아에…

3주 ago

혈당과 체중 조절을 위해 주목받는 크롬 보충제의 모든 것

크롬은 필수 미량 원소 중 하나로, 인체 내에서 다양한 생화학적 반응에 관여하는 영양소입니다. 주로 혈당…

3주 ago

레시틴은 꼭 알아야 할 6가지 사실

레시틴은 자연적으로 나타나는 물질로, 대개 달걀 노른자, 콩, 해바라기 씨와 같은 식품에서 발견됩니다. 이 물질은…

3주 ago

L-글루타민, 운동 후 근육통과 면역력 저하를 겪고 있는 당신에게 추천하는 영양제

L-글루타민은 우리 몸에 존재하는 아미노산 중 하나로, 단백질 합성과 면역 기능에 중요한 역할을 합니다. 이천년대…

3주 ago

아스타잔틴, 심혈관 건강과 피부에 모두 도움이 된다?

아스타잔틴은 자연에서 발견되는 카로티노이드 계열의 강력한 항산화제입니다. 일반적으로 홍합, 새우, 그리고 특히 연어와 같은 해양…

3주 ago