VPSSpark Блог
← Вернуться к дневнику

2026 OpenClaw на Linux VPS в облаке: Ollama во внутренней сети или локально — upstream Gateway, разделение TLS, SSH-туннель и матрица NO_PROXY; воспроизводимые шаги и FAQ по 502 и таймаутам

Заметки о сервере · 2026.05.06 · ~8 мин

Облачный Linux-сервер и цепочка к локальному выводу модели Ollama

Размещать OpenClaw Gateway на недорогом Linux VPS, а Ollama оставить дома или во внутреннем сегменте — типичный компромисс между стоимостью и приватностью: публичный вход и webhook каналов остаются в облаке, вычисления и файлы моделей — в зоне, которую вы контролируете. Сложность почти всегда в том, кто к кому подключается: на каком уровне завершается TLS, в upstream у reverse proxy указан 127.0.0.1 или адрес 10.x, унаследовал ли процесс systemd переменные, из-за которых запросы к локальному адресу уходят в корпоративный HTTP-прокси, и почему после обрыва SSH остаётся только 502. Ниже — воспроизводимая матрица и команды, а также три уровня самопроверки для 502 и таймаутов чтения, чтобы не списывать всё на «слишком большую модель». Дополнительно о выборе платформы развёртывания: 2026: OpenClaw — Fly.io против обычного Linux VPS: постоянные тома, публичный вход, webhook каналов и health checks (матрица + FAQ).

L0
Прямое подключение к Ollama в процессе
L1
Reverse proxy, туннель, firewall
L2
Прокси и ошибочный DNS

Топология и цель: три варианта upstream

При colocation Gateway и Ollama на одной машине достаточно http://127.0.0.1:11434. Для сегмента RFC1918 задайте фиксированный внутренний адрес и маршрут или выделенный канал с VPS. Если Ollama дома, а VPS в облаке, чаще всего используют обратную SSH-пересылку (-R): домашний хост инициирует сессию и пробрасывает порт Ollama на loopback VPS, после чего Gateway обращается только к 127.0.0.1, не открывая пустой порт в интернет. Во всех схемах полезно явно разделить три имени: «публичный TLS», «процесс Gateway» и «HTTP Ollama» — по журналам проще сопоставить временную шкалу инцидента.

Отдельно зафиксируйте в runbook, какой компонент отвечает за обновление DNS для внутренних имён и кто перезапускает туннель при смене IP домашнего провайдера: иначе каждый инцидент превращается в спор между «сетью» и «приложением». Для смешанных сред с корпоративным PAC-файлом полезно иметь минимальный набор curl-проверок без GUI-браузера, чтобы ночные job не зависели от политики рабочей станции оператора.

HTTP(S)_PROXY и матрица NO_PROXY

Если на машине задан глобальный исходящий прокси, без корректного NO_PROXY Gateway или sidecar могут отправлять и запросы к 127.0.0.1 и к 10.0.0.0/8 через прокси: это даёт редкие таймауты или «отказ в соединении», но в логах виден CONNECT. Включите loopback и внутренние префиксы в NO_PROXY (учитывайте регистр и CIDR), лучше через systemd drop-in, чем отключать прокси целиком для сервиса.

Сценарий Фрагмент NO_PROXY Типичный симптом
Gateway → локальный Ollama 127.0.0.1,localhost,::1 Медленный первый токен, ошибки CONNECT
Gateway → Ollama во внутренней сети 10.0.0.0/8,172.16.0.0/12,192.168.0.0/16,.internal Сбои только в части смен (переключение PAC)
Upstream через SSH на loopback как выше; зафиксируйте OLLAMA_HOST только на 127.0.0.1 Сразу 502 после обрыва туннеля
Порядок проверки
Сначала на VPS выполните curl -sS http://127.0.0.1:11434/api/tags (или ваш проброшенный порт), затем путь через HTTPS за reverse proxy, и только потом смотрите бизнес-логи Gateway — иначе ошибку «не тот upstream» принимают за нехватку VRAM.

Воспроизведение: SSH подключает домашний Ollama к loopback VPS

На домашней стороне можно выбрать локальную или удалённую пересылку; важно, чтобы на VPS стабильно слушался порт 127.0.0.1, указывающий на домашний 11434. Пример: с домашней машины пробросить порт 18080 на VPS (подставьте пользователя и хост):

