Игорь Градов
Игорь Градов
6 мин
ai

ИИ для тестирования сайтов блокируется хостингом: как обойти лимит SSH за 30 минут

Компания‑хостер заблокировала доступ трижды за трое суток, потому что ИИ-агент открывал десятки коротких SSH-соединений вместо одного длинного, и команда проекта нашла способ обойти это без смены провайдера, сохранив автоматическое тестирование и правку сайта на MODX.

ИИ для тестирования сайтов блокируется хостингом: как обойти лимит SSH за 30 минут
Почему это важно

Российские хостинги часто ограничивают число SSH-подключений в единицу времени, и любой, кто пытается подключить ИИ для тестирования сайтов к боевому серверу, рискует получить блокировку в разгар работы. Решение из статьи снимает эту проблему штатными средствами Linux.

Материал основан на практическом кейсе команды, которая строит ИИ-агента поверх CMS MODX. В первой части проекта агент научился читать структуру сайта: ресурсы, чанки, TV-параметры и зависимости между ними. Во второй части ему дали право не только анализировать, но и записывать изменения, подключаться по SSH, читать логи и запускать проверки. Именно здесь начались проблемы с хостингом, и их решение полезно каждому, кто автоматизирует работу с сайтом через ИИ.

Почему хостинг блокирует ИИ-агента?

Человек подключается к серверу один раз и работает внутри сессии: посмотрел файл, подумал, выполнил команду. ИИ-агент действует иначе. Он дробит задачу на множество коротких операций: прочитал один файл, открыл второй, поискал строку по проекту, проверил лог, уточнил версию PHP, запустил проверку синтаксиса.

Когда на одном хостинг-аккаунте лежат несколько сайтов и агент работает с каждым, количество подключений растёт лавинообразно. На одном из российских хостингов это привело к трём блокировкам за трое суток. Каждая длилась около шести часов. Добавить IP в белый список не получилось: такой опции у провайдера просто не было.

Что понадобится

  • Доступ к серверу по SSH с правами на чтение и запись файлов сайта.
  • ИИ-агент с поддержкой вызова внешних инструментов (в описанном проекте используется ChatGPT через API, но подход работает с любым агентом, умеющим выполнять shell-команды).
  • Bash и стандартные утилиты Linux: OpenSSH, flock (утилита блокировки файлов, не даёт двум процессам делать одно и то же одновременно), awk.
  • CMS MODX (или другая CMS, к которой вы строите интерфейс агента).
  • 30 минут на настройку обёртки SSH и проверку.

Пошаговая инструкция

  1. Определите фактический адрес сервера перед каждым подключением. Три разных домена в SSH-конфигурации могут вести к одному серверу и одному пользователю. Хостеру нет дела до названий ваших проектов, он считает подключения по реальному адресу. Обёртка SSH запрашивает у OpenSSH итоговые параметры:
effective_config="$("$REAL_SSH" -G "$@" 2>/dev/null || true)"
resolved_host="$(printf '%s\n' "$effective_config" | awk '$1 == "hostname" {print $2; exit}')"
resolved_user="$(printf '%s\n' "$effective_config" | awk '$1 == "user" {print $2; exit}')"
resolved_port="$(printf '%s\n' "$effective_config" | awk '$1 == "port" {print $2; exit}')"
  1. Сформируйте ключ пула соединений по фактическому адресу, а не по имени проекта. Это гарантирует, что лимит считается так же, как его считает хостер:
pool_key="$(printf '%s@%s:%s' \
  "$resolved_user" \
  "$resolved_host" \
  "$resolved_port" | tr -c 'A-Za-z0-9._@:-' '_')"
  1. Включите ControlMaster, чтобы десять команд агента не превращались в десять авторизаций. Одно мастер-соединение обслуживает все последующие команды:
SSH_OPTS=(
  -o ControlMaster=auto
  -o ControlPath="$CONTROL_PATH_TEMPLATE"
  -o ControlPersist=1h
  -o ServerAliveInterval=60
  -o ServerAliveCountMax=3
)

ControlMaster (режим SSH, при котором первое подключение становится «главным», а все следующие идут через него без повторной авторизации) решает основную проблему: вместо десятков авторизаций хостинг видит одну.

  1. Защитите момент создания мастер-соединения блокировкой. Без этого два параллельных процесса агента могут одновременно увидеть, что мастера ещё нет, и оба начнут его создавать. Используйте flock:
if ! master_alive; then
  exec {bootstrap_fd}>"$pool_root/master.lock"
  /usr/bin/flock "$bootstrap_fd"
  if ! master_alive; then
    acquire_slot
    "$REAL_SSH" "${SSH_OPTS[@]}" "$@" &
    ssh_pid=$!
    # ожидание готовности мастера (до 5 секунд)
  fi
