Skip to main content

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

You can configure runners in isolated environments to use a proxy server for secure communication with GitHub.

참고 항목

GitHub 호스트 실행기는 현재 GitHub Enterprise Server에서 지원되지 않습니다.

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

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

변수DescriptionExample
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), 자체 호스트형 실행기 애플리케이션은 소문자 환경 변수를 사용합니다.

자체 호스트 실행기와 GitHub 간의 연결은 HTTP(포트 80) 또는 HTTPS(포트 443)를 초과합니다. HTTPS를 통한 연결을 보장하려면 GitHub Enterprise Server에 대한 TLS를 구성합니다. 자세한 내용은 TLS 구성을(를) 참조하세요.

예제 구성

참고 항목

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

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 메타데이터 및 관리 IPno_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 구성을 참조하세요.