Установка Claude Code через прокси с аутентификацией

Инструкция по установке и настройке Claude Code в окружении, где доступ в интернет осуществляется через прокси-сервер с аутентификацией по имени пользователя и паролю (Basic auth).

Процесс состоит из двух этапов:

  1. Прокси нужен утилите curl (или PowerShell) для скачивания установщика.
  2. Прокси нужен самому Claude Code для работы после установки.

Задать переменные окружения с учётными данными и запустить установку в той же сессии терминала:

export HTTPS_PROXY=http://username:password@proxy.example.com:8080
export HTTP_PROXY=http://username:password@proxy.example.com:8080
 
curl -fsSL https://claude.ai/install.sh | bash

Альтернатива — указать прокси только для curl, не трогая окружение:

curl -x http://username:password@proxy.example.com:8080 -fsSL https://claude.ai/install.sh | bash
$env:HTTPS_PROXY="http://username:password@proxy.example.com:8080"
$env:HTTP_PROXY="http://username:password@proxy.example.com:8080"
 
irm https://claude.ai/install.ps1 | iex

Если пароль содержит спецсимволы, их необходимо закодировать, иначе строка прокси распарсится неверно:

Символ Кодировка
@ %40
: %3A
# %23
% %25
/ %2F

Пример: пароль p@ss:wordp%40ss%3Aword

Claude Code уважает стандартные переменные окружения HTTPS_PROXY и HTTP_PROXY. Формат с Basic-аутентификацией поддерживается официально:

export HTTPS_PROXY=http://username:password@proxy.example.com:8080

Чтобы не задавать переменные в каждой сессии:

  • Linux/macOS: добавить export в ~/.bashrc или ~/.zshrc
  • Windows: добавить $env:… в профиль PowerShell ($PROFILE) или задать через системные переменные окружения
  • Кроссплатформенно: все сетевые переменные можно прописать в settings.json Claude Code (см. раздел ниже)

При необходимости исключить отдельные хосты из проксирования используется NO_PROXY (список через пробел или запятую):

export NO_PROXY="localhost 127.0.0.1 internal.example.com"

Все сетевые переменные окружения можно задать в блоке env файла настроек — Claude Code применит их к каждой своей сессии автоматически, независимо от ОС и шелла:

~/.claude/settings.json
{
  "env": {
    "HTTPS_PROXY": "http://username:password@proxy.example.com:8080",
    "HTTP_PROXY": "http://username:password@proxy.example.com:8080",
    "NO_PROXY": "localhost,127.0.0.1,internal.example.com"
  }
}

Если файл уже существует, блок env добавляется к имеющемуся содержимому, а не заменяет его.