fi
  1. Ограничьте число параллельных команд на один аккаунт. В описанном проекте по умолчанию допускается восемь одновременных команд, но для проблемного хостинга лимит снижен до двух. Подберите значение под ваш хостинг опытным путём.

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

  3. Вынесите запись файлов в отдельный инструмент. SSH оставьте для диагностики: чтение логов, проверка синтаксиса командой php -l, запуск сборки. Боевые файлы меняйте через специальный инструмент записи (в проекте он называется site-file), а не через ssh, scp, rsync или случайный sed. Это даёт контроль: агент не может молча переписать файл через командную строку.

Как это выглядит на практике

Задача агенту: «Посмотри, почему форма перестала отправляться, исправь и проверь». Агент через одно мастер-соединение читает лог ошибок, находит проблему в обработчике формы, вносит правку через инструмент site-file (не через SSH), запускает проверку синтаксиса через SSH и проверяет результат в браузере. Вместо инструкции из десяти пунктов, которые владелец сайта выполнял бы вручную, получается исправленный сайт. Хостинг при этом видит одно SSH-подключение вместо двенадцати.

Частые ошибки
  • Привязка лимита к имени сайта вместо реального адреса сервера. Три домена на одном аккаунте хостинга дадут три отдельных «пула», и каждый будет открывать своё соединение. Хостер посчитает все три.
  • Отсутствие блокировки при создании мастер-соединения. Без flock параллельные задачи агента создают несколько мастеров одновременно, что обнуляет всю экономию.
  • Разрешение агенту писать файлы через SSH напрямую. Если агент может выполнить sed или cat с перенаправлением на боевой файл, никакой контроль записи не поможет. Запись только через выделенный инструмент.
  • Попытка договориться с хостингом вместо решения на своей стороне. Белый список IP или повышение лимита соединений доступны далеко не у всех провайдеров. Решение должно работать без участия поддержки.

Что делать с этим прямо сейчас, по ролям

Веб-разработчику или владельцу сайта на MODX. Если вы уже используете или планируете использовать ИИ для тестирования сайтов и автоматической правки, начните с обёртки SSH из этой инструкции. Она не требует ничего кроме стандартных утилит Linux и решает самую частую проблему: блокировку со стороны хостинга.

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

Предпринимателю с сайтом на российском хостинге. Описанный подход работает на любом хостинге, поддерживающем SSH: Beget, TimeWeb, REG.RU и других. Если ваш разработчик уже экспериментирует с ИИ-агентами, убедитесь, что он знает про ControlMaster и лимитирование параллельных команд, иначе первая же автоматическая проверка сайта может закончиться блокировкой.

Мнение редакции dzen.guru

Сам по себе ИИ для тестирования сайтов ничего нового не изобретает: ControlMaster, flock и ограничение параллельности существовали задолго до ChatGPT. Но именно ИИ-агент натыкается на лимиты хостинга за часы, а не за годы. Это честный пример того, как автоматизация сначала ломает привычный рабочий процесс, и только потом, после инженерной доработки, ускоряет его. Не стоит ожидать, что агент заработает гладко с первого запуска: закладывайте время на отладку обёртки под конкретного провайдера. По моим наблюдениям, каждый российский хостинг имеет свои пороги срабатывания защиты, и универсального числа параллельных команд не существует. Начните с двух и повышайте.

Хотите использовать ИИ-агентов для контента, а не только для кода?

В dzen.guru мы разбираем, как нейросети помогают авторам Дзена: от генерации идей до автоматической проверки текстов.

Узнать больше

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

Поделиться:TelegramVK
Игорь Градов
Игорь Градов

Основатель dzen.guru. Эксперт по монетизации и продвижению на Дзен. Автор курса «Старт на Дзен 2026».

Комментарии

Читайте также

Что такое ИИ-агент без фреймворка: методология ICM заменяет код папками и markdown
ai

Что такое ИИ-агент без фреймворка: методология ICM заменяет код папками и markdown

Microsoft, OpenAI, CrewAI и другие упомянутые в источнике фреймворки и компании анализирую строго по тексту оригинала. Источник — публикация на Хабре, автор не…

7 мин
AI Overviews Google заработали в России: 50% источников берутся не из топ-10 выдачи
ai

AI Overviews Google заработали в России: 50% источников берутся не из топ-10 выдачи

Google второго июля 2026 года открыла AI Overviews (обзоры от ИИ, генерируемые нейросетью прямо над поисковой выдачей) для русскоязычных запросов с регионом…

7 мин
От одного AI-агента к холдингу: четыре эксперимента масштабирования
ai

От одного AI-агента к холдингу: четыре эксперимента масштабирования

Текст оригинала описывает личный опыт автора по масштабированию ИИ-агентов, а не сделку по привлечению средств. В источнике нет ни суммы раунда, ни инвесторов,…

5 мин