Skip to main content

Скрипт мониторинга и автоматический замены ип

Материал составлен с активным участием нейростей и текст может содержать опечатки!

Сам приложенный скрипт проверен и продебажен - применим для продакшен применения. Поставляется как есть. Используете на свой страх и риск!

Автоматическая смена IP

PrivateFlare — это не просто инфраструктура для арбитража, но и умный инструмент отказоустойчивости.
Сегодня рассказываем о новой фиче: автоматическая смена IP-адреса при недоступности ноды.


Зачем это нужно?

Сценарий знаком каждому, кто работает с трафиком:
🔹 сайт или лендинг внезапно перестаёт отвечать
🔹 причина — нода заблокирована или недоступна
🔹 трафик сливается впустую, пока вы вручную не поменяете A-запись в Cloudflare

Теперь этого больше не нужно делать вручную.


Как работает автоматизация

Мы подготовили PHP-скрипт, который можно запускать с кроном или как демон. Он делает следующее:

  1. 🔎 Проверяет доступность ноды по заданному URL (GET или POST с JSON-пейлоадом).

  2. ⏱️ Если за 5 секунд нет корректного ответа (200, 301, 302) — нода считается мёртвой.

  3. 📡 Скрипт запрашивает список A-записей в Cloudflare по API.

  4. 🔁 Находит текущий IP и заменяет его на следующий по кругу из заданного пула:

    Пул: [1.1.1.1, 2.2.2.2, 3.3.3.3]  
    Был IP: 2.2.2.2 → станет: 3.3.3.3  
    Был последний → станет первый
    
  5. ✍️ Обновляет DNS-запись через Cloudflare API.

  6. 📲 Отправляет уведомление в Telegram, чтобы вы были в курсе.


Что это даёт?

  • 📉 Минус простой трафика — IP меняется через секунды после сбоя.

  • ⚙️ Масштабирование без боли — добавляйте сколько угодно нод.

  • 🧘 Полная автономность — без ручных правок DNS.б ни ручных правок, ни паники.

  • 📬 Telegram-уведомления — знаете о всех действиях в реальном времени.


Как настроить

  1. ✅ Установите PHP ≥ 7.4.

  2. ✅ Укажите в конфиге:

    • домен

    • имя хоста (например, node1.domain.com)

    • Cloudflare API Token и Zone ID

    • пул IP-адресов

    • токен Telegram-бота

    • chat ID (см. ниже)

  3. ✅ Добавьте вызов скрипта в cron или запустите как systemd-службу.


Как получить Telegram chat ID?

Есть два простых способа:

🔹 Способ 1 — через @userinfobot

  1. Открой Telegram.

  2. Найди бота @userinfobot.

  3. Запусти его — он сразу покажет твой ID. Это и есть нужный chat_id.

🔹 Способ 2 — через своего бота

Если ты хочешь получать уведомления от своего бота:

  1. Напиши любое сообщение своему боту.

  2. Перейди по ссылке, подставив свой токен:

    https://api.telegram.org/bot<YOUR_BOT_TOKEN>/getUpdates
    
  3. Найди в JSON-ответе строку:

    "chat": {
      "id": 123456789,
      ...
    }
    

    123456789 — твой chat_id.

Вот выделенная часть про запуск скрипта, отдельно и без лишней разметки — удобно копировать:


Как запускать скрипт?

Выбирайте удобный способ:

1. Через cron

Запускайте скрипт регулярно, например, каждые 2 минуты:

*/2 * * * * php /path/to/checker.php

Замените /path/to/checker.php на реальный путь к вашему файлу.

2. Через веб (по HTTP)

Разместите скрипт на сервере с доступом по URL, например:

https://yourhost.com/tools/checker.php

Можно вызывать:

  • из систем мониторинга (UptimeRobot, Pingdom, HetrixTools)

  • из CI/CD пайплайна (GitLab CI, Jenkins)

  • из автоматик (Home Assistant, Zabbix)

  • вручную через браузер или curl:

curl https://yourhost.com/tools/checker.php

Скачать скрипт