Команда инженеров · свой ЦОД в РФ · своё железо · своя панель · CloudStack + Linstor · MCP · база знаний по self-hosted
Гайд · ИИ

Claude Code на своем сервере из России: без VPN и без правок в коде

Ставим CLI-агента на VPS, включаем доступ к модели тремя переменными окружения и делаем так, чтобы он пережил ночь без человека у терминала. Прокси к ИИ-моделям уже входит в сервер.

Октябрь 2026Команда Fatmetal~6 мин
прокси входит в 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 - запрос пошел без прокси. Таймаут - переменные не подхватились той программой, которую вы запускаете.

Шаг 1

Ставим 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 из России открыты напрямую - на установку прокси не нужен. Он нужен ровно одному адресату: модели.

Шаг 2

Вход, который переживет ночь

Здесь развилка, на которой спотыкаются почти все. Обычный интерактивный вход работает - до первого истечения токена. А истечет он не в среду в полдень, а когда рядом никого нет: сервер-то трудится без вас.

Для неинтерактивной работы есть долгоживущий токен:

claude setup-token          # выдается на год

Полученное значение кладем в окружение как CLAUDE_CODE_OAUTH_TOKEN - и агент перестает зависеть от человека у терминала. Проверяем:

claude -p "скажи одно слово"

Ответ пришел - на сервере живет ИИ-агент.

Шаг 3

Если это служба - переменные в юнит

Когда агент запускается через 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, ни туннелей, ни посредника с оплатой в криптовалюте, ни единой правки в коде. Прокси к моделям уже включен в каждый наш сервер - отдельно его заказывать и объяснять кому-то, зачем вам доступ к модели, не нужно.

Разборы и гайды по self-hosted - в Telegram-каналеНовые гайды и карточки в маркетплейсе первыми @fatmetal_channel →

Гайд Fatmetal. Проверено на наших машинах: Claude Code через api-proxy.fatmetal.net, октябрь 2026.

Спросить инженера в TelegramМы на связи