PowerShell에서 개발 프록시 사용

한눈에 보기
목표: 개발자 프록시를 사용하도록 PowerShell 구성
시간: 5분
필수 구성 요소:개발 프록시 설정

개발자 프록시는 모든 운영 체제에서 PowerShell과 함께 작동합니다. macOS에서 PowerShell은 시스템 프록시 변경 내용을 올바르게 감지하며 추가 구성이 필요하지 않습니다. Linux에서 Dev Proxy는 시스템 프록시를 구성하지 않으므로 프록시 환경 변수를 설정해야 합니다. Windows에서 PowerShell은 추가 단계가 필요한 프록시 설정을 캐시합니다.

macOS

macOS에서 PowerShell은 시스템 프록시 변경 내용을 자동으로 감지합니다. 개발자 프록시를 시작하고 평소처럼 PowerShell을 사용합니다. 요청은 추가 구성 없이 가로채집니다.

Linux

Linux에서 Dev Proxy는 시스템 프록시로 등록되지 않으며 PowerShell은 환경 변수에서만 프록시 설정을 읽습니다. Dev Proxy를 시작한 후 PowerShell 세션에서 HTTPS_PROXY 및 HTTP_PROXY 환경 변수를 설정합니다.

$env:HTTPS_PROXY = "http://127.0.0.1:8000"
$env:HTTP_PROXY = "http://127.0.0.1:8000"

개발자 프록시 사용을 마쳤으면 환경 변수를 지웁니다.

$env:HTTPS_PROXY = $null
$env:HTTP_PROXY = $null

윈도우즈

Windows에서 PowerShell과 함께 개발 프록시를 사용하는 경우 시스템 프록시가 시작되거나 중지되는 시기를 PowerShell에서 감지하지 못하는 문제가 발생할 수 있습니다. 이 문제는 Windows PowerShell(5.1) 및 PowerShell 7 이상(코어) 모두에 영향을 줍니다.

문제

Windows에서 PowerShell 세션은 시작할 때 시스템 프록시 설정을 캐시합니다. 이는 당신이 다음을 수행하는 경우를 의미합니다.

  1. PowerShell 세션 열기
  2. 개발자 프록시 시작(시스템 프록시로 자체 구성)
  3. 원래 PowerShell 세션에서 HTTP 요청 만들기

PowerShell은 세션이 시작된 시점부터 캐시된 프록시 설정을 사용하므로 요청이 개발자 프록시를 통해 라우팅되지 않습니다.

마찬가지로, 만약 당신이 다음을 수행한다면:

  1. 개발 프록시 시작
  2. PowerShell 세션을 열고 요청을 만듭니다(요청이 올바르게 가로채집니다).
  3. 개발 프록시 중지
  4. 동일한 PowerShell 세션에서 요청

PowerShell이 더 이상 존재하지 않는 프록시를 계속 사용하려고 하므로 요청이 실패합니다.

해결 방법: PowerShell 세션 다시 시작

가장 간단한 해결 방법은 개발 프록시를 시작하거나 중지한 후 PowerShell 세션을 다시 시작하는 것입니다. 세션을 다시 시작하면 PowerShell에서 현재 시스템 프록시 설정을 선택할 수 있습니다.

대안: 프록시를 수동으로 설정

시스템 프록시 검색에 의존하는 대신 개발자 프록시를 구성하여 시스템 프록시로 등록하지 않고 PowerShell에서 프록시를 수동으로 설정할 수 있습니다.

1단계: 시스템 프록시 없이 개발 프록시 시작

다음 옵션을 사용하여 개발 프록시를 시작합니다.--as-system-proxy false

devproxy --as-system-proxy false

2단계: PowerShell에서 프록시 환경 변수 설정

PowerShell 세션에서 환경 변수를 HTTPS_PROXY 설정합니다.

$env:HTTPS_PROXY = "http://127.0.0.1:8000"

또한 HTTP 요청을 가로채야 하는 경우:

$env:HTTP_PROXY = "http://127.0.0.1:8000"

3단계: 완료되면 프록시 지우기

개발자 프록시 사용을 마쳤으면 환경 변수를 지웁니다.

$env:HTTPS_PROXY = $null
$env:HTTP_PROXY = $null

PowerShell 프로필 사용

프록시 설정을 간소화하기 위해 PowerShell 프로필에서 함수를 만들 수 있습니다. $PROFILE 파일에 다음을 추가합니다.

function Set-DevProxy {
    $env:HTTP_PROXY = "http://127.0.0.1:8000"
    $env:HTTPS_PROXY = "http://127.0.0.1:8000"
    Write-Host "Dev Proxy enabled"
}

function Clear-DevProxy {
    $env:HTTP_PROXY = $null
    $env:HTTPS_PROXY = $null
    Write-Host "Dev Proxy disabled"
}

그런 다음 명령을 사용하여 Set-DevProxyClear-DevProxy PowerShell 세션에서 프록시를 빠르게 사용하거나 사용하지 않도록 설정할 수 있습니다.