Перейти к основному содержанию
Claude Code поддерживает различные конфигурации сети и безопасности предприятия через переменные окружения. Это включает маршрутизацию трафика через корпоративные прокси-серверы, доверие пользовательским центрам сертификации (CA) и аутентификацию с помощью сертификатов взаимного Transport Layer Security (mTLS) для повышенной безопасности. Установите эти переменные окружения перед запуском Claude Code. Переменные, экспортированные в вашей оболочке, читаются один раз при запуске, поэтому запущенный сеанс не подхватывает последующие изменения в переменных окружения вашей оболочки.
Все переменные окружения, показанные на этой странице, также можно настроить в settings.json.

Конфигурация прокси

Переменные окружения

Claude Code соответствует стандартным переменным окружения прокси. В сеансах Claude Desktop, где приложение управляет подключением поставщика, Claude Code читает их только из управляемых параметров и ~/.claude/settings.json; см. mTLS аутентификация для правил области действия.
Варианты в нижнем регистре также работают, и Claude Code использует первый установленный в порядке https_proxy, HTTPS_PROXY, http_proxy, HTTP_PROXY. Claude Code никогда не отправляет свои WebSocket соединения на localhost, ::1 или 127.0.0.0/8 через прокси, поэтому вам не нужна запись loopback в NO_PROXY для них.
Claude Code не поддерживает SOCKS прокси.

Базовая аутентификация

Если ваш прокси требует базовую аутентификацию, включите учетные данные в URL прокси:
Избегайте жесткого кодирования паролей в скриптах. Используйте переменные окружения или безопасное хранилище учетных данных вместо этого.
Для прокси, требующих расширенную аутентификацию (NTLM, Kerberos и т. д.), рассмотрите использование сервиса LLM Gateway, который поддерживает ваш метод аутентификации.

Хранилище сертификатов CA

По умолчанию Claude Code доверяет как своему встроенному набору сертификатов Mozilla CA, так и хранилищу сертификатов вашей операционной системы. Чтение хранилища ОС требует среды выполнения с tls.getCACertificates: встроенный установщик всегда его имеет, а установки npm требуют Node 22.15 или более поздней версии. На более старых версиях Node применяются только встроенный набор и NODE_EXTRA_CA_CERTS. Корпоративные прокси с TLS-инспекцией работают без дополнительной конфигурации, когда их корневой сертификат установлен в хранилище доверия ОС и среда выполнения может его прочитать. Если такой прокси некорректно обрабатывает тела запросов, сжатые gzip, установите CLAUDE_CODE_GZIP_REQUEST_BODIES=0, чтобы отключить сжатие для запросов к Claude API, запросов телеметрии и запросов публикации артефактов. CLAUDE_CODE_CERT_STORE принимает список источников, разделенный запятыми. Признанные значения: bundled для набора Mozilla CA, поставляемого с Claude Code, и system для хранилища доверия операционной системы. По умолчанию используется bundled,system. Для доверия только встроенному набору Mozilla CA:
Для доверия только хранилищу сертификатов ОС:
CLAUDE_CODE_CERT_STORE не имеет выделенного ключа схемы settings.json. Установите его через блок env в ~/.claude/settings.json или непосредственно в окружении процесса.

Пользовательские сертификаты CA

Если ваша корпоративная среда использует пользовательский CA, настройте Claude Code для доверия ему напрямую:
Если вы видите одно из этих предупреждений, Claude Code не удалось загрузить файл NODE_EXTRA_CA_CERTS целиком, и подключения, которым нужен пропущенный сертификат, могут завершаться ошибкой:
  • Claude Code used only the certificates that it could read in full from the NODE_EXTRA_CA_CERTS file
  • Claude Code ignored all of the NODE_EXTRA_CA_CERTS file: it holds no certificate that Claude Code can read
Полный текст каждого предупреждения объясняет, как исправить файл. Пропущенный сертификат, который также есть в хранилище сертификатов CA, по-прежнему работает.

Аутентификация mTLS

