WSL 에서 Django 를 띄워서 테스트를 잘 하고 있다가 PC를 리붓했는데... 왠걸..
갑자기 외부에서 해당 서버로 접속이 안된다.
결론적으로 말하자면,
1. WSL2 은 아이피가 계속해서 유동적으로 변경되기 때문에
2. 포트를 고정시켜줘야 한다.
https://learn.microsoft.com/ko-kr/windows/wsl/networking
한참을 찾다가 아래 사이트에서 팁을 발견했다. (감사합니다!)
1. WSL2 포트포워딩 방법
2. 그리고 상단의 작성자분이 참고하신 원본 스크립트 경로도 나중을 위해 함께 덧붙인다.
https://github.com/microsoft/WSL/issues/4150
아래의 스크립트를 추려 * .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";
}
코드 내 ports 부분을 원하는 포트로 변경 하면 된다.
$ports=@(80,443,10000,3000,5000);
작업스케쥴러는이름/설명 작성 후, 사용자의 로그인여부와 관계없이 가장 높은 권한으로 실행 시킨다
시작할때 셋팅하여 컴퓨터가 부팅되면 항상 시작하도록 셋팅한다
프로그램/스크립트 :
C:\Windows\System32\WindowsPowerShell\v1.0\powershell.exe
인수 추가 : 실행하는 위치 작성
Ex.)ExecutionPolicy Unrestricted -File "C:\Users\컴퓨터명\Desktop\폴더명\wsl2_ipsetting.ps1”
'환경설정' 카테고리의 다른 글
Google API - OAuth 2.0 인증 (0) | 2023.03.19 |
---|---|
Google API - Google Service Account 를 사용(Analytics API) (0) | 2023.03.17 |
Google API - POSTMAN 내 OAuth 2.0 인증 (0) | 2023.03.14 |
Tistory 목차 셋팅- TOC(Table Of Contents) (0) | 2023.03.13 |
WSL2- 우분투 검은 화면 부팅 (0) | 2022.12.27 |