Чтобы воспользоваться Fable 5, придётся опять пройти небольшой квест
Чтобы воспользоваться Fable 5, придётся опять пройти небольшой квест

После выхода первой части прошло 2 месяца, и наши многоуважаемые американские партнёры из Anthropic и Google что-то подхимичили, и новые версии Claude Code и Antigravity перестали работать.

И нам придётся осваивать новые хитрости для настройки VPS, чтобы быть на острие прогресса. В статье будут настройки для VPS и Linux-десктопа.

Предыстория

В прошлой части статьи с помощью заграничного VPS, ssh и privoxy мы успешно настроили запуск Claude Code. Но время идёт, и прошлая схема почти перестала работать.

В новых версиях Claude Code и Antigravity встроили какую-то дополнительную защиту, и они перестали запускаться. Claude Code ясно говорит, что проблема в стране, а Antigravity падает с неясной ошибкой «Agent terminated due to error».

Когда впервые стали появляться такие проблемы, то я нашёл обходной путь. Дело в том, что вначале Claude Code существовал в виде модуля для Node.JS. То есть, фактически, это был такой исполняемый JavaScript-модуль. Он работал через типовые способы доступа к сети и прекрасно проксировался через privoxy.

Через некоторое время Anthropic сделали его в виде уже нативного бинарника, который умеет самообновляться.

Я подумал, что для меня не так важны какие-то мелкие нововведения и сочетания клавиш и что мне хватит старой версии программы. Я поставил Node.JS и последнюю версию Claude Code v2.1.112, которая умеет работать как модуль Node.JS. В свою пользовательскую папку ~/bin положил скрипт-обёртку claude, а в переменной PATH своего пользователя поставил этот путь первым.

Для перехвата всех запросов из программы Claude Code я использовал программу proxychains. Из-под неё можно запустить что угодно и она будет перехватывать https-запросы.

#!/bin/bash

# Запускаем целевую программу
# "$@" передаёт все аргументы командной строки "как есть" (с сохранением кавычек)
# exec заменяет процесс оболочки процессом программы, экономя ресурсы
DISABLE_AUTOUPDATER=1 exec proxychains -q /usr/bin/claude

И всё заработало. Я подумал, ладно — живём дальше. Но не тут-то было.

Квантизация и запланированное устаревание

Через некоторое время Opus 4.7, который воспринимался как откровение богов, как Deus ex Machina, который решал сложнейшие задачи с пары попыток, стал подтупливать. И чем дальше, тем сильнее.

Он стал предлагать какие-то халявные лёгкие пути вместо решения проблем, маскировку проблем, а не их решение. Или стал говорить: «Программа зависает всего в 3% случаев, это хороший показатель, давай двигаться дальше». Требования, записанные в CLAUDE.md, стали выполняться не все. Дошло даже до галлюцинаций.

То, что каждый запрос занимает минуты, — с этим я ещё как-то смирился, ведь у Anthropic не хватает вычислительных мощностей, они даже у Маска арендуют Colossus в Мемфисе.

Я понял, что всякие меняющиеся строчки с красивыми формами глаголов типа Frosting…, Blanching…, Schlepping…, переливающиеся всеми оттенками цветов, это просто мишура, создающая видимость работы, пока запрос стоит в очереди к нейросети.

Но, видимо, им очень нужно переводить клиентов на новые версии программ и новые модели, поэтому старые модели они стали квантизировать. Некоторые авторы на Хабре считают, что они идут на прямой обман и подсовывают Sonnet вместо Opus. Я не думаю, что они идут на прямой обман. Зачем? Ведь есть же квантизация! Достаточно умную модель пропустить через её мясорубку — уменьшить точность каждого параметра с 4 байт до 4-8 бит и она будет запускаться на более дешёвом железе.

