{"meta":{"title":"Использование прокси-серверов с раннером","intro":"Вы можете настроить раннеры в изолированных условиях так, чтобы использовать прокси-сервер для безопасной связи с GitHub.","product":"GitHub Actions","breadcrumbs":[{"href":"/ru/actions","title":"GitHub Actions"},{"href":"/ru/actions/how-tos","title":"Инструкции"},{"href":"/ru/actions/how-tos/manage-runners","title":"Управление средствами выполнения"},{"href":"/ru/actions/how-tos/manage-runners/use-proxy-servers","title":"Использование прокси-серверов"}],"documentType":"article"},"body":"# Использование прокси-серверов с раннером\n\nВы можете настроить раннеры в изолированных условиях так, чтобы использовать прокси-сервер для безопасной связи с GitHub.\n\n## Настройка прокси для средств запуска Linux и Windows\n\nЕсли средству выполнения тестов необходимо взаимодействовать через прокси-сервер, вы можете настроить параметры прокси-сервера с помощью переменных среды или конфигураций системного уровня.\n\n| Variable      | Description                                                                                           | Example                                                                                     |\n| ------------- | ----------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------- |\n| `https_proxy` | URL прокси для трафика HTTPS. При необходимости вы можете включить базовую аутентификацию.                        | `http://proxy.local`<br>`http://192.168.1.1:8080`<br>`http://username:password@proxy.local` |\n| `http_proxy`  | URL прокси для HTTP-трафика. При необходимости вы можете включить базовую аутентификацию.                         | `http://proxy.local`<br>`http://192.168.1.1:8080`<br>`http://username:password@proxy.local` |\n| `no_proxy`    | Разделенный запятыми список хостов или IP-адресов, которые должны обходить прокси. Некоторые клиенты учитывают IP-адреса только тогда, когда соединения устанавливаются непосредственно с IP-адресом, а не с именем хоста. | `example.com`<br>`example.com,myserver.local:443,example.org`                               |\n\nПеременные среды прокси считываются при запуске приложения средства выполнения, поэтому необходимо задать переменные среды перед настройкой или запуском приложения средства выполнения. Если конфигурация прокси-сервера изменится, необходимо перезапустить приложение средства выполнения.\n\nНа компьютерах с Windows имена переменных среды прокси не чувствительны к регистру. На компьютерах с Linux и macOS рекомендуется использовать только строчные символы в переменных среды. Если у вас есть переменная среды в нижнем и верхнем регистре в Linux или macOS, например `https_proxy` и `HTTPS_PROXY`, локальное приложение Runner использует переменную среды в нижнем регистре.\n\nПодключение между локальными запусками и GitHub через HTTPS (порт 443). \n\n> [!WARNING]\n> Самостоятельные раннеры не поддерживают использование IP-адресов и диапазонов CIDR в `no_proxy` переменной среды. Если ваш GitHub Enterprise Server экземпляр использует IP-адрес и вы настроите `no_proxy` обход прокси для этого адреса, раннер всё равно не сможет подключиться.\n> Если к вашему GitHub Enterprise Server экземпляру обращается с IP-адреса, и соединение должно обойти прокси, раннер не сможет подключиться, даже если этот IP-адрес указан в `no_proxy`.\n\n### Примеры конфигураций\n\n> [!NOTE]\n> Чтобы избежать проблем, рекомендуется рассматривать переменные среды как конфиденциальные регистры независимо от поведения операционной системы и используемой оболочки.\n\n#### Linux и macOS\n\nУстановите переменные среды прокси для средства выполнения.\n\n```shell copy\nexport https_proxy=http://proxy.local:8080\nexport http_proxy=http://proxy.local:8080\nexport no_proxy=example.com,localhost,127.0.0.1\n```\n\n#### Виндоус\n\nВ Windows вы можете настроить параметры прокси либо путем установки переменных среды, либо с помощью [команды netsh](https://learn.microsoft.com/en-us/windows/win32/winhttp/netsh-exe-commands#set-advproxy).\nПодход netsh применяется к приложениям и службам, использующим API WinHTTP.\n\nНастройка переменных среды по-прежнему требуется для средств выполнения, использующих частную сеть. Нужно ли вам также настраивать netsh, зависит от приложений, используемых в ваших рабочих процессах.\n\n```shell copy\nnetsh winhttp set advproxy setting-scope=machine settings={\\\"Proxy\\\":\\\"proxy.local:8080\\\",\\\"ProxyBypass\\\":\\\"168.63.129.16;169.254.169.254\\\",\\\"AutoconfigUrl\\\":\\\"\\\",\\\"AutoDetect\\\":false} \n```\n\nПри настройке этого параметра во время создания пользовательского образа используйте его `setting-scope=machine` , чтобы параметры прокси-сервера сохранялись после перезагрузки и во время создания образа виртуальной машины.\n\n### Сохранение настроек прокси\n\nПри настройке этих переменных среды во время создания пользовательского образа убедитесь, что конфигурация сохраняется при перезагрузке или перестроении образа.\n\n#### Linux и macOS\n\nЗапишите переменные в `/etc/environment`.\n\n```shell\n echo 'http_proxy=http://proxy.local' >> /etc/environment\n```\n\n#### Виндоус\n\nЗадайте общесистемные переменные среды.\n\n```shell copy\n[Environment]::SetEnvironmentVariable(\"http_proxy\", \"http://proxy.local\", \"Machine\")\n```\n\n## Настройка прокси-сервера для средств выполнения Azure\n\nЕсли средство выполнения тестов размещено в Azure в качестве локального средства выполнения тестов или более крупного средства выполнения, размещенного в GitHub и развернутого с использованием частной сети, вам может потребоваться настроить прокси-сервер, чтобы разрешить исходящее подключение к службам GitHub при сохранении сетевой изоляции.\n\nВ список следует добавить метаданные Azure и IP-адреса `no_proxy` управления, чтобы средство выполнения тестов могло получить доступ к необходимым службам Azure. Эти конечные точки позволяют виртуальным машинам Azure получать сведения о конфигурации и удостоверениях, необходимые для правильной работы.\n\nВот два IP-адреса Azure:\n* 168.63.129.16 (см. [общие сведения об IP-адресе Azure 168.63.129.16](https://learn.microsoft.com/en-us/azure/virtual-network/what-is-ip-address-168-63-129-16?tabs=linux))\n* 169.254.169.254 (см. [раздел Служба метаданных экземпляров Azure](https://learn.microsoft.com/en-us/azure/virtual-machines/instance-metadata-service?tabs=linux))\n\n## Использование файла .env для настройки конфигурации прокси-сервера\n\n> [!NOTE]\n> Использование `.env` файла для настройки конфигурации прокси-сервера не может быть выполнено в средстве выполнения, размещенном в GitHub.\n\nВ локальных средствах выполнения тестов вы можете настроить параметры прокси-сервера, добавив переменные в `.env` файл в каталоге приложения локального средства выполнения тестов (каталоге, в котором вы скачали и распаковали программное обеспечение средства выполнения). Этот подход полезен, когда средство выполнения тестов настроено для запуска в качестве службы под системной учетной записью. Когда средство выполнения запускается, оно считывает переменные, заданные `.env` для конфигурации прокси.\n\n### Пример `.env` конфигурации прокси-сервера\n\n```shell copy\nhttps_proxy=http://proxy.local:8080\nno_proxy=example.com,myserver.local:443\n```\n\n## Настройка конфигурации прокси-сервера для контейнеров Docker\n\nЕсли в рабочих процессах используются действия контейнера Docker или контейнеры служб, возможно, потребуется настроить Docker для применения прокси-сервера в дополнение к настройке вышеуказанных переменных среды.\n\nСведения о требуемой конфигурации Docker см. в разделе [\"Настройка Docker\" для использования прокси-сервера](https://docs.docker.com/network/proxy/) в документации По Docker."}