Для корпоративных сред, требующих аутентификации с использованием сертификата клиента:
Claude Code читает файлы сертификата и ключа при запуске и перечитывает их каждый раз при применении параметров, например, когда ваша организация изменяет блок env в управляемых параметрах во время сеанса. Чтобы ротировать сертификат и ключ, замените файлы по тем же путям. Claude Code подхватывает замену в работающем сеансе без перезагрузки. Когда запрос API завершается с ошибкой на уровне соединения, такой как сброс соединения или ошибка TLS handshake, он перечитывает оба файла и повторяет запрос с новой парой. До версии 2.1.232 Claude Code не перечитывал при ошибках соединения, поэтому он сохранял уже загруженную пару до следующего применения параметров или перезагрузки. Claude Code перечитывает файлы в ответ на неудачные запросы, а не путём отслеживания их изменений:
  • Время: Claude Code ничего не делает в момент замены файлов. Он представляет новую пару при повторной попытке после квалифицирующегося сбоя или при следующем запросе после применения параметров, в зависимости от того, что произойдёт раньше.
  • Отклонения шлюза: Claude Code перечитывает, когда ваш шлюз сбрасывает соединение или отклоняет TLS handshake после того, как перестаёт принимать старую пару. Он не перечитывает, когда шлюз завершает handshake и отвечает с ошибкой HTTP. В этом случае Claude Code загружает новую пару при следующем применении параметров или при перезагрузке.
  • Неполные ротации: когда Claude Code перечитывает во время выполнения ротации, например, читая сертификат и ключ, которые не совпадают друг с другом, он сохраняет предыдущую пару и перечитывает при следующем сбое.
  • Экспортеры телеметрии OTLP: Claude Code сохраняет сертификат, который экспортеры загрузили при первом использовании, поэтому перезагрузите Claude Code, чтобы ротированный сертификат достиг вашего сборщика телеметрии.
  • Отключение перезагрузки: установите CLAUDE_CODE_DISABLE_MTLS_RELOAD_ON_STALE_CONNECTION=1, чтобы отключить перечитывание при ошибке соединения. Claude Code затем подхватывает ротированные файлы только при следующем применении параметров или при следующем запуске.
Чтобы подтвердить, что Claude Code подхватил ротацию, запустите сеанс с отладочным логированием и ищите Stale connection — reloaded rotated mTLS client material в логе. Claude Code не логирует эту строку, когда подхватывает ротацию при применении параметров, поэтому отсутствие строки само по себе не означает, что ротация не удалась. Замените файлы до истечения срока действия текущей пары, чтобы Claude Code не загружал уже истёкшую пару при следующем запуске. В облачных сеансах среда хостинга управляет соединением с API, поэтому Claude Code игнорирует следующие переменные, когда они поступают из блока env файла параметров:
  • CLAUDE_CODE_CLIENT_CERT
  • CLAUDE_CODE_CLIENT_KEY
  • CLAUDE_CODE_CLIENT_KEY_PASSPHRASE
  • NODE_EXTRA_CA_CERTS
  • NODE_TLS_REJECT_UNAUTHORIZED
  • CLAUDE_CODE_OAUTH_SCOPES
Claude Code отмечает каждый игнорируемый ключ в логе отладки сеанса. В сессиях Claude Desktop, где приложение управляет подключением к поставщику, например на вкладке Code со сторонним поставщиком и в сессиях Cowork, Claude Code читает эти переменные, кроме CLAUDE_CODE_OAUTH_SCOPES, а также переменные прокси HTTP_PROXY, HTTPS_PROXY и NO_PROXY только из управляемых настроек и ~/.claude/settings.json. Он игнорирует их в собственных файлах настроек репозитория, поэтому извлечённый репозиторий не может перенаправить путь TLS или прокси сессии, учётные данные которой поступают из приложения. До версии 2.1.217 Claude Code игнорировал эти переменные в каждом файле настроек, когда приложение управляло соединением. В локальной, SSH- или WSL-сессии на вкладке Code, вход в которую выполнен через claude.ai, вы можете задавать эти переменные и переменные прокси в любом файле настроек, за исключением CLAUDE_CODE_OAUTH_SCOPES. Desktop сам задаёт CLAUDE_CODE_OAUTH_SCOPES в сессиях вкладки Code и Cowork, поэтому вы не можете его задать. Если среда запуска сессии уже задаёт переменную, Claude Code игнорирует значение из файла настроек и указывает эту переменную в отладочном логе. Чтобы использовать собственное значение прокси или сертификата в локальной сессии, добавьте его в сохранённую локальную среду. Облачные сессии следуют приведённым выше правилам для облачных сессий, где бы вы их ни запустили.