localhost и 127.0.0.1. - Claude Code нередко обращается к сервисам на вашей же машине: локальные MCP-серверы, dev-сервер вашего приложения (когда вы просите проверить http://localhost:3000), локальные базы данных, релеи вроде CNTLM. Если такой запрос уйдёт на корпоративный прокси, тот либо не сможет его смаршрутизировать (для прокси «localhost» — это он сам, а не ваша машина), либо просто отклонит. Получите загадочные ошибки соединения там, где всё должно работать.

internal.example.com — это плейсхолдер для внутренних ресурсов вашей сети: корпоративный GitLab, внутренний npm-registry, API во внутреннем контуре. Во многих корпоративных сетях прокси смотрит только «наружу» в интернет и не умеет (или ему запрещено) проксировать трафик внутрь сети. Такие хосты доступны напрямую — их и вносят в исключения.

Пара практических деталей. Если у вас нет локальных MCP-серверов и внутренних ресурсов, а Claude Code ходит только в интернет — NO_PROXY можно вообще не задавать, вреда от его отсутствия в таком сценарии нет. И наоборот: если вы используете локальный релей типа CNTLM (наш сценарий с NTLM-прокси), localhost в NO_PROXY обязателен — иначе трафик к самому релею попытается пройти через прокси, и схема зациклится. В settings.json из статьи значение internal.example.com — просто пример; замените его на реальные внутренние домены или уберите, оставив только localhost,127.0.0.1.

Область действия зависит от расположения файла:

Файл Область действия Примечание
~/.claude/settings.json все проекты пользователя обычный выбор для прокси
.claude/settings.json (в корне проекта) конкретный проект попадает в git — не класть сюда пароль
.claude/settings.local.json конкретный проект, локально не коммитится; подходит, если в URL есть пароль
managed settings (системный файл политик) вся организация централизованная раздача

Нюансы:

  • Спецсимволы в пароле URL-кодируются так же, как в переменных окружения.
  • Пароль в settings.json хранится открытым текстом — ограничьте права на файл (chmod 600 на Linux/macOS) и следите, чтобы файл с учётными данными не попал в репозиторий. Если это неприемлемо, храните секрет в защищённом хранилище/профиле шелла, а в settings.json оставьте только несекретные переменные (например, NO_PROXY).
  • settings.json покрывает только сам Claude Code. Для скачивания установщика (шаг 1) файл ещё не существует — там нужны переменные окружения или curl -x.

Через URL вида http://user:pass@host:port работает только Basic auth. Для прокси с NTLM/Kerberos официальная рекомендация — LLM Gateway, поддерживающий нужный метод аутентификации. На практике также применяются локальные релеи (CNTLM, Px), которые принимают трафик без аутентификации на localhost и сами проходят NTLM-аутентификацию на корпоративном прокси.

Установщику и самому Claude Code нужен доступ к ряду URL, в частности:

  • api.anthropic.com
  • claude.ai / downloads.claude.ai
  • storage.googleapis.com

Их следует внести в allowlist прокси, иначе установка или работа оборвётся даже при корректной аутентификации. При использовании Bedrock/Vertex или собственного гейтвея трафик модели идёт к провайдеру, но инструмент WebFetch по умолчанию всё равно обращается к api.anthropic.com для проверки безопасности доменов (отключается опцией skipWebFetchPreflight: true в settings).

Если прокси выполняет TLS-инспекцию с подменой сертификатов:

  • Claude Code по умолчанию доверяет встроенным сертификатам Mozilla и хранилищу сертификатов ОС.
  • Нативный установщик читает хранилище ОС всегда; установке через npm для этого нужен Node 22.15+.
  • На старых версиях Node остаётся вариант с явным указанием корневого сертификата:
export NODE_EXTRA_CA_CERTS=/path/to/corporate-ca.pem

:!: Никогда не используйте NODE_TLS_REJECT_UNAUTHORIZED=0 как постоянное решение — это полностью отключает проверку TLS.

Документация рекомендует не хардкодить пароль в скриптах — использовать переменные окружения или защищённое хранилище учётных данных. Помните, что строка прокси с паролем может попасть в историю shell и логи.

Claude Code: установка и первоначальная настройка

Инструкция составлена на основе гайда «Claude Code — установка и первая настройка» (проверен на версиях 2.1.x, 2026 г.) с опорой на официальную документацию.

Главное правило: использовать нативный установщик (native binary installer) от Anthropic. Установка через npm install -g @anthropic-ai/claude-code остаётся рабочей, но официально не рекомендуется: нативный бинарник стабильнее, обновляется автоматически в фоне и не зависит от глобального состояния Node.

  • macOS 13.0+ (Ventura и новее)
  • Windows 10 1809+ или Windows Server 2019+
  • Linux: Ubuntu 20.04+, Debian 10+, Alpine 3.19+, Fedora, RHEL
  • От 4 ГБ ОЗУ, процессор x64 или ARM64
  • Shell: Bash, Zsh, PowerShell или CMD
  • Учётная запись Anthropic с подпиской Pro / Max / Team / Enterprise или API-кредитами (Free-план доступа к Claude Code не даёт)
  • Интернет-доступ к серверам Anthropic; регион из списка поддерживаемых стран Anthropic
Способ Когда выбирать Автообновление
Native installer по умолчанию, любая ОС да, в фоне
Homebrew / WinGet если уже используете эти менеджеры нет, вручную
npm CI-окружения, где уже стоит Node нет, вручную
apt / dnf / apk серверы Linux через обновление системы

Нативный установщик (рекомендуется):

curl -fsSL https://claude.ai/install.sh | bash

Скрипт определяет архитектуру (Intel / Apple Silicon), кладёт бинарник в ~/.local/bin/claude и добавляет путь в shell-профиль.

Через Homebrew:

brew install --cask claude-code

Cask claude-code — стабильный канал (~неделя задержки от latest); для свежих версий есть claude-code@latest. Обновление вручную: brew upgrade claude-code.

Тот же нативный установщик:

curl -fsSL https://claude.ai/install.sh | bash

:!: На Alpine и других musl-дистрибутивах дополнительно нужны libgcc, libstdc++ и системный ripgrep; после установки выставить USE_BUILTIN_RIPGREP=0 в ~/.claude/settings.json.

Альтернатива — системные пакетные менеджеры (репозитории подписаны GPG-ключом Anthropic, отпечаток 31DD DE24 DDFA B679 F42D 7BD2 BAA9 29FF 1A7E CACE):

Debian / Ubuntu
sudo install -d -m 0755 /etc/apt/keyrings
sudo curl -fsSL https://downloads.claude.ai/keys/claude-code.asc \
  -o /etc/apt/keyrings/claude-code.asc
echo "deb [signed-by=/etc/apt/keyrings/claude-code.asc] https://downloads.claude.ai/claude-code/apt/stable stable main" \
  | sudo tee /etc/apt/sources.list.d/claude-code.list
sudo apt update && sudo apt install claude-code

Аналогичные репозитории есть для Fedora/RHEL (dnf) и Alpine (apk). Пакетные установки обновляются через обычный apt upgrade / dnf upgrade / apk upgrade.

Вариант 1 — нативно. В PowerShell:

irm https://claude.ai/install.ps1 | iex

Через WinGet:

winget install Anthropic.ClaudeCode

В CMD:

curl -fsSL https://claude.ai/install.cmd -o install.cmd && install.cmd && del install.cmd

Если PowerShell ругается 'irm' is not recognized — окно открыто в CMD, а не в PowerShell (в PowerShell приглашение начинается с PS).

После установки желательно поставить Git for Windows: тогда Claude Code использует Git Bash как Bash-инструмент. Без него команды идут через PowerShell, что мешает скриптам, рассчитанным на bash.

Вариант 2 — WSL2 (рекомендуется для Linux-проектов). Включить WSL2 (wsl –install в PowerShell от администратора, перезагрузка), затем внутри WSL — обычный Linux-установщик. Запускать claude из терминала WSL. Бонус WSL2 — поддержка sandboxing (изолированного выполнения команд), которого нет в нативной Windows-версии.

npm install -g @anthropic-ai/claude-code

Требуется Node 18+. Пакет подтягивает тот же нативный бинарник через optional dependency. Не использовать sudo — это ломает права. Обновление: npm install -g @anthropic-ai/claude-code@latest (не npm update -g).

claude --version
  • VS Code: расширение «Claude Code» из Marketplace — панель в сайдбаре, inline-правки с предпросмотром diff, использует тот же локальный бинарник и общую авторизацию.
  • JetBrains (IntelliJ, WebStorm, PyCharm и др.): аналогичный плагин из JetBrains Marketplace.
  • В форках VS Code (Cursor, Windsurf) расширение ставится так же, либо claude запускается в терминале редактора.

Расширения — визуальная обёртка над CLI, терминальная версия работает параллельно.

Запустить claude в папке проекта и выполнить:

/login

Откроется браузер на странице Anthropic; войти нужно аккаунтом, на котором оформлена подписка или заведены API-кредиты. Одноразовый код из браузера вставляется в терминал; токен сохраняется в ~/.claude.json.

Диагностика:

claude doctor

Показывает версию, путь к бинарнику, статус авторизации и проблемы конфигурации.

  • Подписка (Pro $20 / Max 5x $100 / Max 20x $200 / Team / Enterprise) — фиксированная плата, лимиты в сессиях и сообщениях. Pro — для лёгких задач, Max — для постоянной работы.
  • API-ключ (console.anthropic.com) — pay-per-token; подходит при нерегулярной работе. Для переключения: /logout, перезапуск, выбор варианта с API key.
  • Bedrock / Vertex AI / Microsoft Foundry — корпоративные сценарии.
cd ~/my-project
claude

Открывается интерактивная сессия; задача описывается обычным текстом.

Команда /init создаёт в корне проекта файл CLAUDE.md с автосгенерированным контекстом (стек, структура, команды). Claude Code читает его при старте каждой сессии. Файл стоит держать актуальным: стек и стиль кода, ключевые команды проекта (dev, build, test, lint), конвенции (алиасы импортов, расположение файлов, правила типизации).

Файл .claude/settings.json в корне проекта задаёт, что агент выполняет без подтверждения (allow), а что запрещено полностью (deny):

{
  "permissions": {
    "allow": ["Bash(npm run *)", "Bash(git status)", "Read(*)", "Edit(*)"],
    "deny":  ["Bash(rm -rf *)", "Bash(git push --force *)"]
  }
}

Базовый safe-list выставлен после установки; имеет смысл сразу добавить команды конкретного проекта.

  • MCP — подключение внешних инструментов (БД, GitHub, файловые системы). Управление: claude mcp add / list / remove, конфигурация в ~/.claude.json или .mcp.json проекта, состояние — по /mcp в сессии.
  • Hooks — скрипты на события агента (SessionStart, UserPromptSubmit, PreToolUse, PostToolUse, Stop); настраиваются в разделе hooks файла settings.json. Типовой пример — автозапуск prettier после правок файлов.
  • Skills — папки ~/.claude/skills/<name>/ с файлом SKILL.md (frontmatter: name, description); агент подключает skill сам по совпадению описания с задачей.
  • Plugins — упакованные наборы skills, команд, hooks и MCP-серверов; ставятся из marketplace командой claude plugin install <name>.
  • Subagents — отдельные экземпляры агента со своим контекстом (файлы ~/.claude/agents/<name>.md); полезны для длинного поиска по коду и параллельных шагов без раздувания основного контекста.
Команда Назначение
/help список команд
/login / /logout авторизация
/init создать CLAUDE.md
/clear очистить контекст
/compact сжать контекст, сохранив суть
/context объём токенов в контексте
/cost расход за сессию
/model переключить модель
/memory править CLAUDE.md из сессии
/mcp состояние MCP-серверов
/resume продолжить прошлую сессию
/review код-ревью изменений

Кастомные команды — файлы .md в .claude/commands/ (проект) или ~/.claude/commands/ (глобально); имя файла = имя команды.

Симптом Решение
claude: command not found перезапустить терминал; проверить, что ~/.local/bin в $PATH, при необходимости добавить в shell-профиль
EACCES при npm install -g не использовать sudo; настроить npm-префикс на пользовательский каталог или перейти на native installer
/login не открывает браузер (Linux/WSL/сервер) скопировать URL из терминала в браузер на другой машине, код вставить обратно
«Unsupported OS» на Windows нужна Windows 10 1809+ / 11; на старых сборках — только WSL2
npm не находит native binary переустановить с --include=optional или перейти на native installer
Исчерпаны лимиты подписки дождаться сброса, апгрейд плана или временно API pay-per-token

Обновление: native installer обновляется сам; принудительно — claude update или повторный запуск команды установки. Homebrew: brew upgrade claude-code; WinGet: winget upgrade Anthropic.ClaudeCode; apt/dnf/apk — через обновление системы.

Удаление (native, macOS/Linux):

rm -f ~/.local/bin/claude
rm -rf ~/.local/share/claude

Полная очистка конфигов, MCP-серверов и истории сессий:

rm -rf ~/.claude
rm ~/.claude.json

На Windows — те же пути в %USERPROFILE%\.local\ и %USERPROFILE%\.claude\.