Установка Claude Code через прокси с аутентификацией
Инструкция по установке и настройке Claude Code в окружении, где доступ в интернет осуществляется через прокси-сервер с аутентификацией по имени пользователя и паролю (Basic auth).
Процесс состоит из двух этапов:
- Прокси нужен утилите
curl(или PowerShell) для скачивания установщика. - Прокси нужен самому Claude Code для работы после установки.
Шаг 1. Установка
Linux / macOS
Задать переменные окружения с учётными данными и запустить установку в той же сессии терминала:
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
Windows (PowerShell)
$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
URL-кодирование спецсимволов в пароле
Если пароль содержит спецсимволы, их необходимо закодировать, иначе строка прокси распарсится неверно:
| Символ | Кодировка |
|---|---|
@ | %40 |
: | %3A |
# | %23 |
% | %25 |
/ | %2F |
Пример: пароль p@ss:word → p%40ss%3Aword
Шаг 2. Настройка Claude Code для работы через прокси
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.jsonClaude Code (см. раздел ниже)
При необходимости исключить отдельные хосты из проксирования используется NO_PROXY (список через пробел или запятую):
export NO_PROXY="localhost 127.0.0.1 internal.example.com"
Настройка через settings.json
Все сетевые переменные окружения можно задать в блоке 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.
Важные нюансы
Только Basic-аутентификация
Через URL вида http://user:pass@host:port работает только Basic auth. Для прокси с NTLM/Kerberos официальная рекомендация — LLM Gateway, поддерживающий нужный метод аутентификации. На практике также применяются локальные релеи (CNTLM, Px), которые принимают трафик без аутентификации на localhost и сами проходят NTLM-аутентификацию на корпоративном прокси.
Allowlist доменов
Установщику и самому Claude Code нужен доступ к ряду URL, в частности:
api.anthropic.comclaude.ai/downloads.claude.aistorage.googleapis.com
Их следует внести в allowlist прокси, иначе установка или работа оборвётся даже при корректной аутентификации. При использовании Bedrock/Vertex или собственного гейтвея трафик модели идёт к провайдеру, но инструмент WebFetch по умолчанию всё равно обращается к api.anthropic.com для проверки безопасности доменов (отключается опцией skipWebFetchPreflight: true в settings).
TLS-инспекция и корпоративные сертификаты
Если прокси выполняет 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 | через обновление системы |
macOS
Нативный установщик (рекомендуется):
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.
Linux
Тот же нативный установщик:
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.
Windows
Вариант 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 (резервный вариант)
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
Расширения для IDE
- 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
Показывает версию, путь к бинарнику, статус авторизации и проблемы конфигурации.
Подписка или API-ключ
- Подписка (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
Открывается интерактивная сессия; задача описывается обычным текстом.
CLAUDE.md
Команда /init создаёт в корне проекта файл CLAUDE.md с автосгенерированным контекстом (стек, структура, команды). Claude Code читает его при старте каждой сессии. Файл стоит держать актуальным: стек и стиль кода, ключевые команды проекта (dev, build, test, lint), конвенции (алиасы импортов, расположение файлов, правила типизации).
Permissions
Файл .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); полезны для длинного поиска по коду и параллельных шагов без раздувания основного контекста.
Полезные slash-команды
| Команда | Назначение |
|---|---|
/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\.