Проверьте вашу конфигурацию

Обычно вы узнаете об неправильном адресе прокси или неправильном пути к сертификату из ошибки подключения или сертификата при последующем запросе, так как Claude Code не проверяет большинство этих параметров при их чтении. Единственный параметр, который он проверяет при запуске, — это URL прокси: когда он не может разобрать значение, например если отсутствует схема http://, Claude Code останавливает запуск с ошибкой, указывающей переменную для исправления. Чтобы подтвердить, что ваша конфигурация загружена перед отправкой запроса, запустите Claude Code с отладочным логированием:
Отладочный вывод идёт в ~/.claude/debug/<session-id>.txt вместо терминала или в путь, который вы установили с помощью --debug-file <path>. В журнале ищите строки, которые подтверждают загрузку каждого файла:
Если Claude Code не может прочитать один из этих файлов, журнал показывает строку Failed to read или Failed to load с причиной вместо этого. Вы также можете запустить /status в интерактивном сеансе и проверить эти строки:
  • Proxy: показывает активный URL прокси и отмечает значение, которое он не может разобрать, как недействительное и игнорируемое.
  • mTLS client cert и mTLS client key: появляются только при загрузке файлов, поэтому отсутствующая строка означает, что загрузка не удалась, и отладочный журнал содержит причину.
  • Additional CA cert(s): показывает путь NODE_EXTRA_CA_CERTS без проверки загрузки файла, поэтому подтвердите это в отладочном журнале.

Применение параметров сети к фоновым агентам

Фоновые агенты не запускаются внутри терминала, который их отправил. Процесс супервизора для каждого пользователя запускается по требованию, существует дольше вашей оболочки и размещает каждый сеанс claude agents, --bg и /background. См. Как размещаются фоновые сеансы. Это изменяет способ, которым конфигурация на этой странице достигает эти сеансы.

Установите переменные сети в параметрах, а не в оболочке

Супервизор — это один процесс, общий для каждого терминала. Он наследует окружение той оболочки, которая запустила его первой. Если вы экспортируете прокси, путь ЦС или переменную mTLS только в вашей оболочке, она достигает фоновых агентов, когда эта оболочка случайно холодно запустила супервизор, и молча не достигает, когда это сделала другая оболочка. Поместите те же переменные в блок env файла ~/.claude/settings.json или в управляемые параметры. Каждая переменная на этой странице может быть установлена там, и параметры — это единственная конфигурация, которая достигает каждый фоновый сеанс на каждой машине.

Настройте корпоративный запускатель как параметр

Некоторые организации требуют, чтобы каждый процесс Claude Code запускался через корпоративный запускатель, который применяет изоляцию, сетевые элементы управления или внедрение учетных данных. Супервизор и его рабочие процессы запускают Claude Code из фиксированного пути, а не путем поиска claude в PATH, поэтому каждый фоновый агент обходит оболочку, которую вы разместили ранее в PATH. Установите параметр processWrapper, чтобы добавить префикс супервизору, его рабочим процессам и другим фоновым процессам, перечисленным в разделе Что охватывает запускатель, с помощью вашего запускателя. Эквивалентная переменная окружения CLAUDE_CODE_PROCESS_WRAPPER имеет приоритет, когда установлены оба варианта, и она подчиняется тому же правилу: доставляйте её через управляемые параметры или ~/.claude/settings.json, а не через экспорт оболочки. Запуск Claude Code за корпоративным запускателем охватывает контракт, который должен удовлетворять запускатель, что он делает и не делает, и как его развернуть.
Уже запущенный супервизор сохраняет конфигурацию запуска, с которой он начал. После развёртывания настройки запускателя запустите claude daemon stop --any, чтобы следующий claude agents или --bg запустил супервизор, который её соблюдает.

