TOPZNANIE

Цифровая практика без сложностей

Выберите город
MET Norway · CC BY 4.0
← На главную

· Общий обзор

Изолированный «думающий контур»: подключаем VSCode в виртуальной машине через Strata на хосте (с соксификацией)

Локальные языковые модели (LLM) и автономные агенты радикально ускорили работу с кодом. Но у полной автономии есть обратная сторона: когда вы даете нейросети права на выполнение команд в терминале, установку пакетов и запуск скриптов, вы фактически пускаете стажера с правами администратора в свою основную операционную систему.

Эта проблема становится критической в трех сценариях:

  1. Автономная разработка и отладка: одна галлюцинация модели в скрипте очистки или неудачная сборка зависимостей может повредить файлы хостовой ОС.

  2. Аудит чужих исходников с GitHub и малоизвестных пакетов: когда нужно быстро разобрать чужой репозиторий с помощью AI-агента, скомпилировать проект или запустить тесты, нет никакой гарантии, что в скриптах сборки (postinstall, Makefile, setup.py) не спрятана закладка, стилер или майнер.

  3. Исследование подозрительных сайтов и веб-инструментов: когда нужно проанализировать сомнительный ресурс или прогнать парсер, нельзя светить реальным IP-адресом домашней сети или разрешать браузеру выполнять скрипты на основной машине.

Очевидное решение — перенести всю работу в виртуальную машину (ВМ). Но внутри ВМ нет прямого доступа к видеокарте ноутбука, а проброс GPU — задача нетривиальная и не всегда возможная.

Ниже на примере Windows (аналогично всё можно повторить на других OS) описана архитектура «локально думающего контура», которая решает все задачи сразу. «Мозги» (инференс модели) остаются на мощном железе основного компьютера/ноутбука, «руки» (VS Code, терминал, браузер, компиляторы и отладка) изолированы внутри виртуальной Windows (или, например, Kali Linux), а весь внешний интернет-трафик песочницы принудительно завернут в SOCKS-прокси.

Архитектура решения.

Мы разделяем рабочее пространство на три изолированных контура:

  1. Хост-машина (Инференс-сервер). На компьютере/ноутбуке работает локальный движок (в нашем случае десктопное приложение Strata), который поднимает OpenAI-совместимый API на локальном интерфейсе. Чужой код, закладки и сомнительные скрипты на хост не попадают и не запускаются.

  2. Виртуальная машина в режиме NAT (Песочница). Внутри гостевой Windows установлен VS Code с агентским плагином Cline. Вся распаковка чужих архивов, установка зависимостей, запуск неизвестных скриптов и отладка происходят исключительно здесь. После завершения анализа или при срабатывании вредоносного кода ВМ откатывается из снапшота за пять секунд.

  3. Сетевой шлюз с принудительной проксификацией. Весь трафик гипервизора на хосте перехватывается через Proxifier и отправляется во внешний SOCKS-туннель. Если в изучаемом коде окажется телеметрия или обратный стук на сервер злоумышленника, а также при открытии опасных сайтов, наружу уйдет только IP прокси-сервера. При этом локальные запросы от агента к API модели вырезаются из туннеля и направляются напрямую на хост без задержек.

Шаг 1. Настройка хоста и проброс порта.

По умолчанию локальные серверы моделей (включая Strata, Ollama или LM Studio) слушают только внутренний адрес 127.0.0.1 в целях безопасности. Из-за этого виртуальная машина не может до них достучаться, даже обращаясь к шлюзу NAT по адресу 10.0.2.2.

Сначала проверяем, на каком порту поднялся сервер и какое системное имя имеет активная модель. Для десктопной версии Strata стандартным портом является 47831. Если сделать запрос:

curl.exe 127.0.0.1:47831/v1/models

в ответе придет JSON-объект со списком доступных моделей, откуда нам понадобится точное значение поля “id” (например, swift-iq2_xs).

