-
wsl2를 이용시 localhost:port로 접근 오류설치&설정 관련 2020. 12. 28. 04:03728x90
wsl2를 이용시 localhost:port로 접근 해결방법
오늘 갑자기 node로 띄운 후 접근이 안되었습니다.
해결 방법을 찾아보았는데 WSL2, 외부 네트워크와 연결하기를 보고 따라 해보니 잘되었습니다.
내용 자체는 외부와 연결이지만, 저의 경우 내부와의 접근도 안되어 시도 하였습니다.먼저 아래의 내용을 가진
wsl2-networks.ps1
을 생성합니다.$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,443,10000,3000,5000); #[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"; }
위의 스크립트에서 port는 80,443,10000,3000,5000를 얼여 두었는데요 포트를 변경하려면 다음 라인(14)을 수정하면 됩니다.
#All the ports you want to forward separated by coma $ports=@(80,443,10000,3000,5000);
해당 파일을 시작 스크립트로 추가 하면 됩니다.
추가를 하기 위해서는 먼저 batch 파일(.bat)을 생서하고 바로가기를 추가로 생성합니다.
생성한 바로가기 파일의 속성에서 고급을 버튼을 눌러서 관리자 권한으로 실행을 체크 합니다.이후 해당 파일을 시작 디렉토리에 추가합니다. 참고
시작 스크립트 등록 방법은 Win+R 키를 눌러 실행 창에 shell:startup 을 입력 후 엔터를 누릅니다.
해당 디렉토리에 파일을 넣으면 됩니다.만약 메뉴얼로 진행할 경우 다음 명령어를 관리자 모드로 실행한 CMD에서 실행하세요.
PowerShell.exe -ExecutionPolicy Bypass -File .\wsl2-forward-server.ps1
처음 powershell을 실행하면 파일이 없다는 오류가 발생하지만, 동작 됩니다.
첫 실행 오류
Remove-NetFireWallRule : 'WSL 2 Firewall Unlock'과(와) 같은 'DisplayName' 속성을 가진 MSFT_NetFirewallRule 개체가 없습 니다. 속성 값을 검증하고 다시 시도하십시오. 위치 줄:1 문자:1 + Remove-NetFireWallRule -DisplayName 'WSL 2 Firewall Unlock' + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + CategoryInfo : ObjectNotFound: (WSL 2 Firewall Unlock:String) [Remove-NetFirewallRule], CimJobException + FullyQualifiedErrorId : CmdletizationQuery_NotFound_DisplayName,Remove-NetFirewallRule Name : {1c1f5350-1d56-4715-ae96-79bf9cb4bf84} DisplayName : WSL 2 Firewall Unlock Description : DisplayGroup : Group : Enabled : True Profile : Any Platform : {} Direction : Outbound Action : Allow EdgeTraversalPolicy : Block LooseSourceMapping : False LocalOnlyMapping : False Owner : PrimaryStatus : OK Status : 저장소에서 규칙을 구문 분석했습니다. (65536) EnforcementStatus : NotApplicable PolicyStoreSource : PersistentStore PolicyStoreSourceType : Local Name : {b6435941-bbbb-4754-8b5c-0a0526592ecf} DisplayName : WSL 2 Firewall Unlock Description : DisplayGroup : Group : Enabled : True Profile : Any Platform : {} Direction : Inbound Action : Allow EdgeTraversalPolicy : Block LooseSourceMapping : False LocalOnlyMapping : False Owner : PrimaryStatus : OK Status : 저장소에서 규칙을 구문 분석했습니다. (65536) EnforcementStatus : NotApplicable PolicyStoreSource : PersistentStore PolicyStoreSourceType : Local 지정된 파일을 찾을 수 없습니다. 지정된 파일을 찾을 수 없습니다. 지정된 파일을 찾을 수 없습니다. 지정된 파일을 찾을 수 없습니다. 지정된 파일을 찾을 수 없습니다.
두번째 실행시
Name : {57c6491d-13f9-4d76-944f-7efd5624efd8} DisplayName : WSL 2 Firewall Unlock Description : DisplayGroup : Group : Enabled : True Profile : Any Platform : {} Direction : Outbound Action : Allow EdgeTraversalPolicy : Block LooseSourceMapping : False LocalOnlyMapping : False Owner : PrimaryStatus : OK Status : 저장소에서 규칙을 구문 분석했습니다. (65536) EnforcementStatus : NotApplicable PolicyStoreSource : PersistentStore PolicyStoreSourceType : Local Name : {982f1982-0a78-42ad-b2c6-eb8a54302847} DisplayName : WSL 2 Firewall Unlock Description : DisplayGroup : Group : Enabled : True Profile : Any Platform : {} Direction : Inbound Action : Allow EdgeTraversalPolicy : Block LooseSourceMapping : False LocalOnlyMapping : False Owner : PrimaryStatus : OK Status : 저장소에서 규칙을 구문 분석했습니다. (65536) EnforcementStatus : NotApplicable PolicyStoreSource : PersistentStore PolicyStoreSourceType : Local
참고 자료
728x90'설치&설정 관련' 카테고리의 다른 글
logstash 사용 후기 (0) 2021.07.05 Typescript 기반의 React에서 css module 사용 설정 (0) 2021.06.23 TIP] Nginx location 설정 옵션 정보 (0) 2020.12.24 [Dockerfile] node:Alpine에서 puppeteer 기동 & 한글 깨짐 처리 (0) 2020.07.10 [Mac TIP] OS 업데이트 이후 다시 설치해야 하는 xcode 재설치 하는 법! (0) 2020.07.08