37 37
38**Default** не имеет собственной конфигурации:38**Default** не имеет собственной конфигурации:
39 39
40* [**Trusted** доступ в сеть](#access-levels): сеансы достигают реестров пакетов и других [разрешённых доменов](#default-allowed-domains), и ничего больше через сеть сеанса.40* [**Limited** доступ в сеть](#access-levels): сессии имеют доступ к реестрам пакетов и другим [доменам из списка разрешённых](#default-allowed-domains).
41* Никакой другой конфигурации: **Default** не определяет переменные окружения или скрипт установки, поэтому сеансы начинаются только с [предустановленных инструментов](#installed-tools).41* Никакой другой конфигурации: **Default** не определяет переменные окружения или скрипт установки, поэтому сеансы начинаются только с [предустановленных инструментов](#installed-tools).
42 42
43Если доступна только **Default**, каждый сеанс работает в ней. Когда у вас есть более одной среды, сеансы выбирают одну для каждой поверхности:43Если доступна только **Default**, каждый сеанс работает в ней. Когда у вас есть более одной среды, сеансы выбирают одну для каждой поверхности:
198 198
199## Сетевой доступ199## Сетевой доступ
200 200
201Каждая среда устанавливает один уровень сетевого доступа, который контролирует исходящие соединения, которые могут устанавливать её сеансы. Уровень по умолчанию, **Trusted**, разрешает реестры пакетов и другие [домены в списке разрешённых](#default-allowed-domains); **Custom** использует ваш собственный список доменов.201Каждая среда устанавливает один уровень сетевого доступа, который контролирует исходящие соединения, которые могут устанавливать её сессии. Новая среда начинается с уровня **Limited** с установленным флажком **Allow package managers**, поэтому её сессии могут обращаться к реестрам пакетов и другим [доменам из списка разрешённых](#default-allowed-domains).
202 202
203Чтобы изменить сетевой доступ среды, [откройте её для редактирования](#configure-your-environment) и используйте селектор **Network access** в диалоговом окне. [Общая среда](#organization-shared-environments) открывается там в режиме только для чтения, поэтому Owner изменяет её сетевой доступ со страницы **Cloud environments** в [настройках администратора](https://claude.ai/admin-settings). Элемент управления, который открывает селектор, появляется в интерфейсах приложения, перечисленных в разделе [Среда по умолчанию](#the-default-environment), и в [редакторе облачных запланированных задач](https://code.claude.com/docs/ru/routines.md#environments-and-network-access). Личные среды не имеют отдельной страницы в настройках вашего аккаунта claude.ai.203Чтобы изменить сетевой доступ среды, [откройте её для редактирования](#configure-your-environment) и используйте селектор **Network access** в диалоговом окне. [Общая среда](#organization-shared-environments) открывается там в режиме только для чтения, поэтому Owner изменяет её сетевой доступ со страницы **Cloud environments** в [настройках администратора](https://claude.ai/admin-settings). Элемент управления, который открывает селектор, появляется в интерфейсах приложения, перечисленных в разделе [Среда по умолчанию](#the-default-environment), и в [редакторе облачных запланированных задач](https://code.claude.com/docs/ru/routines.md#environments-and-network-access). Личные среды не имеют отдельной страницы в настройках вашего аккаунта claude.ai.
204 204
210 210
211### Уровни доступа211### Уровни доступа
212 212
213Поле **Network access** в [диалоговом окне среды](#configure-your-environment) принимает один из четырёх уровней:213Поле **Network access** в [диалоговом окне среды](#configure-your-environment) принимает один из трёх уровней:
214 214
215| Уровень | Исходящие соединения |215| Уровень | Исходящие соединения |
216| :- | :- |216| :- | :- |
217| **None** | Нет исходящего сетевого доступа через сеть сеанса |217| **None** | Нет исходящего сетевого доступа через сеть сеанса |
218| **Trusted** | Только [домены в списке разрешённых](#default-allowed-domains): реестры пакетов, GitHub, облачные SDK |218| **Limited** | [Список разрешённых по умолчанию](#default-allowed-domains), включающий реестры пакетов, GitHub и облачные SDK, пока установлен флажок **Allow package managers**, а также любые [указанные вами домены](#allow-specific-domains). См. [как выглядит заблокированный запрос](https://code.claude.com/docs/ru/errors.md#host-not-allowed-in-a-cloud-session). |
219| **Full** | Любой домен |219| **Full** | Любой домен |
220| **Custom** | Ваш собственный список разрешённых, опционально включающий значения по умолчанию |
221 220
222Независимо от выбранного уровня, сеансы всё ещё могут достичь следующего, потому что каждый из них использует путь, который не проходит через список разрешённых сетей сеанса:221Независимо от выбранного уровня, сеансы всё ещё могут достичь следующего, потому что каждый из них использует путь, который не проходит через список разрешённых сетей сеанса:
223 222
226* Хосты, которые вы указали в [сетевых секретах](#add-network-secrets) среды, кроме [хостов, которые никогда не получают секрет](#requests-that-never-get-the-credential)225* Хосты, которые вы указали в [сетевых секретах](#add-network-secrets) среды, кроме [хостов, которые никогда не получают секрет](#requests-that-never-get-the-credential)
227* API Anthropic, для собственных запросов Claude Code, даже при **None**, как отмечено в разделе [Безопасность и изоляция](https://code.claude.com/docs/ru/claude-code-on-the-web.md#security-and-isolation)226* API Anthropic, для собственных запросов Claude Code, даже при **None**, как отмечено в разделе [Безопасность и изоляция](https://code.claude.com/docs/ru/claude-code-on-the-web.md#security-and-isolation)
228 227
228Среда, сохранённая с уровнем **Trusted** или **Custom**, продолжает обращаться к тем же хостам и открывается следующим образом:
229
230* **Сохранена как Trusted**: открывается как **Limited** с установленным флажком **Allow package managers**
231* **Сохранена как Custom**: открывается как **Limited** со списком **Allowed domains** и флажком **Allow package managers** в том состоянии, в каком вы их задали, или как **Full**, если список содержал одиночный `*`
232
229### Разрешить определённые домены233### Разрешить определённые домены
230 234
231Чтобы разрешить домены, которых нет в списке Trusted, выберите **Custom** в параметрах сетевого доступа среды, затем перечислите один домен в строке в поле **Allowed domains**. Этот пример разрешает три хоста, которые может потребоваться внутреннему проекту.235Чтобы разрешить домены, которых нет в [списке разрешённых по умолчанию](#default-allowed-domains), выберите **Limited** в селекторе **Network access** среды, затем перечислите по одному домену в строке в поле **Allowed domains**. Ведущий `*.` соответствует любому поддомену. Этот пример разрешает три хоста, которые может потребоваться внутреннему проекту.
232 236
233```text theme={null}237```text theme={null}
234api.example.com238api.example.com
236registry.example.com240registry.example.com
237```241```
238 242
239Теперь сессии в этой среде могут обращаться к `api.example.com`, любому поддомену `internal.example.com` и `registry.example.com` и ни к каким другим доменам через сеть сессии. [Трафик GitHub](#github-proxy), [трафик коннекторов MCP](#network-access) и запросы к хостам [сетевых секретов](#add-network-secrets) среды, кроме [хостов, которые никогда не получают секрет](#requests-that-never-get-the-credential), не проходят через этот список разрешённых доменов. Ведущий `*.` соответствует любому поддомену. Чтобы также сохранить [домены Trusted](#default-allowed-domains), установите флажок **Also include default list of common package managers**; оставьте его снятым, чтобы разрешить только то, что вы указали.243Пока установлен флажок **Allow package managers**, сессии в этой среде могут обращаться как к [списку разрешённых по умолчанию](#default-allowed-domains), так и к указанным вами доменам. Снимите флажок, чтобы исключить список разрешённых по умолчанию. [Трафик GitHub](#github-proxy), [трафик коннекторов MCP](#network-access) и запросы к хостам [сетевых секретов](#add-network-secrets) среды, кроме [хостов, которые никогда не получают секрет](#requests-that-never-get-the-credential), не проходят через этот список разрешённых доменов.
240 244
241Если ваша организация использует [артефакты](https://code.claude.com/docs/ru/artifacts.md#availability), вам не нужно добавлять `*.frame.claudeusercontent.com` в список, чтобы сеансы могли их читать. Когда список исключает этот хост, Claude Code читает содержимое артефакта через соединение сеанса с Anthropic. Сохраняйте хост в списке разрешённых в двух ситуациях:245Если ваша организация использует [артефакты](https://code.claude.com/docs/ru/artifacts.md#availability), вам не нужно добавлять `*.frame.claudeusercontent.com` в список, чтобы сеансы могли их читать. Когда список исключает этот хост, Claude Code читает содержимое артефакта через соединение сеанса с Anthropic. Сохраняйте хост в списке разрешённых в двух ситуациях:
242 246
243* **Сеансы в этой среде открывают публичные артефакты другой организации**: Claude Code получает их с хоста напрямую, поэтому добавьте его в этот список.247* **Сеансы в этой среде открывают публичные артефакты другой организации**: Claude Code получает их с хоста напрямую, поэтому добавьте его в этот список.
244* **Вы настраиваете локальный CLI или самостоятельно размещённый runner**: сохраняйте хост в этом списке разрешённых. См. [требования к сетевому доступу](https://code.claude.com/docs/ru/network-config.md#network-access-requirements) и требования к сетевому доступу самостоятельно размещённого [сетевые требования](https://code.claude.com/docs/ru/self-hosted-environments-deploy.md#network-requirements).248* **Вы настраиваете локальный CLI или самостоятельно размещённый runner**: сохраняйте хост в этом списке разрешённых. См. [требования к сетевому доступу](https://code.claude.com/docs/ru/network-config.md#network-access-requirements) и требования к сетевому доступу самостоятельно размещённого [сетевые требования](https://code.claude.com/docs/ru/self-hosted-environments-deploy.md#network-requirements).
245 249
246Каждая среда имеет свой собственный список разрешённых доменов; нет списка разрешённых на уровне организации, который администраторы могут применить к средам каждого члена. Никакой [параметр, управляемый сервером](https://code.claude.com/docs/ru/server-managed-settings.md), не добавляет домены в список разрешённых сетей среды. Чтобы дать команде один стандартный список, владелец может создать [общую среду организации](#organization-shared-environments) с сетевым доступом **Custom** и этим списком.250Каждая среда имеет свой собственный список разрешённых доменов; нет списка разрешённых на уровне организации, который администраторы могут применить к средам каждого участника. Никакая [настройка, управляемая сервером](https://code.claude.com/docs/ru/server-managed-settings.md), также не добавляет домены в сетевой список разрешённых доменов среды. Чтобы дать команде один стандартный список, Owner может создать [общую среду организации](#organization-shared-environments) с сетевым доступом **Limited** и этим списком.
247 251
248### Прокси GitHub252### Прокси GitHub
249 253
255* **Область действия репозиториев**: прокси обслуживает запросы GitHub API для репозиториев, прикреплённых к сессии. Запрос API к другому репозиторию получает 403 с сообщением, которое начинается с `GitHub access to` и содержит `is not enabled for this session`. Архив исходного кода, который вы загружаете по URL `github.com/{owner}/{repo}/archive/` или `codeload.github.com`, получает ту же ошибку 403, если репозиторий не прикреплён, даже если он публичный.259* **Область действия репозиториев**: прокси обслуживает запросы GitHub API для репозиториев, прикреплённых к сессии. Запрос API к другому репозиторию получает 403 с сообщением, которое начинается с `GitHub access to` и содержит `is not enabled for this session`. Архив исходного кода, который вы загружаете по URL `github.com/{owner}/{repo}/archive/` или `codeload.github.com`, получает ту же ошибку 403, если репозиторий не прикреплён, даже если он публичный.
256* **Ограничения GraphQL**: прокси отклоняет запросы к эндпоинту GraphQL GitHub с ошибкой 403, сообщение которой начинается с `GitHub GraphQL is not available from Claude Code sessions` и указывает резервный вариант REST, `gh api repos/{owner}/{repo}/...`. Подкоманды `gh`, использующие GraphQL, такие как `gh pr` и `gh issue`, получают ту же ошибку 403. Ограничение применяется к каждому запросу через прокси независимо от предоставленных вами учётных данных, поэтому установленный вами `GH_TOKEN` получает ту же ошибку 403. Claude не может обратиться через прокси к API GitHub, которые существуют только в GraphQL, например Projects v2.260* **Ограничения GraphQL**: прокси отклоняет запросы к эндпоинту GraphQL GitHub с ошибкой 403, сообщение которой начинается с `GitHub GraphQL is not available from Claude Code sessions` и указывает резервный вариант REST, `gh api repos/{owner}/{repo}/...`. Подкоманды `gh`, использующие GraphQL, такие как `gh pr` и `gh issue`, получают ту же ошибку 403. Ограничение применяется к каждому запросу через прокси независимо от предоставленных вами учётных данных, поэтому установленный вами `GH_TOKEN` получает ту же ошибку 403. Claude не может обратиться через прокси к API GitHub, которые существуют только в GraphQL, например Projects v2.
257 261
258Зафиксированные файлы из публичных репозиториев поступают через `raw.githubusercontent.com`, который обрабатывает [прокси безопасности](#security-proxy). Этот домен находится в списке [Trusted](#default-allowed-domains) по умолчанию, поэтому эти файлы остаются доступными, если [уровень доступа](#access-levels) среды их не исключает.262Зафиксированные файлы из публичных репозиториев поступают через `raw.githubusercontent.com`, который вместо этого обрабатывает [прокси безопасности](#security-proxy). Этот домен находится в [списке разрешённых по умолчанию](#default-allowed-domains), поэтому эти файлы остаются доступными, пока [сетевой доступ](#access-levels) среды разрешает этот список.
259 263
260### Прокси безопасности264### Прокси безопасности
261 265
391service redis-server start395service redis-server start
392```396```
393 397
394Docker доступен для запуска контейнеризованных сервисов. Попросите Claude выполнить `docker compose up`, чтобы запустить сервисы вашего проекта. Сетевой доступ для загрузки образов определяется [уровнем доступа](#access-levels) вашей среды, а [доверенные значения по умолчанию](#default-allowed-domains) включают Docker Hub и другие распространённые реестры.398Docker доступен для запуска контейнеризованных сервисов. Попросите Claude выполнить `docker compose up`, чтобы запустить сервисы вашего проекта. Сетевой доступ для загрузки образов определяется [уровнем доступа](#access-levels) вашей среды, а [список разрешённых доменов по умолчанию](#default-allowed-domains) включает Docker Hub и другие распространённые реестры.
395 399
396Если ваши образы большие или загружаются медленно, добавьте `docker compose pull` или `docker compose build` в ваш [скрипт настройки](#setup-scripts). [Кэш среды](#environment-caching) сохраняет загруженные образы, поэтому в каждой новой сессии они уже есть на диске. Кэш хранит только файлы, а не запущенные процессы, поэтому Claude по-прежнему запускает контейнеры в каждой сессии.400Если ваши образы большие или загружаются медленно, добавьте `docker compose pull` или `docker compose build` в ваш [скрипт настройки](#setup-scripts). [Кэш среды](#environment-caching) сохраняет загруженные образы, поэтому в каждой новой сессии они уже есть на диске. Кэш хранит только файлы, а не запущенные процессы, поэтому Claude по-прежнему запускает контейнеры в каждой сессии.
397 401
445 449
446* **Выход с нулём**: если скрипт завершается с ненулевым кодом, сессия [не запускается](https://code.claude.com/docs/ru/web-quickstart.md#setup-script-failed) или запускается без того, что скрипту не удалось установить. Добавьте `|| true` к некритичным командам, чтобы случайный сбой установки не приводил к сбою скрипта.450* **Выход с нулём**: если скрипт завершается с ненулевым кодом, сессия [не запускается](https://code.claude.com/docs/ru/web-quickstart.md#setup-script-failed) или запускается без того, что скрипту не удалось установить. Добавьте `|| true` к некритичным командам, чтобы случайный сбой установки не приводил к сбою скрипта.
447* **Завершение в течение пяти минут**: держите общее время выполнения скрипта примерно под пять минут, чтобы [кэш среды](#environment-caching) мог построиться. Когда установка занимает больше времени, среда не кэшируется. Запускайте независимые установки параллельно с `&` и `wait`, и переместите любую одиночную загрузку, которая не подходит, в [SessionStart hook](#setup-scripts-vs-sessionstart-hooks), который запускает её в фоне. Если новые сеансы зависают или не удаются во время установки, смотрите [New sessions hang or time out during setup](https://code.claude.com/docs/ru/web-quickstart.md#new-sessions-hang-or-time-out-during-setup).451* **Завершение в течение пяти минут**: держите общее время выполнения скрипта примерно под пять минут, чтобы [кэш среды](#environment-caching) мог построиться. Когда установка занимает больше времени, среда не кэшируется. Запускайте независимые установки параллельно с `&` и `wait`, и переместите любую одиночную загрузку, которая не подходит, в [SessionStart hook](#setup-scripts-vs-sessionstart-hooks), который запускает её в фоне. Если новые сеансы зависают или не удаются во время установки, смотрите [New sessions hang or time out during setup](https://code.claude.com/docs/ru/web-quickstart.md#new-sessions-hang-or-time-out-during-setup).
448* **Сетевой доступ для установок**: установки пакетов должны достичь реестров. Уровень **Trusted** по умолчанию охватывает [общие реестры пакетов](#default-allowed-domains), включая npm, PyPI, RubyGems и crates.io; с **None** сетевым доступом установки не удаются.452* **Сетевой доступ для установок**: установки пакетов должны достичь реестров. Уровень **Limited** по умолчанию с отмеченным параметром **Allow package managers** охватывает [общие реестры пакетов](#default-allowed-domains), включая npm, PyPI, RubyGems и crates.io. С сетевым доступом **None** установки не удаются.
449* **Переменные среды ещё не заданы**: скрипт запускается до того, как сессия задаёт [переменные окружения](#set-environment-variables) среды. Задавайте все значения, которые нужны скрипту, в самом скрипте.453* **Переменные среды ещё не заданы**: скрипт запускается до того, как сессия задаёт [переменные окружения](#set-environment-variables) среды. Задавайте все значения, которые нужны скрипту, в самом скрипте.
450 454
451### Кэширование среды455### Кэширование среды
541* **Один репозиторий на сессию**: в среде, размещённой Anthropic, сессия с несколькими репозиториями не загружает хуки из `.claude/settings.json` ни одного репозитория, поэтому определённый там хук SessionStart не запускается. Вместо этого устанавливайте зависимости для таких сессий с помощью [скрипта установки](#setup-scripts). Для самостоятельно размещённой среды смотрите, [настройки какого репозитория применяются](https://code.claude.com/docs/ru/self-hosted-environments-configuration.md#repository-settings-in-sessions-with-several-repositories).545* **Один репозиторий на сессию**: в среде, размещённой Anthropic, сессия с несколькими репозиториями не загружает хуки из `.claude/settings.json` ни одного репозитория, поэтому определённый там хук SessionStart не запускается. Вместо этого устанавливайте зависимости для таких сессий с помощью [скрипта установки](#setup-scripts). Для самостоятельно размещённой среды смотрите, [настройки какого репозитория применяются](https://code.claude.com/docs/ru/self-hosted-environments-configuration.md#repository-settings-in-sessions-with-several-repositories).
542* **Не работают в облачных тредах проекта**: облачный тред в [проекте](https://code.claude.com/docs/ru/claude-projects.md#what-threads-pick-up-from-your-repositories) не запускает хуки из `.claude/settings.json` репозитория, независимо от количества репозиториев. В среде, размещённой Anthropic, устанавливайте зависимости для тредов с помощью [скрипта установки](#setup-scripts). В самостоятельно размещённой среде вместо этого используйте хук в [настройках хоста runner](https://code.claude.com/docs/ru/self-hosted-environments-configuration.md#repository-settings-in-sessions-with-several-repositories).546* **Не работают в облачных тредах проекта**: облачный тред в [проекте](https://code.claude.com/docs/ru/claude-projects.md#what-threads-pick-up-from-your-repositories) не запускает хуки из `.claude/settings.json` репозитория, независимо от количества репозиториев. В среде, размещённой Anthropic, устанавливайте зависимости для тредов с помощью [скрипта установки](#setup-scripts). В самостоятельно размещённой среде вместо этого используйте хук в [настройках хоста runner](https://code.claude.com/docs/ru/self-hosted-environments-configuration.md#repository-settings-in-sessions-with-several-repositories).
543* **Нет облачного ограничения**: hooks запускаются в локальных и облачных сеансах. Чтобы пропустить локальное выполнение, выйдите рано, если переменная окружения `CLAUDE_CODE_REMOTE` не `true`, как показано в [скрипте установки зависимостей](#install-dependencies-with-a-sessionstart-hook).547* **Нет облачного ограничения**: hooks запускаются в локальных и облачных сеансах. Чтобы пропустить локальное выполнение, выйдите рано, если переменная окружения `CLAUDE_CODE_REMOTE` не `true`, как показано в [скрипте установки зависимостей](#install-dependencies-with-a-sessionstart-hook).
544* **Требует сетевого доступа**: команды установки должны достичь реестров пакетов. Если ваша среда использует **None** сетевой доступ, эти hooks не удаются. [Список разрешений по умолчанию](#default-allowed-domains) под **Trusted** охватывает npm, PyPI, RubyGems и crates.io.548* **Требует сетевого доступа**: команды установки должны достичь реестров пакетов. Если ваша среда использует сетевой доступ **None**, эти хуки завершаются сбоем. На уровне **Limited** по умолчанию с отмеченным параметром **Allow package managers** [список разрешённых доменов по умолчанию](#default-allowed-domains) охватывает npm, PyPI, RubyGems и crates.io.
545* **Совместимость с прокси**: в среде, размещённой Anthropic, весь исходящий трафик проходит через [прокси безопасности](#security-proxy), и некоторые менеджеры пакетов не работают правильно с этим прокси; Bun — известный пример. В [самостоятельно размещённой среде](https://code.claude.com/docs/ru/self-hosted-environments-deploy.md#default-deny-egress) исходящий трафик проходит через вашу собственную границу сети вместо этого.549* **Совместимость с прокси**: в среде, размещённой Anthropic, весь исходящий трафик проходит через [прокси безопасности](#security-proxy), и некоторые менеджеры пакетов не работают правильно с этим прокси; Bun — известный пример. В [самостоятельно размещённой среде](https://code.claude.com/docs/ru/self-hosted-environments-deploy.md#default-deny-egress) исходящий трафик проходит через вашу собственную границу сети вместо этого.
546* **Добавляет задержку запуска**: хуки запускаются каждый раз, когда сессия запускается или возобновляется, в отличие от скриптов установки, которые выигрывают от [кэширования среды](#environment-caching). Держите скрипты установки быстрыми, пропуская уже выполненную работу, как это делает [скрипт установки зависимостей](#install-dependencies-with-a-sessionstart-hook).550* **Добавляет задержку запуска**: хуки запускаются каждый раз, когда сессия запускается или возобновляется, в отличие от скриптов установки, которые выигрывают от [кэширования среды](#environment-caching). Держите скрипты установки быстрыми, пропуская уже выполненную работу, как это делает [скрипт установки зависимостей](#install-dependencies-with-a-sessionstart-hook).
547 551
549 553
550## Разрешённые домены по умолчанию554## Разрешённые домены по умолчанию
551 555
552С **Trusted** сетевым доступом сеансы могут достичь следующих доменов по умолчанию. Домены, отмеченные `*`, указывают на совпадение поддомена с подстановочным знаком, поэтому `*.gcr.io` разрешает любой поддомен `gcr.io`.556Когда в режиме сетевого доступа **Limited** установлен флажок **Allow package managers**, как это сделано в новой среде, сессии могут обращаться к следующим доменам. Домены, отмеченные `*`, указывают на совпадение поддомена с подстановочным знаком, поэтому `*.gcr.io` разрешает любой поддомен `gcr.io`.
553 557
554> [accordion] Сервисы Anthropic558> [accordion] Сервисы Anthropic
555>559>