Сторожевые таймеры простоя потоковой передачи

Claude Code запускает четыре независимых таймера, которые прерывают потоковый ответ модели, когда он затихает, чтобы оборванное соединение завершалось ошибкой и повторной попыткой, а не зависало. Запрос, на который вообще не приходят заголовки ответа, завершается одним из двух способов:
  • Там, где действует крайний срок первого байта: первая попытка завершается не позже этого срока. Чтобы изменить его, задайте CLAUDE_STREAM_FIRST_BYTE_TIMEOUT_MS. О времени ожидания перед повторной попыткой см. No response from API.
  • На остальных соединениях: запрос завершается через 5–6 минут, когда срабатывает таймаут простоя тела ответа, если только вы не отключили этот таймаут. Чтобы завершать запрос раньше, уменьшите API_TIMEOUT_MS. В сессии Claude apps gateway вместо этого можно завершать первую попытку раньше, включив крайний срок первого байта.
Если вы задаёте CLAUDE_ENABLE_BYTE_WATCHDOG_BEDROCK=1, сторожевой таймер уровня байтов заменяет таймаут простоя тела ответа на Bedrock, а не работает вместе с ним. Тогда CLAUDE_STREAM_IDLE_TIMEOUT_MS также определяет, как долго поток Bedrock может молчать, прежде чем Claude Code сочтёт соединение оборванным, в пределах ограничений, перечисленных ниже. Поступающие байты по-прежнему не сбрасывают сторожевой таймер уровня событий на Bedrock. При включённом отладочном логировании каждый поток Bedrock в этом случае записывает в лог отладочное сообщение, начинающееся с wire-heartbeat: _chunkTimes absent. Настраивайте таймеры с помощью следующих переменных, каждая из которых подробно описана в справочнике по переменным окружения:
  • CLAUDE_ENABLE_STREAM_WATCHDOG и CLAUDE_ENABLE_BYTE_WATCHDOG принудительно включают соответствующий сторожевой таймер значением 1 или отключают значением 0 в пределах соединений, перечисленных в таблице; ни одна из переменных не распространяет сторожевой таймер на тип соединения, который он не охватывает. Значение 0 для CLAUDE_ENABLE_BYTE_WATCHDOG также отключает крайний срок первого байта.
  • CLAUDE_STREAM_IDLE_TIMEOUT_MS задаёт таймаут обоих сторожевых таймеров. Claude Code повышает значения меньше 5 минут до 5 минут и ограничивает значение 30 минутами для сторожевого таймера уровня байтов.
  • CLAUDE_BYTE_STREAM_IDLE_TIMEOUT_MS задаёт таймаут сторожевого таймера уровня байтов, не меняя таймаут сторожевого таймера уровня событий, ограничивается диапазоном от 10 секунд до 30 минут и имеет приоритет над CLAUDE_STREAM_IDLE_TIMEOUT_MS для этого таймера.
  • CLAUDE_STREAM_FIRST_BYTE_TIMEOUT_MS задаёт крайний срок первого байта. В сессии Claude apps gateway задайте эту переменную, чтобы включить этот срок. Если на другом соединении, где этот срок действует, переменная не задана, Claude Code использует таймаут сторожевого таймера уровня байтов, поэтому CLAUDE_STREAM_IDLE_TIMEOUT_MS и CLAUDE_BYTE_STREAM_IDLE_TIMEOUT_MS также меняют этот срок. Об ограничениях значения см. No response from API.
  • API_TIMEOUT_MS ограничивает ожидание заголовков ответа, а не то, как долго ответ передаётся потоком после них. Там, где крайний срок первого байта не действует, задайте API_TIMEOUT_MS положительное значение меньше 300000, чтобы повторять попытку для запроса без ответа менее чем через 5 минут. Держите API_TIMEOUT_MS выше самого долгого ожидаемого ожидания заголовков и самого долгого непотокового запроса: запрос, которому нужно больше времени, будет снова завершаться по таймауту при каждой повторной попытке.
  • API_FORCE_IDLE_TIMEOUT со значением 0 отключает таймаут простоя тела ответа, а со значением 1 включает его для всех провайдеров. Сторожевые таймеры работают независимо от него, поэтому, чтобы поток мог делать паузы дольше их порогов, также увеличьте их значения или отключите их.
