[TIL] WSL2에 ssh 외부 연결 환경 구축하기

김연찬·2024년 11월 4일

배경

맥북프로 M2를 사용하고 있지만 GPU의 문제인지 학원의 3050 그래픽 카드가 결과물이 더 좋게 나온다. 그래서 학원에서 놀고 있는 윈도우 컴퓨터를 AI서버로 만들어서 테스트를 진행하기로 했다.

OS 선택

마음 같아서는 USB 우분투를 사용해서 우분투 서버로 사용하고 싶었다. 그런데 window에서도 WSL을 사용해서 Linux를 즐길 수 잇다는 것을 알고 WSL로 진행하기로 했다.

WSL이란?

WSL(Windows Subsystem for Linux)은 Windows에서 Linux 배포판을 실행할 수 있게 해주는 호환성 계층이다. WSL을 통해 Windows 사용자는 별도의 가상 머신이나 듀얼 부팅 없이 Windows 환경에서 직접 Linux 환경을 사용할 수 있다.2020년 6월부터 WSL2를 지원한다.

WSL2?

WSL1은 Linux 시스템 호출을 Windows 시스템 호출로 변환하여 Windows에서 Linux 바이너리를 실행하는 방식이다. 가볍고 빠르지만, 호환성에 제한이 있다.
WSL2는 실제 Linux 커널을 가상 머신을 통해 구동하기 때문에 호환성과 성능이 더 좋다. Docker와 같은 복잡한 Linux 프로그램도 실행이 가능하고, 네트워크 및 파일 시스템 성능이 향상되었다.

진행

WSL은 설치하는 방식은 인터넷에 자세한 설명이 있으니 넘어가겠습니다. (•̀ᴗ-)✧

문제는 WSL1과 WSL2로 넘어오면서 Linux 커널을 가상머신을 통해 구동하기 때문에 외부환경에서 Linux ssh에 접속하는 과정이 복잡해졌다.

기존 WSL1에서는 포트 포워딩만으로 ssh에 접속 가능했다. 하지만 WSL2는 커널 가상머신이 또다른 사설IP(172.16.0.0 ~ 172.31.255.255)를 가지고 있다. 단순하게 포트 포워딩을 한번 더 해줘야 한다는 것이다.

해결

netsh interface portproxy add v4tov4 listenport=$port listenaddress='0.0.0.0' connectport=$port connectaddress=$WLS사설IP
이걸로 간단하게 해결 가능하다. 다만 사설IP도 주기적으로 변경 되기때문에 윈도우에 스케쥴러를 사용해 변경되는 사설IP를 계속 업데이트해줘야 합니다. 이또한 인터넷에 자세한 설명이 있으니 넘어가겠습니다. (•̀ᴗ-)✧

참조

WSL2에 ssh 서버와 외부연결 환경 구축
이 글을 정말 많이 참고했습니다. 정리가 기가막힙니다. 들어가셔서 읽어보시고 좋아요 눌러주시면 감사하겠습니다.

0개의 댓글