[WSL2] 외부에서 WSL2 접속하기 (feat. 포트포워딩)

외부에서 WSL2 우분투로 접속하기 위해서는 

 

윈도우 WSL2에 자동 할당된 아이피와 포트를 윈도우에 할당된 아이피와 포트로 서로 연결 시켜야 한다. 

 

 

예) 

윈도우 IP : 200.222.200.222

(저는 공유기 환경이 아닌 랜선으로 고정IP를 할당 받고 있습니다, 만약 공유기로 IP를 할당 받는 경우 아래 블로그를 참고)

https://velog.io/@momentum96/WSL2-%EC%99%B8%EB%B6%80-%EC%A0%91%EC%86%8D-%EC%84%A4%EC%A0%95

윈도우 Port : 33138

 

WSL2 IP : 172.20.155.142

WSL2 Port : 33138

 

1. 외부에서 접속하기 위해서는 윈도우 IP와 윈도우 Port 번호로 접속을 시도한다.

2. 윈도우에서는 이 접속을 WSL2 IP와 Port 로 연결 시킨다. 

 

1. 외부에서 접속하기 위해서는 윈도우 IP와 윈도우 Port 번호로 접속을 시도한다.

 먼저 윈도우에서 포트를 열어주어야한다. 

 

 

 

 

 

 

고급 설정을 클릭

 

 

인바운드 규칙을 생성한다. 

 

필자의 경우 33138포트를 열었다. 

 

 

 

 

https://www.yougetsignal.com/tools/open-ports/

위의 사이트에서 33138 포트가 열려있는지 확인한다. 

 

 

 

2. 윈도우에서는 이 접속을 WSL2 IP와 Port 로 연결 시킨다. 

 

아래 쉘 스크립트를 바탕화면에 .ps1확장자로 저장합니다.

이 스크립트를 실행하게 되면 윈도우의 IP, port가 WSL2의  IP, Port로 포워딩됩니다. 

$remoteport = bash.exe -c "ifconfig eth0 | grep 'inet '"
$found = $remoteport -match '\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3}';

if( $found ){
  $remoteport = $matches[0];
} else{
  echo "The Script Exited, the ip address of WSL 2 cannot be found";
  exit;
}

#[Ports]
#All the ports you want to forward separated by coma
If (-NOT ([Security.Principal.WindowsPrincipal][Security.Principal.WindowsIdentity]::GetCurrent()).IsInRole([Security.Principal.WindowsBuiltInRole] "Administrator")) {   
  $arguments = "& '" + $myinvocation.mycommand.definition + "'"
  Start-Process powershell -Verb runAs -ArgumentList $arguments
  Break
}

$remoteport = bash.exe -c "ifconfig eth0 | grep 'inet '"
$found = $remoteport -match '\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3}';

if ( $found ) {
  $remoteport = $matches[0];
}
else {
  Write-Output "The Script Exited, the ip address of WSL 2 cannot be found";
  exit;
}

$ports = @(33138,80);

Invoke-Expression "netsh interface portproxy reset";

for ( $i = 0; $i -lt $ports.length; $i++ ) {
  $port = $ports[$i];
  Invoke-Expression "netsh interface portproxy add v4tov4 listenport=$port connectport=$port connectaddress=$remoteport";
}

Invoke-Expression "netsh interface portproxy show v4tov4";

 

경축! 아무것도 안하여 에스천사게임즈가 새로운 모습으로 재오픈 하였습니다.
어린이용이며, 설치가 필요없는 브라우저 게임입니다.
https://s1004games.com

 

바탕화면에 다음과 같이 아이콘이 뜨는것 까지 확인.

 

 

 

powershell을 관리자 모드로 실행 후에  .ps1이 있는 경로로 이동 후에 파일을 실행하면 다음과 같이 powershell에 출력된다.

 

윈도우로 들어온 요청 중에 33138 포트로 들어온 요청을 172.20.115.142로 전달한다. 

 

 

 

 

 

WSL2의 IP 

 

 

 

필자의 경우 윈도우에서 WSL2에 우분투 리눅스를 설치해서 그 리눅스 안에서 소켓통신을 하고 있다.

 

WSL2에서 구동되는 리눅스는  IP는 172.20.155.142  port는 33138 이 열려있다.

 

 