Когда сторожевой таймер прерывает зависший поток, Claude Code рассматривает прерывание как сбой посреди потока, и то, что вы увидите, зависит от того, насколько далеко продвинулся ответ. Claude Code повторяет запрос или завершает ход с ошибкой, сохраняет завершённый вывод и показывает уведомление о неполном ответе либо завершает ход обычным образом. В разделе Automatic retries указано, где применяется каждый из этих исходов. В неинтерактивной сессии, а также для ответа субагента в любой сессии Claude Code может сначала попросить Claude продолжить оборванный ответ; в описании этого уведомления сказано, когда это происходит и когда вы всё равно видите уведомление. Когда срабатывает крайний срок первого байта, ответ ещё не начался, поэтому частичного вывода для сохранения нет. О том, как Claude Code повторно отправляет запрос и когда вместо этого завершается ход, см. No response from API.

Требования к доступу в сеть

Claude Code требует доступа к следующим URL-адресам. Добавьте их в белый список конфигурации прокси и правил брандмауэра, особенно в контейнеризованных или ограниченных сетевых средах. Проверка подключения при первом запуске указывает сюда, когда не может достичь api.anthropic.com или platform.claude.com; см. Unable to connect to Anthropic services для сообщений проверки и шагов восстановления. Если вы устанавливаете Claude Code через npm или управляете собственным распределением двоичных файлов, конечным пользователям не нужны собственный установщик и использование автоматического обновителя downloads.claude.ai, но установки npm и bun нуждаются в реестре пакетов, registry.npmjs.org, если только ваша организация его не зеркалирует. Другие использования в таблице применяются независимо от метода установки. Два хоста приема Datadog содержат только опциональную операционную телеметрию, и установка CLAUDE_CODE_DISABLE_NONESSENTIAL_TRAFFIC отключает обе. Сеансы на сторонних поставщиках никогда не отправляют на эти хосты, даже когда платформа устанавливает CLAUDE_CODE_PROVIDER_MANAGED_BY_HOST и метрики телеметрии включены по умолчанию. См. Telemetry services для всего, что отправляет Claude Code и как это отключить перед финализацией вашего белого списка.

Маршрутизация через облачных поставщиков и LLM-шлюзы

При использовании Amazon Bedrock, Google Cloud’s Agent Platform, Microsoft Foundry или вошедшего в систему сеанса Claude apps gateway, трафик модели и аутентификация идут к вашему поставщику или шлюзу вместо api.anthropic.com, claude.ai или platform.claude.com. Инструмент WebFetch по-прежнему вызывает api.anthropic.com для своей проверки безопасности домена, если вы не установите skipWebFetchPreflight: true в settings. Если ваши разработчики используют быстрый режим за LLM-шлюзом, заданным через ANTHROPIC_BASE_URL, оставьте api.anthropic.com доступным через ваш прокси. Когда Claude Code отправляет проверку доступности быстрого режима, она идет на этот хост через любой настроенный HTTP-прокси и никогда не идет на шлюз. О том, когда проверка не отправляется, и о переменной, которая восстанавливает быстрый режим в каждом случае, см. Использование быстрого режима за прокси и LLM-шлюзами.

Белые списки IP организации и выход прокси

