Anthropic API: использование Claude Code и CLI-инструментов через прокси
При работе из России запросы к api.anthropic.com часто не проходят: терминал получает unable to connect to api.anthropic.com или таймаут на уровне TLS. При этом ключ валидный, код правильный, проблема в маршруте. Ниже разбираем, как получить ключ, как настроить Claude Code и CLI-инструменты, и как развести их трафик через прокси на уровне процессов, а не всей машины.
Что такое Anthropic API и ключ
Anthropic API, это HTTP-интерфейс к моделям Claude. Все запросы уходят на https://api.anthropic.com, аутентификация идёт по ключу вида sk-ant-..., который вы получаете в консоли. Один ключ работает со всеми доступными моделями семейства Claude, отдельного ключа под каждую модель заводить не нужно.
Формат запроса и заголовки
Ключ передаётся в заголовке запроса, а не в URL. Минимальный вызов через curl выглядит так:
curl https://api.anthropic.com/v1/messages \
-H "x-api-key: $ANTHROPIC_API_KEY" \
-H "anthropic-version: 2023-06-01" \
-H "content-type: application/json" \
-d '{"model":"claude-sonnet-4-20250514","max_tokens":1024,"messages":[{"role":"user","content":"ping"}]}'
Поле content внутри messages, это тело запроса от пользователя. Заголовок anthropic-version обязателен, без него сервер вернёт ошибку валидации.
Диагностика таймаута
Если этот запрос висит и обрывается по таймауту, дело не в теле запроса. Проверьте резолв: nslookup api.anthropic.com обычно отвечает, а вот TLS-сессия до хоста не устанавливается. Это как раз региональная блокировка, ключ и модель тут ни при чём.
Как получить API-ключ
Ключ создаётся в консоли Anthropic (console.anthropic.com), в разделе API Keys. Порядок стандартный: регистрация аккаунта, привязка способа оплаты, кнопка создания ключа. Ключ показывается один раз, скопируйте его сразу и сохраните, повторно посмотреть значение нельзя.
Про бесплатный доступ
Про «бесплатный» доступ честно: устойчивого бесплатного API-ключа Anthropic для постоянной работы нет, тарификация идёт по токенам. Актуальные цены смотрите на странице pricing в самой консоли, мы их здесь не дублируем, чтобы не вводить в заблуждение устаревшими цифрами.
Доступность консоли из России
Сама регистрация в консоли и создание ключа из России тоже упираются в доступность домена. Если консоль не открывается, канал до Anthropic нужно решать до того, как вы дойдёте до создания ключа. Открытие console.anthropic.com и вызовы api.anthropic.com идут на разные хосты, но упираются в одну региональную блокировку.
Настройка Claude Code
Claude Code, это CLI-инструмент Anthropic для работы с кодом в терминале. Устанавливается через npm:
npm install -g @anthropic-ai/claude-code
Запуск на Windows и передача ключа
На Windows его обычно запускают в WSL, потому что инструмент рассчитан на Unix-окружение. Ключ Claude Code берёт из переменной окружения ANTHROPIC_API_KEY или из своего профиля аутентификации. Если переменная не выставлена, вы получите ошибку про отсутствие профиля или про то, что не найден ключ для провайдера anthropic.
export ANTHROPIC_API_KEY=sk-ant-...
claude
Проверка моделей при старте
При первом запуске Claude Code проверяет доступность API и список моделей. Если хост недоступен, инструмент падает на этой проверке, и понять причину по сообщению трудно: выглядит как проблема аутентификации, хотя это блокировка сети. В списке доступных моделей вы увидите варианты Opus и Sonnet, набор зависит от вашего аккаунта.
Совместимые провайдеры и Anthropic-endpoint
Формат Anthropic Messages поддерживают не только модели Claude. Ряд провайдеров отдаёт совместимый endpoint, на который можно направить Claude Code, переопределив базовый URL через ANTHROPIC_BASE_URL. Так работают, например, схемы вида https://api.deepseek.com/anthropic или https://api.z.ai/api/anthropic, а также связки Claude Code с GLM. Логика одна: инструмент говорит на протоколе Anthropic, а на другом конце стоит другая модель.
Один ключ на несколько моделей
Агрегаторы дают один API-ключ на все модели: вы создаёте ключ у провайдера-агрегатора и переключаете модель через параметр model в теле запроса. Это удобно, когда нужно сравнить ответы Claude, openai-совместимых моделей и GLM из одного клиента, не заводя ключ под каждого провайдера отдельно.
Разные хосты у разных инструментов
Это отдельная тема, но она важна для понимания маршрутов. Разные инструменты у вас в терминале могут ходить на разные хосты: сам Claude Code на api.anthropic.com, gemini CLI на свой endpoint, openai-совместимые клиенты на третий. Часть из них блокируется по региону, часть нет. Разводить их удобнее по процессам, чем гонять весь трафик машины через один туннель.
Почему не подходит общий VPN
Общий VPN уводит домой весь трафик, включая тот, которому это не нужно. Windows не умеет разводить трафик по приложениям штатными средствами: правило либо для всей системы, либо никак. В итоге под прокси уезжает и то, что должно идти напрямую, а отладить, каким каналом реально пошёл конкретный процесс, нечем.
Наше решение
Мы сделали Proxy Control под эту задачу. Программа поднимает виртуальный сетевой адаптер (TUN) на sing-box, забирает в него весь трафик машины и раздаёт по правилам, привязанным к имени процесса. Сетевые параметры системы при этом менять не нужно.
Маршрутизация терминала по процессам
Каналов четыре: Дом (обычный интернет провайдера), VPN (ваш узел), Прокси (через HTTP CONNECT) и Блок (соединение отклоняется). Каждому процессу вы назначаете свой канал. Терминал с Claude Code уводите в прокси, локальные утилиты оставляете дома, всё лишнее закрываете.
Неизвестное блокируется по умолчанию
Неизвестное блокируется намеренно. Новая программа появляется в списке со статусом «ожидает» и в интернет не выходит, пока вы вручную не назначите ей канал. Это сделано осознанно: лучше явный отказ, чем незаметная утечка запроса мимо прокси.
Запросы из вашего кода
Запросы к Anthropic Claude API из вашего кода на Python (requests, официальный SDK) идут тем же путём: важен не язык, а процесс интерпретатора, которому вы назначили канал. Если вы строите инструмент для анализа consumer behavior или прикладного research (скажем, обработку отзывов методами psychology), поведение маршрута то же: канал получает процесс python.exe, а не отдельный HTTP-вызов.
Fail-closed и защита от утечек
Для приложений на прокси мы заблокировали UDP и IPv6, иначе QUIC ушёл бы мимо HTTP-прокси. DNS работает по DoH. Если прокси недоступен, прокси-приложения уходят в блок, а не домой. Если узел VPN мёртв, то же самое для VPN-приложений. Пока туннель пересобирается, ставится блокирующее правило брандмауэра: трафик встаёт на несколько секунд, но не уходит мимо маршрутов.
Пробы каналов
Проверить, что канал действительно рабочий, помогают три пробы: копии curl, прибитые к каналам, запрашивают внешний IP и показывают три разных адреса. Если IP канала совпал с домашним, программа пишет про утечку, а не красит статус в зелёный.
Живая сверка каналов
sing-box поднимает локальный API, через который видно, что туннель делает на самом деле, а не что написано в конфиге:
claude.exe → прокси
chrome.exe → vpn
rustdesk.exe → дом
Сверка с логом
После каждого применения маршрутов мы сверяем живые каналы с конфигом и пишем расхождения в лог. Это единственная проверка, которая способна поймать реальное несоответствие: снимок из конфига с самим конфигом разойтись не может.
Запуск и типичные ошибки
Туннель поднимается сам при старте программы, проходя 15 шагов с проверками, в конце должно быть FAIL: 0. После смены канала у приложения нажмите «Применить маршруты»: появится подтверждение с отсчётом 10 секунд.
Чек-лист при ошибке подключения
Если Claude Code снова получает unable to connect to api.anthropic.com, проверьте по шагам:
- Процесс терминала (или интерпретатора) назначен на канал прокси, а не «ожидает».
- После назначения нажаты «Применить маршруты».
- Проба прокси показывает не домашний IP.
- Ключ передан через
ANTHROPIC_API_KEY, иначе инструмент выдаст ошибку аутентификации, а не сети.
Как отличить ошибку сети от ошибки ключа
Если путаете ошибку доступа с ошибкой ключа, сначала повторите голый curl-запрос из того же процесса. Пройдёт curl, дело в конфиге инструмента. Не пройдёт, дело в маршруте. Ошибку Not found API key for provider anthropic даёт сам инструмент при пустой переменной, к сети она отношения не имеет.
Установка и лицензия
Установка простая: распаковать архив и запустить Install.bat. Python и sing-box лежат внутри, интернет при установке не нужен, ставить заранее ничего не требуется. Ключ продукта имеет вид CPC-XXXXXX-XXXXXX, один ключ на один компьютер, по нему программа получает срок действия и персональные реквизиты прокси. Это ключ доступа к нашему прокси, не путайте его с sk-ant-... от Anthropic.
Удаление
Удаление через Uninstall.bat: снимает туннель, правило брандмауэра, задания планировщика, ярлык и папку продукта. Лицензия при этом остаётся привязанной к компьютеру.
Подписка
Подписка: 495 ₽/мес помесячно, от 395 ₽/мес при оплате за год, есть тарифы на 2, 3, 6 и 12 месяцев. Регистрация через почту или бота, поддержка в Telegram.
Смежная документация
Отдельные разборы форматов и SDK, включая совместимые схемы вроде docs.openclaw.ai, мы держим в соседних материалах силоса. Быстрый старт по терминалу собран на странице продукта Proxy Control, там же лежит порядок первичной настройки маршрутов.
Proxy Control для Windows
Программа разводит трафик по приложениям: ИИ-инструменты идут через прокси, остальное напрямую. Подписка от 395 ₽ в месяц при оплате за год.
Скачать для Windows