클라이언트는 외부 컴퓨터에서 실행되고 있으며, 클라이언트는

host pc(윈도우) IP 200.222.200.222 port : 33138로 접속을 요청한다.

 

클라이언트의 접속 요청이 아래 서버의 흐름대로 전달이 된다.

 

순서 : host pc(윈도우, 200.222.200.222 ) -> WSL2(172.20.144.1) -> Ubuntu linux (172.20.155.42

todo : 인바운드 규칙에서 포트 열기(33138)      ->   윈도우의 접속을 WSL2의 리눅스로 전달하는 쉘 프로그램 실행하기

 

 

순서로 클라이언트의 접속 요청이 unbuntu linux까지 들어오게 된다. 외부의 접속이 들어오게 된다.

 

[출처]  https://seonybob3210.tistory.com/40

 

 

 

 

 

 

 

 

 

본 웹사이트는 광고를 포함하고 있습니다.
광고 클릭에서 발생하는 수익금은 모두 웹사이트 서버의 유지 및 관리, 그리고 기술 콘텐츠 향상을 위해 쓰여집니다.
번호 제목 글쓴이 날짜 조회 수
32 [docker] [Docker] 도커 이미지와 컨테이너 삭제 방법 졸리운_곰 2024.08.20 350
31 [docker] [Oracle] docker에 Oracle 11g 설치하기 file 졸리운_곰 2022.11.26 477
30 [docker][도커] 로컬 개발환경 Docker 사용하기 file 졸리운_곰 2021.10.16 414
29 [Docker][도커] docker 이미지 및 컨테이너 관리 명령어 정리 file 졸리운_곰 2021.08.29 371
28 [docker][도커] 컨테이너 시작, 중지, 재시작 졸리운_곰 2021.08.29 255
27 [DOCKER] 도커_컨테이너 생성, 시작, 정지 file 졸리운_곰 2021.08.15 308
26 [쿠버네티스][Kubernetes] Helm 사용법 file 졸리운_곰 2021.07.19 332
25 [MSA][Docker][Kubernetes] [Kubernetes] 윈도우10에 도커, 쿠버네티스 설치 (docker desktop) file 졸리운_곰 2021.05.23 370
24 [MSA] [Docker] Docker File을 이용하여 Docker Image만들기 file 졸리운_곰 2021.04.27 299
23 [MSA][Docker] Docker 개념, 관리, 이미지생성까지 한번에!! file 졸리운_곰 2021.04.27 508
22 [MSA] 서비스 경량화를 위한 MSA 설계 시 고려사항 file 졸리운_곰 2021.03.21 313
21 [MSA][Docker] 효율적인 도커 이미지 만들기 #2 - 도커 레이어 캐슁을 통한 빌드/배포 속도 높이기 file 졸리운_곰 2021.03.21 294
20 [MSA][Docker] 효율적인 도커 이미지 만들기 #1 - 작은 도커 이미지 file 졸리운_곰 2021.03.21 257
19 [MSA] 오픈소스 모니터링 툴 - Prometheus #3 그라파나를 이용한 시각화 file 졸리운_곰 2021.03.21 603
18 [MSA] 오픈소스 모니터링 툴 - Prometheus #2 Hello Prometheus file 졸리운_곰 2021.03.21 464
17 [MSA] 오픈소스 모니터링툴 - Prometheus #1 기본 개념과 구조 file 졸리운_곰 2021.03.21 440
16 [MSA] API 게이트 웨이 & Google Cloud Endpoints file 졸리운_곰 2021.03.21 398
15 [MSA] Kong API gateway #3 - Kong on Kubernetes file 졸리운_곰 2021.03.21 441
14 [MSA] Kong API gateway #2 - 간단한 아키텍쳐와 API 테스트 file 졸리운_곰 2021.03.21 516
13 [MSA] Kong API gateway #1 - 설치와 둘러보기 file 졸리운_곰 2021.03.21 511
대표 김성준 주소 : 경기 용인 분당수지 U타워 등록번호 : 142-07-27414
통신판매업 신고 : 제2012-용인수지-0185호 출판업 신고 : 수지구청 제 123호 개인정보보호최고책임자 : 김성준 sjkim70@stechstar.com
대표전화 : 010-4589-2193 [fax] 02-6280-1294 COPYRIGHT(C) stechstar.com ALL RIGHTS RESERVED