안녕하세요
WSL을 사용하다 보면 나중에 한번쯤은 발생하는 고질적인 오류가 있는데
바로 [ '인터넷 연결 불가' ] 라는 아주 치명적인 오류입니다
뭐... apt를 날려도 여기서 무제한으로 대기합니다 ( 나중에는 오류띄움 )
심지어 이 오류는 Hyper-V의 같은 API를 사용하는 Sandbox에서 동일하게 발생하는데 해결법이라고는 일반적으로는 DNS변경만 있더라구요
+ 깃허브 이슈 등에서도 망했습니다
> 왜인지 저와 비슷한 증상이 있는 사람들은 많은데 전부 Closed 혹은 Windows 10 / 알 수 없음이라는 답변이 다라서..
시도해본 일
우선 시작 전에 시도해본 일부터 알려드리겠습니다
1. VPN을 통해 내부 PC - PC로 릴레이 // 실패 : apt 불가
2. 핑으로 통신 여부 체크 // 실패 : 100% 손실 (google.com)
3. DNS 서버 클라우드플레어 / 구글로 변경 // 실패 : 이유 불명
4. 삭제 후 재 설치
5. WSL 재설치
6. HYPER-V 재설치
7. 가상화 옵션 변경
8. 미러 서버 변경 // 혹시 모를 시도...
이후 사실상 때려쳤긴 한데
이게 좀 특이하게 오류가 납니다
HOST PC > WSL 접속이 되고 심지어 SSH도 되는데
놀랍게도 인터넷만 쏙 안 되더라구요?
해결법
원도우에서 Hyper-v 이걸 검색한 다음 [ 관리자 권한으로 실행 ] 을 해줍니다
사실 이 오류 이후에 vmware로 갈아타면서 정이 박살나긴 했는데 Sandbox가 안 되어서 고쳐보려고 해봤습니다
이런 식으로 서버 창을 띄워줍니다
여기서 [ 가상 스위치 관리자 ... ] 을 눌러줍니다
스위치 옵션이 뜨면 [ 새 가상 네트워크 스위치 ] 를 누르고 외부를 눌러줍니다
(저는 wsl용 전용 물리 어댑터가 있어 이걸 사용할 예정입니다 )
옵션을 간단히 설명드리면 다음과 같습니다
[외부] - 실제 물리 어댑터와 논리 어댑터 1:1 관계 ( 브릿지 )
[내부] - 실제 호스트의 물리 어댑터를 논리 어댑터가 공유
[개인] - pc-pc 전용
그리고 저기 WSL이라는 만악의 근원인 어댑터가 있는데
이걸 삭제할 수도 없고 변경할 수도 없더라구요 [ 뭔 관리자 계정인데 권한이 모자르다는 이유로.. ]
집어치고 새로 만들기 > 이런 식으로 설정해줍니다
저처럼 물리 어댑터가 없다면 호스트 연결을 공유하거나 전용 라인을 신설하는 것을 추천드립니다
(기가 USB 랜 2만 얼마거든요)
대역폭 문제가 있긴 해도 저는 이 WSL을 테스트 서버로 써먹었기 때문에 내부망 대역폭을 위해 분리했습니다
만드셨으면 [적용] > [확인]을 눌러줍니다
이때 이름은 . wslconfig파일을 작성해야 하니 영문자로 간결하게 작성해주세요
external / exter / exit 등 원하는 걸로 작성해줍니다
WSL CONFIG 생성
C : // 사용자 / USERID / 경로로 이동해줍니다 ( 파일 탐색기에서 찾아가세요 )
그 다음 .wslconfig 파일을 생성합니다 ( 텍스트 파일 생성 > 확장자 변경 추천 )
다시 열기 > 메모장으로 열기를 눌러줍니다
사실 ide로 열어도 상관은 없는데 여기에 온갖 민감한 SW 파일이 저장되는 경로임에 따라 굳이 수정하는 건 이거 추가만 하시길 추천드립니다
그리고 이 텍스트를 붙여넣습니다
[wsl2]
networkingMode=bridged
vmSwitch=external
dhcp=true
아 여기서 vmSwitch에 해당하는 값은
이런 스위치 이름 말하는 겁니다
다르게 하셨으면 변경 후 저장해주세요
그리고 터미널에 다음의 명령어를 입력합니다
wsl --shutdown
이후 평소에 사용하는 WSL 환경을 열어 실행해보면 APT와 핑이 기적처럼 동작하는 모습이 보여집니다..
ㅠㅠㅠ 이거 해결하려고 10일간 삽질했는데... 망할 Hyper-v....
드디어 겟 요청이 정상적으로 날아다닙니다.. ㅠ
누군가에게 저의 삽질이 도움이 되었으면 좋겠네요...
아 그리고 이걸 하면 부차적인 이점이 하나 생겨요
바로 고정 IP가 할당됩니다
즉
기존
공유기 > HOST PC > VM Switch > WSL
이런 느낌이
공유기 > HOST PC 어댑터 2 > WSL 이런 느낌입니다