0-1. BIOS 진입
0-2. 메뉴에서 Virtualization 항목을 Enable로 설정
0-3. Windows 기능 켜기/끄기 진입

0-4. 아래 항목 체크 및 활성화
1-1. Powershell을 통해 설치 가능한 리눅스 기반 운영체제 확인
wsl --list --online

1-2. WSL 내 운영체제 설치
wsl --install

2-1. VSCode 내 확장 프로그램 중 WSL 설치

2-2. WSL 연결
Ctrl + Shift + P 단축키 -> WSL:Connect to WSL 실행

3-1. vLLM 실행
3-2 Uvicorn을 통해 FastAPI 서버 실행
4-1. WSL 내부 ip 확인
# 설치
sudo apt-get install net-tools
# 실행
ifconfig
4-2. Openssh-server 재설치 (권장)
wsl 설치 시 openssh-server도 함께 설치되나, 문제가 있다는 이야기가 있어 재설치를 권장합니다
sudo apt remove openssh-server # 기존 설치 삭제
sudo apt update # 패키지 업데이트
sudo apt install openssh-server # 재설치
4-3. openssh-server 설정 변경
# sshd_config
sudo vim /etc/ssh/sshd_config
# Port 22를 주석해제
Port 22
# PasswordAuthentication no 또는 주석을 변경
PasswordAuthentication yes
# 서버 재시작
sudo service ssh --full-restart
4-4. 포트 포워딩을 위한 스크립트(.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 ){
$remoteip = $matches[0];
} else {
Write-Host "WSL IP를 찾을 수 없어 종료합니다."
exit;
}
# 1. 방화벽 규칙 설정 (Windows 외부에서 접속할 포트들)
$external_ports = @(8080, 22);
$addr = '0.0.0.0';
iex "Remove-NetFireWallRule -DisplayName 'WSL 2 Firewall Unlock' -ErrorAction SilentlyContinue"
iex "New-NetFireWallRule -DisplayName 'WSL 2 Firewall Unlock' -Direction Inbound -LocalPort ($external_ports -join ',') -Action Allow -Protocol TCP"
# 2. 포트 매핑 실행
# SSH (22 -> 22)
netsh interface portproxy delete v4tov4 listenport=22 listenaddress=$addr
netsh interface portproxy add v4tov4 listenport=22 listenaddress=$addr connectport=22 connectaddress=$remoteip
# FastAPI (Windows: 8080 -> WSL: 5001)
netsh interface portproxy delete v4tov4 listenport=8080 listenaddress=$addr
netsh interface portproxy add v4tov4 listenport=8080 listenaddress=$addr connectport=5001 connectaddress=$remoteip
netsh interface portproxy show v4tov4
위 스크립트에 대한 설명은 다음과 같습니다.
$remoteport 및 IP 주소 확인 : wsl의 ifconfig 명령어를 bash 로 수행하여 네트워
크 정보 획득 후 ip가 있는 경우 $remoteport 에 저장
포트 설정 : $ports 에 배열 형태로 포워딩을 희망하는 포트 들을 저장
방화벽 규칙 설정 : New-NetFireWaalRule 명령을 이용해 외부 포트 연결 허용
포트 포워딩 설정 : netsh interface portproxy 명령을 사용해 windows pc 포트 포워딩 설정
포워딩은 $ports 배열에 나열된 포트를 $remoteport의 wsl ip 주소로 연결하는 방식으로 설정
4-5 스크립트 실행
# ports_wsl.ps1 파일과 동일한 디렉토리에서
.\ports_wsl.ps1
위 스크립트 실행 시, Windows의 8080번 Port로 요청하면 WSL IP의 5001번 Port를 통해 정상적으로 중계됩니다.
4-6 인바운드 규칙 설정

포트 선택 -> TCP 선택 -> 특정 포컬 포트 선택 -> 포트 입력

연결 허용 -> 다음 -> 프로필 -> 다음 -> 이름 부여
4-7 WSL 포트포워딩 설정
netsh interface portproxy add v4tov4 listenport=8001 listenaddress=0.0.0.0 connectport=5001 connectaddress=[WSL_IP_주소]
중계를 희망하는 포트가 여러개일 경우 모든 포트를 마찬가지로 설정해주면 됩니다.