Skip to main content

실행기에서 프록시 서버 사용

GitHub과의 보안 통신을 위해 프록시 서버를 사용하도록 격리된 환경에서 실행기를 구성할 수 있습니다.

데이터 재사용 가능.작업.엔터프라이즈-깃허브-호스티드-러너 %}

Linux 및 Windows 실행기를 위한 프록시 구성

실행기가 프록시 서버를 통해 통신해야 할 경우, 환경 변수나 시스템 수준의 설정을 사용하여 프록시 설정을 구성할 수 있습니다.

변수Description예시
https_proxyHTTPS 트래픽에 대한 프록시 URL입니다. 필요한 경우 기본 인증을 포함할 수 있습니다.http://proxy.local
http://192.168.1.1:8080
http://username:password@proxy.local
http_proxyHTTP 트래픽에 대한 프록시 URL입니다. 필요한 경우 기본 인증을 포함할 수 있습니다.http://proxy.local
http://192.168.1.1:8080
http://username:password@proxy.local
no_proxy프록시를 바이패스해야 하는 호스트 또는 IP 주소의 쉼표로 구분된 목록입니다. 일부 클라이언트는 호스트 이름이 아닌 IP에 직접 연결되는 경우에만 IP 주소를 적용합니다.example.com
example.com,myserver.local:443,example.org

실행기 애플리케이션이 시작될 때 프록시 환경 변수가 읽혀지므로 실행기 애플리케이션을 구성하거나 시작하기 전에 환경 변수를 설정해야 합니다. 프록시 구성이 변경되면 실행기 애플리케이션을 다시 시작해야 합니다.

Windows 컴퓨터에서 프록시 환경 변수 이름은 대/소문자를 구분하지 않습니다. Linux 및 macOS 머신에서는 모두 소문자인 환경 변수를 사용하는 것이 좋습니다. Linux 또는 macOS의 경우에 소문자 및 대문자로 된 환경 변수가 모두 있는 경우(예: https_proxy, HTTPS_PROXY), 자체 호스트형 실행기 애플리케이션은 소문자 환경 변수를 사용합니다.

데이터 재사용 가능 항목.작업.셀프 호스팅 러너 포트 및 프로토콜 %}

예제 구성

참고

문제를 방지하려면 사용 중인 운영 체제 및 셸의 동작과 관계없이 환경 변수를 대/소문자를 구분하는 것이 좋습니다.

Linux 및 macOS

러너에서 프록시 환경 변수를 설정합니다.

Shell
export https_proxy=http://proxy.local:8080
export http_proxy=http://proxy.local:8080
export no_proxy=example.com,localhost,127.0.0.1

윈도우즈

Windows에서는 환경 변수를 설정하거나 netsh 명령을 사용하여 프록시 설정을 구성할 수 있습니다. netsh 접근 방식은 WinHTTP API를 사용하는 애플리케이션 및 서비스에 적용됩니다.

프라이빗 네트워킹을 사용하는 실행기에서도 여전히 환경 변수를 설정해야 합니다. netsh를 구성해야 하는지 여부는 워크플로에 사용되는 애플리케이션에 따라 달라집니다.

Shell
netsh winhttp set advproxy setting-scope=machine settings={\"Proxy\":\"proxy.local:8080\",\"ProxyBypass\":\"168.63.129.16;169.254.169.254\",\"AutoconfigUrl\":\"\",\"AutoDetect\":false} 

사용자 지정 이미지 생성 setting-scope=machine 중에 이를 구성할 때는 다시 부팅 후 및 VM 이미징 중에 프록시 설정이 유지되도록 합니다.

프록시 설정을 영구적으로 설정

사용자 지정 이미지 생성 중에 이러한 환경 변수를 설정하는 경우 다시 부팅 또는 이미지 다시 빌드에서 구성이 유지되는지 확인합니다.

Linux 및 macOS

에 변수를 씁니다 /etc/environment.

 echo 'http_proxy=http://proxy.local' >> /etc/environment

윈도우즈

시스템 전체 환경 변수를 설정합니다.

Shell
[Environment]::SetEnvironmentVariable("http_proxy", "http://proxy.local", "Machine")

Azure Runners에 대한 프록시 구성

실행기가 Azure에서 호스팅되며, 자체 호스팅된 러너이거나 프라이빗 네트워킹으로 배포된 GitHub 호스팅된 더 큰 러너인 경우, 네트워크 격리를 유지하면서 GitHub 서비스에 대한 아웃바운드 연결을 허용하도록 프록시를 구성해야 할 수 있습니다.

실행기에서 필요한 Azure 서비스에 액세스할 수 있도록 목록에 Azure 메타데이터 및 관리 IP no_proxy 를 추가해야 합니다. 이러한 엔드포인트를 사용하면 Azure VM이 적절한 작업에 필요한 구성 및 ID 정보를 검색할 수 있습니다.

두 Azure IP는 다음과 같습니다.

.env 파일을 사용하여 프록시 구성 설정

참고

          `.env` GitHub 호스팅 실행기에서는 파일을 사용하여 프록시 구성을 설정할 수 없습니다.

자체 호스팅 실행기에서 자체 호스팅 실행기 애플리케이션 디렉터리(실행기 소프트웨어를 다운로드하고 압축을 풀 디렉터리)의 파일에 변수 .env 를 추가하여 프록시 설정을 구성할 수 있습니다. 이 방법은 실행기가 시스템 계정에서 서비스로 실행되도록 구성된 경우에 유용합니다. 실행기 시작 시 프록시 구성에 대해 설정된 .env 변수를 읽습니다.

          `.env` 프록시 구성 예제
Shell
https_proxy=http://proxy.local:8080
no_proxy=example.com,myserver.local:443

Docker 컨테이너에 대한 프록시 구성 설정

워크플로에서 Docker 컨테이너 작업 또는 서비스 컨테이너를 사용하는 경우 위 환경 변수를 설정하는 것 외에도 프록시 서버를 사용하도록 Docker를 구성해야 할 수 있습니다.

필요한 Docker 구성에 대한 자세한 내용은 Docker 설명서에서 프록시 서버를 사용하도록 Docker 구성을 참조하세요.