Антон Ларичев

Введение
Claude Code — это CLI-агент от Anthropic, который умеет читать код, писать патчи, запускать команды в терминале и работать с git прямо из консоли. Проблема в том, что Anthropic официально не поддерживает Россию: запросы к api.anthropic.com из российских IP-адресов возвращают ошибку 403 unsupported_country_region_territory. Классический выход — постоянно держать включённым VPN на всей системе, но это неудобно: ломает другие сервисы, снижает скорость, требует ручного переключения.
В этой статье разберём, как настроить Claude Code так, чтобы прокси работал только для запросов к Anthropic API, а не для всего трафика — и почему это надёжнее, чем системный VPN.
Почему блокировка происходит именно на уровне API
Geo-блокировка у Anthropic реализована на уровне Cloudflare перед их API-шлюзом: сервис проверяет IP-адрес входящего запроса и сравнивает его со списком поддерживаемых регионов. Сама установка claude-code через npm при этом проходит без проблем — блокируется только обращение к эндпоинту /v1/messages в момент авторизации или отправки запроса модели.
Это значит, что решение не обязано быть системным VPN — достаточно, чтобы именно HTTP-запросы к Anthropic уходили через сервер в поддерживаемом регионе.
Способ 1: собственный обратный прокси на зарубежном VPS
Самый предсказуемый вариант — поднять reverse proxy на дешёвом VPS в регионе, где Anthropic доступен (например, Германия, Нидерланды), и направлять туда только запросы Claude Code.
Минимальный конфиг nginx на VPS:
server {
listen 443 ssl;
server_name claude-proxy.example.com;
ssl_certificate /etc/letsencrypt/live/claude-proxy.example.com/fullchain.pem;
ssl_certificate_key /etc/letsencrypt/live/claude-proxy.example.com/privkey.pem;
location / {
proxy_pass https://api.anthropic.com;
proxy_set_header Host api.anthropic.com;
proxy_ssl_server_name on;
}
}
После этого Claude Code настраивается через переменную окружения, которая переопределяет базовый URL API:
# добавить в ~/.zshrc или ~/.bashrc
export ANTHROPIC_BASE_URL="https://claude-proxy.example.com"
export ANTHROPIC_API_KEY="sk-ant-..."
Плюс такого подхода — трафик остальных приложений не затрагивается, VPN не нужен вообще. Минус — нужен сервер, домен и минимальное администрирование nginx.
Способ 2: сторонние API-совместимые провайдеры
Есть сервисы-агрегаторы, которые предоставляют доступ к моделям Claude по API, совместимому с форматом Anthropic, и принимают оплату локальными картами. В таком случае прокси поднимать не нужно — достаточно указать Claude Code адрес и токен агрегатора:
export ANTHROPIC_BASE_URL="https://api.provider-name.ru/anthropic"
export ANTHROPIC_AUTH_TOKEN="токен-от-провайдера"
Важно проверить два момента перед использованием такого сервиса: во-первых, полную совместимость эндпоинтов с /v1/messages, включая поддержку стриминга и tool use — без этого агентный режим Claude Code работать не будет. Во-вторых — политику хранения логов запросов, если в коде есть чувствительные данные.
Способ 3: настройка через settings.json
Переменные окружения удобны для разовой настройки, но если нужно управлять несколькими профилями (например, личный прокси и рабочий), лучше использовать файл конфигурации Claude Code.
{
"env": {
"ANTHROPIC_BASE_URL": "https://claude-proxy.example.com",
"ANTHROPIC_AUTH_TOKEN": "sk-ant-..."
},
"apiKeyHelper": "echo $ANTHROPIC_AUTH_TOKEN"
}
Файл размещается в ~/.claude/settings.json для глобальных настроек или в .claude/settings.json внутри проекта — так можно держать разные прокси для разных репозиториев, не трогая глобальный конфиг.
Проверить, что запросы действительно уходят через прокси, можно напрямую через curl перед запуском самого Claude Code:
curl https://claude-proxy.example.com/v1/messages \
-H "x-api-key: $ANTHROPIC_AUTH_TOKEN" \
-H "anthropic-version: 2023-06-01" \
-H "content-type: application/json" \
-d '{"model":"claude-sonnet-5","max_tokens":16,"messages":[{"role":"user","content":"ping"}]}'
Если ответ приходит без ошибки региона — конфигурация Claude Code с теми же переменными окружения тоже заработает.
Частые ошибки
Смешивание системного VPN и прокси для CLI. Если на машине уже включён VPN на уровне ОС, а Claude Code дополнительно настроен на собственный прокси, запросы могут уходить двойным маршрутом и periodically получать разные IP — это приводит к нестабильным 403-ошибкам. Стоит выбрать один способ маршрутизации трафика для API-запросов.
Оплата картой, выпущенной в России. Даже если сетевой доступ настроен верно, привязка платёжного метода в консоли Anthropic может отклоняться из-за страны эмитента карты. Для консоли разработчика обычно нужна карта иностранного банка или виртуальная карта, поддерживающая международные платежи.
Прокси не поддерживает стриминг ответов. Некоторые дешёвые reverse-proxy решения буферизуют ответ целиком перед отправкой клиенту, из-за чего Claude Code показывает "зависший" запрос вместо потокового вывода токенов. Проверяйте, что proxy_buffering в nginx выключен для этого location, либо что агрегатор явно заявляет поддержку SSE.
Устаревший токен в settings.json. Если токен обновлён в переменной окружения, но продолжает браться из закэшированного apiKeyHelper, Claude Code будет использовать старое значение до перезапуска сессии — перезапускайте терминал после смены токена.
Заключение
Работа с Claude Code из России не требует держать VPN включённым постоянно на уровне всей системы — достаточно направить через прокси только запросы к Anthropic API, задав ANTHROPIC_BASE_URL и токен авторизации. Собственный VPS даёт максимальный контроль и стабильность, сторонние агрегаторы — быстрый старт без администрирования сервера. В обоих случаях стоит явно проверять поддержку стриминга и tool use в прокси, иначе агентные возможности Claude Code будут работать некорректно.






Комментарии
0