Дом → VPS (схема удалённой пересылки -R)
# На домашней машине: 127.0.0.1:18080 на VPS → локальный Ollama
ssh -N -T -R 127.0.0.1:18080:127.0.0.1:11434 user@vps-public-ip

# На VPS (ожидается JSON со списком моделей)
curl -sS http://127.0.0.1:18080/api/tags

В проде замените одноразовый ssh на autossh или unit systemd с автопереподключением, ограничьте bind интерфейсом loopback и firewall, чтобы случайно не опубликовать пересылку на 0.0.0.0. Идею поуровневого разбора при нескольких каналах можно сопоставить с 2026: OpenClaw и WhatsApp на Linux VPS в облаке: сопряжение по QR, сохранение сессии и несколько каналов — воспроизводимые шаги и FAQ по обрывам и 429.

Разделение TLS: reverse proxy и Gateway

Обычно Caddy или Nginx завершает TLS на 443 и проксирует на HTTP-порт Gateway; Gateway затем ходит в Ollama по обычному HTTP. Проверьте совпадение имени в сертификате, заголовок Host и прохождение апгрейда WebSocket. Если TLS тянуть до самого Ollama, понадобятся отдельная цепочка доверия и порты — это другая модель, чем «прозрачная внутренняя сеть». При 502 в error log сначала отличайте upstream connect failed от read timeout: первое чаще про firewall и listen, второе — про таймауты прокси и долгий стриминг.

Таймауты и длина ответа
Потоковый вывод держит соединение долго; слишком короткий proxy_read_timeout обрывает канал до первого чанка. Отличить от «модель не успевает» проще прямым curl к upstream с наблюдением за стабильностью токенов.

502 и таймаут чтения: многоуровневый FAQ

Наблюдение Сначала проверить Что сделать
Мгновенный 502 после падения SSH Процесс туннеля, ss -lntp Автопереподключение, жёсткий bind на loopback
Редкие таймауты, в логах CONNECT env | grep -i proxy, drop-in systemd Дополнить NO_PROXY, не пускать loopback в прокси
HTTPS наружу ок, прямой Ollama нет URL upstream случайно с https Внутри сети оставить http или явный mTLS

Если 502 появляется только на длинных запросах, а короткий /api/tags всегда успешен, сравните лимиты тела ответа и буферизации у reverse proxy с тем, как Gateway стримит чанки: иногда помогает отключение буферизации для конкретного location или увеличение окна чтения только для маршрута к модели, не размывая глобальные таймауты для health check.

Сведите по одному request id access log reverse proxy, логи Gateway и Ollama: после выравнивания меток времени большинство «непонятных» 502 сводится к исчезнувшему listen или к прокси, перехватывающему локальные адреса. Зафиксированные образы и канал выката только с диффом конфигурации сильно сужают поверхность регрессий.

Практика
Разнесите Ollama и Gateway по отдельным systemd unit с минимальными правами и отдельными файлами окружения; для туннеля и обновления сертификатов сделайте отдельные health-check, не смешивая их с релизом приложения.

Локальный Ollama и Mac mini

Если модели и эмбеддинги должны оставаться на вашем железе, а не на общем VPS, тихий постоянный узел на базе Mac mini часто удобнее громоздкого ПК: унифицированная память Apple Silicon даёт предсказуемую работу с моделями порядка 7B–13B в рамках разумного энергобюджета, а нативный Unix-стек macOS с Homebrew упрощает долгую жизнь Ollama, Docker и скриптов SSH-туннеля без наслоения WSL и драйверных сюрпризов.

Mac mini M4 в простое потребляет очень мало ватт, удобен для круглосуточной роли «домашнего upstream»; Gatekeeper, SIP и предсказуемый цикл обновлений снижают операционный шум по сравнению со сборкой Linux-десктопа под ту же задачу. Тяжёлую подпись и CI при этом можно оставить в облаке — граница между «инференс дома» и «оркестрация на VPS» становится яснее.

Если вы как раз сводите локальный AI и облачный Gateway в одну схему, облачный Mac mini M4 от VPSSpark — удобная точка входапосмотрите тарифы и соберите контур без лишних компромиссов по железу.

Акция

Шлюз в облаке, модель у вас под рукой

Linux VPS для входа и webhook · локальный или облачный Mac для инференса · низкое энергопотребление

На главную
Акция Смотреть тарифы