Если ваша организация имеет IP allowlisting включенный для Claude, маршрутизируйте bridge.claudeusercontent.com через тот же выход прокси, что и claude.ai и api.anthropic.com, например, поместив его в тот же сегмент приложения Zscaler или политику маршрутизации Netskope. Если вы не можете маршрутизировать его таким образом, добавьте адрес выхода, который ваш прокси использует для этого хоста, в белый список IP вашей организации, но только когда этот адрес выделен для вашей организации: общий диапазон выхода прокси также допускает других клиентов поставщика прокси. Anthropic проверяет соединения с bridge.claudeusercontent.com против белого списка IP вашей организации, используя адрес, с которого они поступают. Если ваш прокси отправляет трафик для этого хоста через адрес, который не находится в этом белом списке, Claude Code не может подключиться к расширению Claude in Chrome, даже если остальная часть Claude Code работает.

Белые списки GitHub и брандмауэры

Cloud sessions в размещенных Anthropic средах и Code Review подключаются к вашим репозиториям из управляемой Anthropic инфраструктуры; сеансы в self-hosted environment подключаются изнутри вашей сети, если только runner не согласится на Anthropic git proxy, который получает со стороны Anthropic. Если ваша организация GitHub Enterprise Cloud ограничивает доступ по IP-адресу, включите IP allow list inheritance for installed GitHub Apps и также add an allow list entry для исходящих IP-адресов Anthropic. Наследование охватывает только запросы, которые делает Claude GitHub App как установка, а не запросы, которые она делает от имени ваших пользователей. Для других брандмауэров см. Anthropic API IP addresses. Для размещенных на собственном сервере экземпляров GitHub Enterprise Server за брандмауэром добавьте в белый список исходящие IP-адреса Anthropic, чтобы инфраструктура Anthropic могла достичь вашего хоста GHES для клонирования репозиториев и публикации комментариев рецензии. Сеансы в self-hosted environment достигают вашего хоста GHES изнутри вашей сети вместо этого, поэтому это воздействие применяется только к сеансам, размещенным на Anthropic, к размещенным предварительным потокам сеанса, таким как средство выбора репозитория, и к размещенным на собственном сервере runners, которые согласятся на Anthropic git proxy, который получает со стороны Anthropic. SCM connector недоступен, поэтому размещенные предварительные потоки сеанса не могут достичь хост GHES, который маршрутизируется только внутри вашей сети.

Desktop и claude.ai

Предыдущая таблица охватывает автономный CLI. Приложение Claude Desktop и claude.ai в браузере загружают код приложения и содержимое пользователя из дополнительных хостов CDN Anthropic, включая assets-proxy.anthropic.com и другие источники *.claudeusercontent.com, которые обслуживают artifacts в этих приложениях. Разрешение claude.ai при блокировке этих хостов создает пустую страницу вместо ошибки. См. network access requirements на странице Desktop. Claude Desktop и claude.ai также отображают некоторые результаты инструментов внутри диалога в виде интерактивных виджетов, таких как MCP Apps, которые предоставляют некоторые коннекторы. Эти виджеты загружаются с генерируемых поддоменов claudemcpcontent.com, поэтому разрешите *.claudemcpcontent.com, сохранив подстановочный знак. Если вы его заблокируете, остальная часть приложения продолжит работать, но эти виджеты не загрузятся.

Сторонние хосты для шрифтов и библиотек артефактов

Artifact, который загружает шрифт из Google Fonts, также запрашивает fonts.googleapis.com и fonts.gstatic.com. Оба хоста опциональны. Если вы их блокируете, артефакты отображаются в резервных шрифтах. Блокируйте с быстрым отклонением, а не с молчаливым отбросом, чтобы запрос шрифта немедленно не прошел вместо задержки первого отображения страницы. Артефакты также могут загружать библиотеки JavaScript, такие как React или пакет диаграмм, из cdnjs.cloudflare.com, cdn.jsdelivr.net, cdn.tailwindcss.com, code.jquery.com и unpkg.com, и ни с какого другого внешнего хоста. Если вы блокируете эти хосты, части артефакта, которые зависят от библиотеки, не работают, и в отличие от заблокированного шрифта, заблокированная библиотека не имеет резервного варианта. Блокируйте с быстрым отклонением и здесь, чтобы заблокированный запрос библиотеки немедленно не прошел вместо зависания до истечения времени ожидания.

Дополнительные ресурсы