Содержание

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

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

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

  1. Прокси нужен утилите curl (или PowerShell) для скачивания установщика.
  2. Прокси нужен самому 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:wordp%40ss%3Aword

Шаг 2. Настройка Claude Code для работы через прокси

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

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

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

При необходимости исключить отдельные хосты из проксирования используется 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 (системный файл политик) вся организация централизованная раздача

Нюансы:

Важные нюансы

Только Basic-аутентификация

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

Allowlist доменов

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

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

TLS-инспекция и корпоративные сертификаты

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

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.

Системные требования

Способы установки

Способ Когда выбирать Автообновление
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

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

Авторизация

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

/login

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

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

claude doctor

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

Подписка или API-ключ

Первый запуск

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 выставлен после установки; имеет смысл сразу добавить команды конкретного проекта.

Механизмы расширения

Полезные 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\.

Источники