Чтобы не открывать API модели в общую локальную Wi-Fi сеть, но сделать его доступным для виртуальной машины, используем встроенный в Windows механизм перенаправления портов (portproxy). В командной строке хоста, запущенной от имени администратора, создаем сетевой мост и открываем порт в брандмауэре:

netsh interface portproxy add v4tov4 listenaddress=0.0.0.0 listenport=47831 connectaddress=127.0.0.1 connectport=47831

netsh advfirewall firewall add rule name=“Strata VM Bridge” dir=in action=allow protocol=TCP localport=47831

Шаг 2. Обход конфликта с принудительным SOCKS-прокси

Если процесс вашего гипервизора на хосте принудительно завернут в SOCKS-прокси (через Proxifier), на этом этапе возникает неочевидная проблема. Когда виртуальная машина стучится на шлюз 10.0.2.2, гипервизор транслирует этот сетевой пакет в обращение на внутренний интерфейс хоста, а проброс netsh обрабатывается системной службой svchost.exe.

Proxifier перехватывает этот запрос и пытается отправить обращение к 10.0.2.2:47831 наружу через удаленный SOCKS-сервер. Соединение ожидаемо виснет или обрывается.

Чтобы разорвать эту петлю, нужно создать в Proxifier на хосте правило-исключение и поднять его на самый верх списка правил (выше общего правила для гипервизора):

  • Name: Strata Local Bridge

  • Applications: Any (критически важно, так как пакеты проходят через системный svchost.exe)

  • Target Hosts: 10.0.2.2; 127.0.0.1; localhost; 192.168..; 10...*

  • Target Ports: 47831

  • Action: Direct

Поскольку жестко задан только порт 47831, расширенный список локальных подсетей в поле Target Hosts абсолютно безопасен: правило сработает исключительно для трафика к локальной нейросети, а любой другой выход виртуалки в интернет продолжит идти строго через SOCKS-прокси.

Шаг 3. Настройка среды внутри виртуальной Windows

Переходим внутрь виртуальной машины (настроенной в стандартном режиме сети NAT, где IP-адресом хоста выступает 10.0.2.2). Обязательно отключаем общие папки (Shared Folders) и двусторонний буфер обмена между хостом и ВМ, чтобы исключить утечку файлов.

Проверяем прохождение сигнала через командную строку гостевой ОС:

curl.exe 10.0.2.2:47831/v1/models

Если консоль вернула JSON с именем модели — туннель работает. Теперь открываем VS Code внутри виртуалки, устанавливаем расширение Cline и задаем параметры подключения:

  • API Provider: OpenAI Compatible

  • Base URL: указываем протокол и адрес шлюза с путем к API — 10.0.2.2:47831/v1

  • API Key: любое непустое слово (например, local)

  • Model ID: точное системное имя модели из ответа сервера (например, swift-iq2_xs)

Также в нижней части окна настроек Cline рекомендуется снять галочку “Use different models for Plan and Act modes”, чтобы не дублировать конфигурацию для режимов планирования и выполнения кода.

Итог и фиксация конфигурации

После проверки работы агента в чате и проверки внешнего IP-адреса виртуальной машины остаются два финальных действия:

  1. Экспортировать профиль Proxifier (File -> Export Profile), чтобы правило маршрутизации локального моста не потерялось при обновлении.

  2. Снять чистый снапшот (Snapshot) виртуальной машины.

Теперь у вас есть эталонная изолированная лаборатория. В ней можно смело включать режим автоподтверждения команд (Auto-approve) в Cline, скачивать неизвестные репозитории для реверс-инжиниринга и анализа кода, запускать сомнительные скрипты сборки или открывать небезопасные сайты. Модель на скорости видеокарты ноутбука разберет чужой код и проведет отладку, не имея ни малейшего шанса заразить вашу основную систему или раскрыть реальный IP-адрес.

Теги:

  • strata
  • ai
  • vscode

Хабы:

  • Информационная безопасность
  • Искусственный интеллект