320x100
320x100

1. 관리자 모드로 파워쉘을 실행한 후 정책 확인

Get-ExecutionPolicy

: Restricted로 나올 경우 방화벽 정책이 거부된 것이기 때문에 다음 단계를 수행하여 방화벽을 해제

 

 

 

2. 원격 접근이 가능하도록 방화벽 설정 후 확인

Set-ExecutionPolicy RemoteSigned
Get-ExecutionPolicy

 

 

 

3. 방화벽 포트 개방과 WSL2로의 접근을 위한 파워쉘 스크립트

$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
$ports=@(80, 8080, 1000);


#[Static ip]
#You can change the addr to your ip config to listen to a specific address
$addr='0.0.0.0';
$ports_a = $ports -join ",";


#Remove Firewall Exception Rules
iex "Remove-NetFireWallRule -DisplayName 'WSL 2 Firewall Unlock' ";

#adding Exception Rules for inbound and outbound Rules
iex "New-NetFireWallRule -DisplayName 'WSL 2 Firewall Unlock' -Direction Outbound -LocalPort $ports_a -Action Allow -Protocol TCP";
iex "New-NetFireWallRule -DisplayName 'WSL 2 Firewall Unlock' -Direction Inbound -LocalPort $ports_a -Action Allow -Protocol TCP";

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

: 메모장에 작성 후 .ps1 파일로 저장

: $ports 부분에 개방하고자 하는 포트 기재

 

 

 

4. 작성한 파워쉘 스크립트 실행

.\test.ps1

: 파워셸 파일이 있는 위치에서 실행

 

 

 

5. 방화벽 설정이 잘되었는지 확인하기

netsh interface portproxy show v4tov4

 

 

 

 

Refference

 

WSL2 외부 remote ip 접속 가능하도록 설정하기, 방화벽 해제

윈도우 하위 리눅스인 WSL2를 사용하면 리눅스 기반의 로컬 개발 환경을 구축하는데 매우 편리한 것 같습니다. 서버 환경이 리눅스라면 윈도우에서도 동일한 환경 구축이 가능하다는 점이 큰 장

webisfree.com

 

300x250
728x90