Это не является обманом. Opus остаётся Opus`ом. Но просто более тупым. И чем нужнее переход на новые модели, тем можно сильнее квантизировать. Вплоть до 4 бит, что для Opus уже что-то лоботомии.

Конечно, всё это мои домыслы. Но выглядит как весьма правдоподобное объяснение.

Итак, я пользовался Opus 4.7. Всё было нормально. Но появился Opus 4.8. В моей старой версии Claude Code по какой-то причине его не было. И я думал, что ничего страшного. Но он стал работать хуже, и я стал задумываться, как заставить свежие версии Claude Code работать.

Суть проблемы

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

Встала задача запуска программы в некотором изолированном пузыре, в котором будет полностью свой сетевой стек. Я не хочу абсолютно весь трафик пускать через VPS, мне нужно чтобы конкретная программа, находясь в пузыре, могла слать UDP, ICMP, HTTP и HTTPS-запросы с заграничного IP.

Самое простое решение

В прошлой части мы тщательно выбирали VPS для максимально быстрой работы с Claude Code. И даже было видно, что у него есть серверы в Северной Европе. Скорее всего, в дата-центрах Nebius в Финляндии.

Поэтому мы можем просто запускать Claude Code внутри VPS. И работать удалённо через SSH. Это прекрасная опция, если всё, что нам нужно, можно поставить на VPS.

Для такого стиля работы достаточно выбирать сервер с оплатой «За ресурсы», а не помесячной. Выбрать побольше ядер. Когда вам потребуются дополнительные ядра для быстрой компиляции программ, то они у вас будут.

Но как быть, если вы хотите работать со своей файловой системой или пишете ядра CUDA, которые можно протестировать только локально? Хотелось бы, чтобы и локально всё работало.

Делаем изолированный сетевой пузырь для Claude

Скажу сразу, хоть я и пишу для блога RUVDS, у меня есть разные VPS. В том числе американских провайдеров. И настроить виртуальный сервер от RUVDS оказалось настолько проще, что в итоге я пользуюсь именно им, несмотря на имеющийся выбор.

Для начала обновим и установим curl на VPS:

apt update
apt install curl -y
curl -O https://raw.githubusercontent.com/angristan/wireguard-install/master/wireguard-install.sh

1. Быстрая установка WireGuard на сервер

На удалённом сервере выполняем скрипт автоустановки от angristan, который сам сгенерирует ключи и конфиг для клиента. Я на все вопросы отвечал Yes или Enter. Там предложат ввести имя — введите что-то короткое в нижнем регистре без цифр до 15 символов.

curl -O https://raw.githubusercontent.com/angristan/wireguard-install/master/wireguard-install.sh
chmod +x wireguard-install.sh
./wireguard-install.sh

Копируем полученный клиентский конфиг (например, wg0-ruvds.conf) на локальный ПК в папку /home/$USER/conf. Имя пользователя своё подставляем.

В конфиге смотрим порт, на котором будет висеть WireGuard. Этот порт нужно открыть на VPS и разрешить его использовать как NAT. Например, порт 55555.

iptables-legacy -I INPUT -p udp --dport 55555 -j ACCEPT
# Это менять не придётся. Типовой ip
iptables-legacy -I FORWARD -s 10.66.66.0/24 -j ACCEPT
iptables-legacy -I FORWARD -m state --state RELATED,ESTABLISHED -j ACCEPT
iptables-legacy -t nat -I POSTROUTING -o eth0 -j MASQUERADE

2. Запуск Claude в изолированном сетевом пространстве

Ставим локально пакет wireguard-tools. На моём Calculate Linux это команда:

emerge -av net-vpn/wireguard-tools

Вместо использования стандартной команды wg-quick up, так как она завернёт в туннель трафик всего ПК, мы создадим скрипт, который поднимет интерфейс в изолированном «пузыре» специально для Claude.

Я сохранил следующий скрипт в папке /usr/local/bin/claude, подставив свой IP из конфига wg0.conf:

#!/bin/bash

USER="Ваш линукс пользователь"
# Имя сетевого пространства nbb (network bubble)
SPACE="nbb"
# Конфигурация
WG_CONF="/home/$USER/conf/wg0-ruvds.conf"
# Важно: имя файла (wg0-ruvds) не должно превышать 15 символов!

# 0. Очистка "хвостов" от предыдущих неудачных запусков
ip netns del $SPACE 2>/dev/null

# 1. Создаем сетевое пространство (namespace) с именем "vpn"
ip netns add $SPACE
ip -n vpn link set lo up

# 2. Изолируем DNS (чтобы приложение использовало DNS туннеля)
mkdir -p /etc/netns/$SPACE
echo "nameserver 1.1.1.1" > /etc/netns/$SPACE/resolv.conf # Или DNS из вашего wg0.conf
echo "nameserver 1.0.0.1" >> /etc/netns/$SPACE/resolv.conf

# 3. Создаем интерфейс WireGuard и закидываем его в namespace
ip link add wg1 type wireguard
ip link set wg1 netns $SPACE

# 4. Применяем конфигурацию ключей
wg-quick strip "$WG_CONF" | ip netns exec $SPACE wg setconf wg1 /dev/stdin

# 5. ВАЖНО: Укажите здесь Address= из вашего wg0.conf
ip -n $SPACE addr add 10.66.66.2/32 dev wg1

# 6. Включаем интерфейс и маршрутизацию внутри "пузыря"
ip -n $SPACE link set wg1 up
ip -n $SPACE route add default dev wg1

echo "Туннель изолированно запущен! Запускаем shell внутри туннеля..."

# 7. Открываем bash от имени обычного пользователя внутри VPN-пространства

cd /home/$USER
ip netns exec $SPACE sudo -u $USER bash
# /home/$USER/.local/bin/claude — это оригинальный исполняемый файл
#ip netns exec $SPACE sudo -u $USER bash -c /home/$USER/.local/bin/claude

# 8. Корректное завершение (выполнится только после закрытия bash)
echo "Закрытие сессии. Очистка сетевого пространства..."
ip netns del $SPACE
ip link del wg1 2>/dev/null
echo "Готово."

Запускаем из под root: claude

Мы оказываемся внутри пузыря. Проверка работы:

ping 8.8.8.8
curl https://ifconfig.me

Видим пинги и IP-адрес VPS.

Далее в скрипте комментируем bash и раскомментируем claude:

#ip netns exec vpn sudo -u $USER bash
ip netns exec vpn sudo -u $USER bash -c /home/$USER/.local/bin/claude

That’s all, folks!

3. Адаптация пузыря под Antigravity

Меняем одну строку в скрипте:

ip netns exec vpn sudo -u $USER bash -c "/home/$USER/Programs/Antigravity\ IDE/bin/antigravity-ide"

Запускаем любую программу в пузыре

Поскольку иногда нужно запускать в сетевом пузыре разные программы, я придумал универсальный скрипт nbb — от «network bubble».

Идея такая:

  • Запускаем пузырь при старте компьютера

  • Запускаем любую программу в пузыре командой sudo nbb program_name args

  • Уничтожаем пузырь при выключении компьютера (необязательно)

Скрипт старта пузыря /etc/local.d/nbb.start
#!/bin/bash

SPACE=nbb

# Конфигурация
WG_CONF="/home/inetstar/conf/wg0-ruvds.conf"
# Важно: имя файла (wg0-veter) не должно превышать 15 символов!

# 0. Очистка "хвостов" от предыдущих неудачных запусков
ip netns del $SPACE 2>/dev/null

# 1. Создаем сетевое пространство (namespace) с именем "vpn"
ip netns add $SPACE
ip -n $SPACE link set lo up

# 2. Изолируем DNS (чтобы приложение использовало DNS туннеля)
mkdir -p /etc/netns/nbb
echo "nameserver 1.1.1.1" > /etc/netns/nbb/resolv.conf # Или DNS из вашего wg0.conf
echo "nameserver 1.0.0.1" >> /etc/netns/nbb/resolv.conf

# 3. Создаем интерфейс WireGuard и закидываем его в namespace
ip link add wg1 type wireguard
ip link set wg1 netns nbb

# 4. Применяем конфигурацию ключей
wg-quick strip "$WG_CONF" | ip netns exec nbb wg setconf wg1 /dev/stdin

# 5. ВАЖНО: Укажите здесь Address= из вашего wg0.conf
ip -n $SPACE addr add 10.66.66.2/32 dev wg1

# 6. Включаем интерфейс и маршрутизацию внутри "пузыря"
ip -n $SPACE link set wg1 up
ip -n $SPACE route add default dev wg1
Скрипт уничтожения пузыря /etc/local.d/nbb.start
#!/bin/bash

SPACE=nbb

ip netns del $SPACE
ip link del wg1 2>/dev/null

Даём права утилите nbb в файле /etc/sudoers.d/nbb:

your_linux_user_name ALL=(ALL) NOPASSWD: /usr/local/bin/nbb

Утилита nbb в файле /usr/local/bin/nbb:

#!/bin/bash

ip netns exec nbb sudo -i -u your_linux_user_name "$@"

Теперь для запуска любой программы в сетевом иностранном пузыре нужно набрать:

sudo nbb program_name arguments_of_program

Заставляем claude работать как родного

Берём подход из предыдущей части статьи. В файле ~/.bashrc прописываем приоритет пользовательской папки ~/bin и путь к папке с claude:

export PATH="$HOME/bin:$PATH:$HOME/.local/bin"

В файле /home/username/bin/claude пишем:

#!/bin/bash

sudo nbb ~/.local/bin/claude "$@"

Теперь для нас использование claude в терминале из любой папки ничем не отличается от родного использования.

claude --resume "Поехали!"

Заключение

Хоть и не хотелось повышать свою грамотность в области сетевых технологий, но пришлось. И успешно!

На удивление, RUVDS продают очень хорошие VPS, на которых с первой попытки у меня завелось всё что нужно, в отличие от одного именитого американского провайдера.

Вообще VPS — отличная вещь в наше время, я их использую для многих целей.

Ну что же, я пошёл осваивать Fable 5.

Всех благ и хорошего вайбкодинга!

© 2026 ООО «МТ ФИНАНС»

Комментарии (26)


  1. D1JEXX
    11.06.2026 13:29

    Пока вообще с проблемой не сталкивался, просто warp включаешь на это всё и работает


    1. inetstar Автор
      11.06.2026 13:29

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


    1. Kenya-West
      11.06.2026 13:29

      Сети Cloudflare в России на ладан дышат.


  1. Dhwtj
    11.06.2026 13:29

    И нам придётся осваивать новые хитрости

    Для агентнозависимых

    Как-то не прикольно проходить регулярные квесты


    1. pavel_kudinov
      11.06.2026 13:29

      А Вы, простите, планируете в обозримой перспективе сохранять занятость делая импакт в 1/10 от типичного импакта агентозависимых?

      Или не верите, что современные агенты в умелых руках в разы ускоряют разработку, при этом как минимум не ухудшая, а чаще значительно улучшая качество, продуманность сайд эффектов, покрытие тестами и т.п.?


      1. Dhwtj
        11.06.2026 13:29

        делая импакт в 1/10 от типичного импакта агентозависимых

        Возбуждение ненависти либо вражды, а равно унижение человеческого достоинства.

        Лол. Ну попробуй, догони, агентозависимый!

        Или не верите, что современные агенты в умелых руках в разы ускоряют разработку

        Очень узкий сектор где это действительно так


        1. pavel_kudinov
          11.06.2026 13:29

          Возбуждение ненависти либо вражды, а равно унижение человеческого достоинства.

          простите, а калькулятор тоже унизил в своё время человеческое достоинство?

          я же не говорю, что агенты работают лучше ВМЕСТО человека, я говорю агенты лучше работают В УМЕЛЫХ РУКАХ. железный конь идёт на смену крестьянской лошадке


        1. pavel_kudinov
          11.06.2026 13:29

          Очень узкий сектор где это действительно так

          Ваши сведения устарели


          1. Dhwtj
            11.06.2026 13:29

            Хотите, почитайте как я сегодня поставил троечку LLM за разбор легаси кода. Самая крутая фубля 5 накосячила. Код как бы работает, но он ужасен.

            Вот её признания без купюр:

            ---

            Давай честно и без самобичевания — разделю, где реально мой промах, а где структурное ограничение.

            Согласен по двум пунктам — но с уточнением степени вины

            1. Контракты апфронт — да, чистый промах. Это не зависело ни от кода, ни от intents. Проектировать контракты до реализации — методологически правильно всегда, независимо от того, готова ли команда к DDD, какой PHP и т.д. Я выдал «план этапов рефакторинга» вместо «контрактного слоя» — выбрал не тот уровень артефакта. Это исправляемо инструкцией, и это должно быть дефолтом. Тут оправданий нет.

            2. DDD/parse-don’t-validate — промах частичный, и вот тут важный нюанс. Я не не распознал паттерн — я применил его слабую, процедурную версию (единый пайплайн + guard’ы + ревалидация перед записью). Это «валидация в одном месте», а не «невалидное состояние непредставимо». Разница как раз в том самом сдвиге, который ты внёс. То есть распознавание было, а вот выбор силы гарантии — нет. Я сел на консервативный приор: легаси с eval, «ответственная система, не сломать» → минимально-инвазивный рефакторинг. Ошибка в том, что я не предъявил тебе развилку: «вот процедурный путь (дёшево, дрейфует), вот структурный always-valid (дороже, гарантия по построению) — выбирай». Я молча выбрал за тебя консервативный, не показав второй.

            Это и есть корень: не дефицит знания паттерна, а необозначенный выбор под неопределённость.

            Теперь твой вопрос: пофиксят в новых моделях или не хватало кода?

            Раскладываю по трём разным причинам — у них разная судьба:

            (а) Контракты апфронт — да, это «пофиксят», и это даже не про размер модели. Это вопрос пост-тренинга / дефолтных привычек: более новые модели тяготеют выдавать контракты раньше, потому что их так калибруют на инженерных задачах. Информации в коде хватало с избытком. Чистый методологический дефолт.

            (б) Сила гарантии (always-valid) — частично пофиксят, частично нет. Более способная модель с большей вероятностью сама предъявит развилку «процедурно vs структурно» вместо тихого консервативного выбора — потому что лучше держит в голове несколько архитектурных альтернатив одновременно и охотнее их явно противопоставляет. Но «какую силу выбрать» — это всё равно функция от твоего аппетита к риску и готовности команды, чего в коде физически нет. Так что улучшение будет в том, что модель спросит или предложит опции, а не в том, что угадает. Угадать тут нельзя — это не задача с одним ответом.

            (в) Вкусовые границы (typestate — перебор) — не пофиксят никогда, и не должны. «Идиоматично ли это для нашей команды/языка» не выводится ни из какого объёма кода. Это калибруется только обратной связью. Тут больше данных не помогает в принципе.

            Сухой остаток

            • Кода хватало для (а) и для распознавания (б). Не хватало intents для выбора в (б) и полностью для (в).

            • Мой главный системный дефект в этой сессии — не «не знал паттерн», а тихо выбирал консервативный вариант под неопределённость вместо того, чтобы вынести развилку наверх. Контракты — частный случай того же: я выбрал формат «план» вместо «контракт», не спросив.

            • Что новые модели улучшат: раньше выдавать контракты, чаще явно показывать архитектурные развилки и их трейдоффы. Чего не улучшат: угадывание твоего вкуса и аппетита к риску — это останется зоной обязательной обратной связи.

            То есть формула «плотный бриф + 1–2 коррекции на уровне контрактов» — это не костыль под слабость модели, это останется оптимумом и для сильных моделей, просто остаточных коррекций станет меньше, а развилки модель будет выносить сама.


            1. pavel_kudinov
              11.06.2026 13:29

              • у вас агент итеративно автономно отлаживал до успеха или вы просто попросили с первого раза сгенерировать правильный код?

              • насколько скиллами и доками покрыт для ии проект, это его первое погружение или в проекте уже накатан конвеер решения задач с помощью ии и он уже с вами задокументировал наиболее частые косяки и как правильно делать?

              у меня буст пошел именно по выполнении обоих этих условий, до этого я месяца 3 адаптировал ии под проект постепенно улучшая mcp экспиренс агентный (делаю игру gpgpu симуляцию эволюции)


              1. pavel_kudinov
                11.06.2026 13:29

                чтобы получить x10 буст нужно дойти до многогагентной автономности и решать параллельно 10 тасок переключаясь между агентами как лид над разрабами


              1. Dhwtj
                11.06.2026 13:29

                Понятно, я не пытался с первого раза всё получить. Это примерно после 10 вопроса с нуля. Ошибки на стадии проектирования. На входе примерно 3-4.000 строк, 4 файла. Я раза 4 пробовал по 10-15 итераций чисто проектирования (дальше уходило в детали и проектировать уже нельзя) и раза 3 агентский режим по 4 часа - одинаково криво. То есть формально может и работать, но кода раза в 2 больше чем нужно и криво (он и сам признал что качество плохое - см выше), а значит ревью сильно затруднено, качество за счёт вычитки не проверить, а тестам я не доверяю.

                Скиллы не настроены. А смысл? Это уникальная задача в проекте, она уже решена мной. В других местах другие задачи.

                Если бы у меня были повторяемые задачи (или хотя бы задачи одного узкого скилла) то да, это ускорило бы, тут не спорю. Но я такие задачи джунам скидываю.

                Паттерн проблем LLM в принципе одинаковый для всех моих задач: не предлагает альтернативы, не фокусируется на важном - потому не может написать высокоуровневый дизайн и план - план расползается в 3-5 раз его невозможно читать. Не предложил начать с контрактов это частности.

                Но даже зная такие недостатки очень сложно их скорректировать. По существу начальные стадии полностью самому. А это часто больше половины времени.


      1. DreamC
        11.06.2026 13:29

        Я некоторое время уже использую ИИ инструменты, но никак не пойму как получают эти "х10" цифры. Я трачу очень много времени на чтение и переработку планов и полировку результатов. Да, работа ускоряется, но не на те дикие величины что везде пишут.

        У меня складывается впечатление, что я как-то неправильно использую их...


        1. pavel_kudinov
          11.06.2026 13:29

          ответил выше


      1. hren_sobachiy
        11.06.2026 13:29

        А Вы, простите, планируете в обозримой перспективе сохранять занятость делая импакт в 1/10 от типичного импакта агентозависимых?

        Выиграли там, а всё выигранное потратили на квесты обхода очередных блокировок. А в один прекрасный момент это может тупо не получиться вообще. Строить серьёзный бизнес на этом - такое себе.


  1. sergeym69
    11.06.2026 13:29

    И зачем вам этот Opus, в нем ведь нет наших скреп и гойды! Надо пользоваться посконным ГигаЧадом !


    1. Prikalel
      11.06.2026 13:29

      Залатые слава


    1. Diamon33
      11.06.2026 13:29

      Вот и я думаю, тем более первым же пунктом

      и наши многоуважаемые американские партнёры

      Зачем так страдать, взяли бы китайцев-братушек, да с ними код писали.


      1. inetstar Автор
        11.06.2026 13:29

        Ну как будет у них что-то уровня Опус, тогда и с китайцами поработаем.


        1. Diamon33
          11.06.2026 13:29

          Зачем тогда ерничать на политическу тему? Мыши и кактус?


  1. Snoopyman
    11.06.2026 13:29

    Попробовал я Антигравити запустить пару месяцев назад, так у меня годовая подписка Pro слетела.


  1. Diamon33
    11.06.2026 13:29

    Ну что же, я пошёл осваивать Fable 5

    On June 23, we’ll remove Fable 5 from those plans. Using it after that will require usage credits. If capacity allows, we’ll extend the included window.

    Успеете освоить? Или там уже расчехлены тысячи долларов на API costs?


    1. inetstar Автор
      11.06.2026 13:29

      If capacity allows, we’ll extend the included window.

      Честно говоря, боюсь даже осваивать. Не нравится идея, что данные хранить будут. Поэтому с осторожностью. Но Opus 4.8 очень хорош, по сранению со своими квантизированными предшественниками. За 1 запрос нашёл проблему, которую 4.7 не мог решить 3 дня.


      1. Dhwtj
        11.06.2026 13:29

        Opus 4.8 очень хорош, по сранению со своими квантизированными предшественниками

        Щас его самого обрежут, чтобы фублю брали


      1. Diamon33
        11.06.2026 13:29

        Не нравится идея, что данные хранить будут.

        Никто Вашу идею стартапа не украдет. А вот если вы корп данные подаете в личный акк - тут мои соболезнования изначально.


      1. Ai_Paradox
        11.06.2026 13:29

        Fable хорош. Я использую это время что бы привести в порядок свои проекты и зафиксировать.

        Дал ему задание пройтись по коду на предмет багов. У меня подписка макс, так он думал 50 мин, сожрал лимит (одним запросом) и я 4 часа ждал откат. Потом я ему сказал что ответа не дождался, на что он мне ответил что да это из за того что он паралельно запустил ещё 9 агентов.

        Но прогресс ревью не потерялся, он нашел 114 багов одним запросом. Опус так не сможет.