한눈에 보기
목표: WSL(Linux용 Windows 하위 시스템)에서 개발 프록시 사용
시간: 15분
필수 구성 요소:개발 프록시 설정, WSL 설치
WSL(Linux용 Windows 하위 시스템)에서 애플리케이션을 개발할 때 개발자 프록시를 사용하는 두 가지 옵션이 있습니다. Windows 호스트 또는 WSL 내에서 실행합니다. 두 방법 모두 개발 워크플로에 따라 장점이 있습니다.
옵션 1: Windows 호스트의 개발자 프록시(권장)
가장 간단한 방법은 Windows에서 개발 프록시를 설치하고 실행하는 것입니다. WSL의 자동 프록시 및 미러 네트워킹 모드에서 WSL은 Windows 시스템 프록시를 사용하므로 WSL에서 실행되는 애플리케이션은 WSL에서 프록시를 구성하지 않고 Dev Proxy에 의해 트래픽을 가로채게 됩니다.
WSL 네트워킹 구성
Dev Proxy는 localhost 주소(127.0.0.1:8000가 기본값)에 Windows 시스템 프록시로 등록됩니다. WSL의 애플리케이션에서 이 프록시를 사용하려면 Windows의 %UserProfile%\.wslconfig에 있는 WSL 구성 파일의 [wsl2] 섹션에서 다음 설정을 사용하도록 설정합니다.
[wsl2]
networkingMode=mirrored
autoProxy=true
| Setting | Description |
|---|---|
networkingMode=mirrored |
Windows 네트워크 인터페이스를 Linux로 미러링하여 WSL의 애플리케이션이 개발자 프록시127.0.0.1와 같은 Windows에서 실행되는 서버에 연결할 수 있습니다. Windows 11 버전 22H2 이상이 필요합니다. 기본값은 nat입니다. |
autoProxy=true |
Windows에 구성된 프록시가 WSL에서 자동으로 설정되도록 WSL에서 Windows HTTP 프록시 설정을 사용하도록 합니다. Windows 11에서 사용할 수 있습니다. 기본적으로 활성화되어 있습니다. |
.wslconfig 파일을 변경한 후 변경 내용을 적용하려면 WSL을 다시 시작합니다.
wsl --shutdown
비고
기본 NAT 네트워킹 모드에서 WSL의 애플리케이션은 127.0.0.1을 사용하여 Windows의 Dev Proxy에 연결할 수 없습니다. 미러된 네트워킹 모드를 사용할 수 없는 경우 WSL 내에서 Dev Proxy를 대신 실행합니다. 자세한 내용은 옵션 2: WSL 내의 개발 프록시를 참조하세요.
자세한 내용은 WSL을 사용하여 네트워크 애플리케이션에 액세스 및 WSL의 고급 설정 구성을 참조하세요.
Windows에서 개발 프록시 설정
winget 또는 수동 설치를 사용하여 Windows에 개발 프록시를 설치합니다.
개발 프록시 시작:
devproxy메시지가 표시되면 인증서를 신뢰하세요.
WSL에서 개발 프록시 사용
Dev Proxy가 Windows 시스템 프록시로 실행되고(기본 동작) WSL 네트워킹을 구성한 경우 WSL의 애플리케이션이 트래픽을 자동으로 Dev Proxy를 통해 라우팅합니다.
평소처럼 WSL에서 애플리케이션을 시작합니다. 개발자 프록시는 프록시 설정을 준수하는 애플리케이션이 수행하는 HTTPS 요청을 가로챕니다.
중요합니다
개발 프록시를 시작하거나 중지한 후 WSL 다시 시작
WSL은 시작할 때 Windows 프록시 설정을 읽습니다. WSL이 이미 실행된 후 개발 프록시를 시작하거나 개발자 프록시를 중지하고 다시 시작하는 경우 변경 내용을 적용하려면 WSL을 다시 시작해야 합니다.
wsl --shutdown
그런 다음 새 WSL 세션을 시작합니다.
WSL에서 인증서 신뢰
개발자 프록시가 HTTPS 트래픽을 가로채려면 WSL의 애플리케이션이 개발 프록시 인증서를 신뢰해야 합니다. Windows에서 인증서를 복사하거나 개발자 프록시 API를 사용하여 내보낼 수 있습니다.
옵션 A: Windows에서 인증서 복사
WSL에서 Windows에서 인증서를 복사합니다.
cp "/mnt/c/Users/<your-username>/AppData/Local/Programs/Dev Proxy/rootCert.pfx" ~/인증서 내보내기 및 설치:
# Export the certificate openssl pkcs12 -in ~/rootCert.pfx -clcerts -nokeys -out dev-proxy-ca.crt -passin pass:"" # Install the certificate sudo cp dev-proxy-ca.crt /usr/local/share/ca-certificates/ # Update certificates sudo update-ca-certificates
옵션 B: 개발 프록시 API 사용
Dev Proxy API에는 베어러 토큰이 필요합니다. Dev Proxy가 Windows에서 실행 중인 동안 Windows 터미널에서 api token 명령을 실행하여 토큰을 가져옵니다.
devproxy api token
그런 다음, WSL에서 인증서를 다운로드하고 설치합니다. 가져온 토큰으로 <token> 바꾸세요.
# Download the certificate from Dev Proxy API
curl -H "Authorization: Bearer <token>" -o dev-proxy-ca.crt "http://127.0.0.1:8897/proxy/rootCertificate?format=crt"
# Install the certificate
sudo cp dev-proxy-ca.crt /usr/local/share/ca-certificates/
# Update certificates
sudo update-ca-certificates
비고
일부 애플리케이션은 시스템 인증서 저장소를 신뢰하기 위해 추가 구성이 필요할 수 있습니다. Node.js 애플리케이션의 경우 개발 목적으로 설정 NODE_TLS_REJECT_UNAUTHORIZED=0 해야 할 수 있습니다. 프로덕션 코드에는 인증서 유효성 검사를 사용하지 않도록 설정하는 것이 좋습니다.
옵션 2: WSL 내 개발 프록시
WSL 내에서 개발자 프록시를 완전히 실행하려면 Linux 설치 방법을 사용하여 설치하고 프록시를 수동으로 구성합니다.
WSL에 개발 프록시 설치
설치 스크립트는 Dev Proxy를 추출하려면 unzip이 필요합니다. Ubuntu와 같은 새 WSL 배포는 기본적으로 이를 포함하지 않습니다.
unzip를 설치하십시오:
sudo apt update
sudo apt install unzip
설치 스크립트를 사용하여 개발 프록시를 설치합니다.
bash -c "$(curl -sL https://aka.ms/devproxy/setup.sh)"
수동으로 프록시 구성
WSL에는 그래픽 데스크톱 환경이 없으므로 개발자 프록시는 시스템 프록시로 자동으로 등록할 수 없습니다. 프록시를 수동으로 사용하도록 애플리케이션을 구성합니다.
개발 프록시 구성 파일을 만들고 설정을
asSystemProxy에서false로 변경합니다.{ "$schema": "https://raw.githubusercontent.com/dotnet/dev-proxy/main/schemas/v4.0.0/rc.schema.json", "asSystemProxy": false, "plugins": [ { "name": "RetryAfterPlugin", "enabled": true, "pluginPath": "~appFolder/plugins/DevProxy.Plugins.dll" }, { "name": "GenericRandomErrorPlugin", "enabled": true, "pluginPath": "~appFolder/plugins/DevProxy.Plugins.dll", "configSection": "genericRandomErrorPlugin" } ], "urlsToWatch": [ "https://jsonplaceholder.typicode.com/*" ], "genericRandomErrorPlugin": { "$schema": "https://raw.githubusercontent.com/dotnet/dev-proxy/main/schemas/v4.0.0/genericrandomerrorplugin.schema.json", "errorsFile": "devproxy-errors.json", "rate": 50 }, "logLevel": "information" }개발 프록시 시작:
devproxy인증서 신뢰:
# Export Dev Proxy root certificate openssl pkcs12 -in ~/.config/dev-proxy/rootCert.pfx -clcerts -nokeys -out dev-proxy-ca.crt -passin pass:"" # Install the certificate sudo cp dev-proxy-ca.crt /usr/local/share/ca-certificates/ # Update certificates sudo update-ca-certificates프록시를 사용하도록 애플리케이션을 구성합니다. 환경 변수를
HTTPS_PROXY설정합니다.export HTTPS_PROXY=http://127.0.0.1:8000또는 애플리케이션을 실행할 때 지정합니다.
HTTPS_PROXY=http://127.0.0.1:8000 node app.js
팁 (조언)
Node.js 애플리케이션에 대한 프록시를 구성하는 방법에 대한 자세한 내용은 Node.js 애플리케이션에서 개발 프록시 사용을 참조하세요.
접근 방식 비교
| 특징 | Windows 호스트(옵션 1) | WSL 내부(옵션 2) |
|---|---|---|
| 설치 복잡성 | Simple | 보통 |
| Requirements | Windows 11 22H2 이상, WSL 미러링 네트워킹 모드 | None |
| 인증서 관리 | Windows에서 일회성 복사 | 수동 내보내기 |
| 프록시 구성 | 자동(WSL 자동 프록시) | 수동(HTTPS_PROXY) |
| WSL 다시 시작 필요 | 예, 프록시를 전환할 때 | 아니오 |
| 모든 WSL 앱에서 작동 | 네 | 앱 프록시 지원에 따라 다름 |
대부분의 시나리오에서는 단순성과 자동 프록시 구성으로 인해 Windows에서 개발자 프록시(옵션 1)를 실행하는 것이 좋습니다.
문제 해결
Windows 호스트를 사용할 때 요청이 가로채지지 않습니다.
Windows의 개발자 프록시가 WSL의 요청을 가로채지 않는 경우:
[wsl2]파일의.wslconfig섹션에networkingMode=mirrored및autoProxy=true이 설정되어 있는지 확인합니다. 자세한 내용은 WSL 네트워킹 구성을 참조하세요.WSL을 다시 시작하여 프록시 설정을 새로 고칩니다.
wsl --shutdown개발 프록시가 실행 중이고 시스템 프록시로 등록되었는지 확인합니다.
개발 프록시 인증서가 WSL에서 신뢰할 수 있는지 확인합니다.
unzip: 명령을 찾을 수 없음
설치 스크립트가 unzip: command not found 오류로 실패하면 unzip를 설치하고 설치 스크립트를 다시 실행합니다.
sudo apt update
sudo apt install unzip
인증서 오류
인증서 오류가 표시되는 경우:
- WSL에서 인증서 신뢰의 단계에 따라 WSL에 인증서를 설치했는지 확인합니다.
- Node.js 애플리케이션의 경우 프록시 에이전트를 사용하도록 애플리케이션을 구성해야 할 수 있습니다. Node.js 애플리케이션에서 개발 프록시 사용을 참조하세요.
WSL 네트워킹 문제
WSL 2는 가상화된 네트워크 어댑터를 사용합니다. 네트워킹 문제가 발생하는 경우:
- Windows 방화벽에서 개발 프록시를 허용하는지 확인합니다.
- 프록시 주소를 구성할 때
localhost대신127.0.0.1사용하세요.
관련 콘텐츠
Dev Proxy