LINUX

제목[WSL2] 회사(WiFi+Ethernet), 집(WiFi+Ethernet) + 각기 다른 네트웍장치에서의 외부 네트웍 접속2026-01-12 13:24
작성자 Level 10
첨부파일wsl-set-vmswitch.zip (2.9KB)

환경 및 요구 사항 :

 - 회사 :

WiFi(인터넷), Ethernet(내부망) , Ethernet 은 USB HUB+GiGabit Switch = 가상 스위치 (WSL_W)

 - 집     :

WiFi(내부망), Ethernet(외부망) , Ethernet 은 USB HUB+GiGabit Switch = 가상 스위치(WSL)

 - 문제 점 :

mirror 방식으로 사용하면 문제 발생 (네트웍 카드가 너무 많아서 문제가 발생 함)

bridge 로 하면 문제는 없으나 사용자의 홈디렉토리의 .wslconfig 의 vmSwitch 값을 자꾸 변경해 줘야 합니다.

 

[wsl2]
memory=8GB
processors=4
swap=1GB
localhostforwarding=true
networkingMode=bridged
vmSwitch=WSL_W
#vmSwitch=WSL

 

위의 불편을 해소하기 위해 ChatGPT의 도움을 빌림. Power Shell 스크립트를 생성(첨부파일 참조)

위의 파일이 정상 동작하기 위해서는 "Hyper-V 관리자" 의 가상 스위치 관리자에서 아래의 그림과 같이 각 각 WSL, WSL_W 의 가상 스위치를 만듭니다.

 

가상 스위치

 

첨부 파일을 "C:\Scripts" 디렉토리에 저장 합니다. (원하는 디렉토리에 저장해도 상관 없음)

작업 스케줄러를 열고 "WSL vmSwitch Auto" 로 작업을 생성합니다.

 

 

트리거 설정은 "로그온 시" 와 이벤트 상태 두 개를 추가합니다.

 

이벤트 상태의 경우 사용자 지정 필터로 설정하고 XML 을 입력 하면 됩니다.

 

 

<QueryList>
  <Query Id="0" Path="Microsoft-Windows-NetworkProfile/Operational">
    <Select Path="Microsoft-Windows-NetworkProfile/Operational">
      *[System[Provider[@Name='Microsoft-Windows-NetworkProfile'] and (EventID=10000 or EventID=10001)]]
    </Select>
  </Query>
</QueryList>

 

동작 속성은 아래와 같이 입력합니다.

프로그램/스크립트 = powershell.exe

인수 추가 옵션 = -NoProfile -ExecutionPolicy Bypass -File "C:\Script\wsl-set-vmswitch.ps1"

시작위치 [선택사항] = C:\Script

 

 

위와 같이 설정 한 후 WSL 을 재시작 하면 됩니다.

위 스크립트가 정상 동작할 경우 사용자의 네트웍 스위치의 상태가 변경 될 때 마다 .wslconfig 의 내용이 변경 되고 또한 log 도 같은 디렉토리에 생성될 것입니다.

 

log 는 최초 "wsl-vmswitch.log" 란 이름으로 더미 텍스트 파일을 만들어 주면 됩니다.

 

 

댓글
자동등록방지
(자동등록방지 숫자를 입력해 주세요)