Claude Code на своем сервере из России: без VPN и без правок в коде
Ставим CLI-агента на VPS, включаем доступ к модели тремя переменными окружения и делаем так, чтобы он пережил ночь без человека у терминала. Прокси к ИИ-моделям уже входит в сервер.
403 на первом же запросе
Сценарий у всех одинаковый. Вы берете сервер, ставите на него что-нибудь полезное - агента на Claude Code, бота на Anthropic SDK, автоперевод на OpenAI, векторный поиск с эмбеддингами, - и получаете в ответ:
403 Request not allowed
Дальше начинается обычное: VPN на сервере, туннель до «дружественной» машины, посредник по подписке с оплатой непонятно чем, перебор чужих реверс-прокси. И вопрос, который хуже остальных: если это ляжет ночью, кто будет поднимать.
Эту часть мы убрали. На каждом VPS Fatmetal работает наш API-прокси к ИИ-моделям: без VPN, без отдельного заказа, без доплаты. OpenAI, Anthropic и Google отвечают так, будто блокировок нет.
Три переменные, и код не меняется
export HTTPS_PROXY=http://api-proxy.fatmetal.net:8080
export HTTP_PROXY=http://api-proxy.fatmetal.net:8080
export NO_PROXY=localhost,127.0.0.1,10.0.0.0/8
Правок в коде не требуется вообще: SDK Anthropic, SDK OpenAI, LangChain, curl и любой HTTP-клиент читают эти переменные сами - стандарту больше лет, чем самим моделям.
Проверка одной командой:
curl -sS -o /dev/null -w '%{http_code}\n' \
--proxy http://api-proxy.fatmetal.net:8080 \
https://api.anthropic.com/v1/models
401 - то, что нужно: модель вас слышит и просит ключ. 403 - запрос пошел без прокси. Таймаут - переменные не подхватились той программой, которую вы запускаете.
Ставим Claude Code
Claude Code - не чат в браузере, а агент в терминале: читает репозиторий, правит файлы, запускает команды. На ноутбуке это удобно, на сервере - качественно другое: агент работает, когда вы спите.
curl -fsSL https://deb.nodesource.com/setup_20.x | sudo -E bash -
sudo apt-get install -y nodejs
npm i -g @anthropic-ai/claude-code
npm и GitHub из России открыты напрямую - на установку прокси не нужен. Он нужен ровно одному адресату: модели.
Вход, который переживет ночь
Здесь развилка, на которой спотыкаются почти все. Обычный интерактивный вход работает - до первого истечения токена. А истечет он не в среду в полдень, а когда рядом никого нет: сервер-то трудится без вас.
Для неинтерактивной работы есть долгоживущий токен:
claude setup-token # выдается на год
Полученное значение кладем в окружение как CLAUDE_CODE_OAUTH_TOKEN - и агент перестает зависеть от человека у терминала. Проверяем:
claude -p "скажи одно слово"
Ответ пришел - на сервере живет ИИ-агент.
Если это служба - переменные в юнит
Когда агент запускается через systemd, прокси прописывается в юните, а не в файле окружения проекта: это свойство машины, а не приложения.
[Service]
Environment=HTTPS_PROXY=http://api-proxy.fatmetal.net:8080
Environment=HTTP_PROXY=http://api-proxy.fatmetal.net:8080
Environment=NO_PROXY=localhost,127.0.0.1,10.0.0.0/8,.example.com
Environment=PATH=/home/youruser/.local/bin:/usr/local/bin:/usr/bin:/bin
Две строки здесь стоят вечера отладки каждая.
PATH обязателен. claude ставится в ~/.local/bin, а служба туда сама не смотрит - и честно пишет «command not found» про программу, которая прекрасно работает из вашей сессии.
NO_PROXY - предохранитель, а не формальность. Причин две, и первая важнее.
Прокси пропускает только API моделей. Это его назначение, а не побочное свойство: все остальное он не пустит. Отправите через него запрос к своей базе, к соседнему контейнеру, в зеркало пакетов или в собственный API - запрос просто не пройдет, и выглядеть это будет как поломка вашего приложения, а не как закрытый маршрут.
И точка отказа. Даже если бы пропускал: когда через прокси идет все подряд, он становится единой точкой отказа для всего сервиса сразу. Ляжет прокси - встанет не ИИ-функция, а весь сервис целиком.
Поэтому локальную сеть, свои домены и имена контейнеров из compose пропишите в NO_PROXY сразу, до первого запуска.
Кому прокси нужен ради обычных задач
Доступ к моделям нужен не только CLI-агенту. Вот что чаще всего упирается в блокировку на наших же разборах self-hosted:
- файловое облако с распознаванием - поиск по содержимому фотографий и сканов;
- база знаний с ИИ-поиском - ответы по вашим документам вместо поиска по словам;
- хелпдеск - черновик ответа оператору и разбор тикета по темам;
- автоперевод интерфейса и контента;
- инструменты разработчика - ревью, тесты, разбор логов.
Архитектурная деталь у всех одна: в настройках есть поле для ключа OpenAI, Anthropic или Gemini. Поле есть, ключ есть, а запрос из России не уходит. Три переменные - и уходит.
Один нюанс: убедитесь, что ваш образ читает HTTPS_PROXY. Большинство читает, но не все - честный способ один, запустить и посмотреть.
Итог
Чтобы поднять ИИ-агента на своем сервере из России, нужно: VPS, Node, одна команда установки, токен на год и три переменные окружения. Ни VPN, ни туннелей, ни посредника с оплатой в криптовалюте, ни единой правки в коде. Прокси к моделям уже включен в каждый наш сервер - отдельно его заказывать и объяснять кому-то, зачем вам доступ к модели, не нужно.
Гайд Fatmetal. Проверено на наших машинах: Claude Code через api-proxy.fatmetal.net, октябрь 2026.