Скрипт мониторинга и автоматический замены ип
Материал составлен с активным участием нейростей и текст может содержать опечатки!
Сам приложенный скрипт проверен и продебажен - применим для продакшен применения. Поставляется как есть. Используете на свой страх и риск!
Автоматическая смена IP
PrivateFlare — это не просто инфраструктура для арбитража, но и умный инструмент отказоустойчивости.
Сегодня рассказываем о новой фиче: автоматическая смена IP-адреса при недоступности ноды.
Зачем это нужно?
Сценарий знаком каждому, кто работает с трафиком:
🔹 сайт или лендинг внезапно перестаёт отвечать
🔹 причина — нода заблокирована или недоступна
🔹 трафик сливается впустую, пока вы вручную не поменяете A-запись в Cloudflare
Теперь этого больше не нужно делать вручную.
Как работает автоматизация
Мы подготовили PHP-скрипт, который можно запускать с кроном или как демон. Он делает следующее:
-
🔎 Проверяет доступность ноды по заданному URL (GET или POST с JSON-пейлоадом).
-
⏱️ Если за 5 секунд нет корректного ответа (200, 301, 302) — нода считается мёртвой.
-
📡 Скрипт запрашивает список A-записей в Cloudflare по API.
-
🔁 Находит текущий IP и заменяет его на следующий по кругу из заданного пула:
Пул: [1.1.1.1, 2.2.2.2, 3.3.3.3] Был IP: 2.2.2.2 → станет: 3.3.3.3 Был последний → станет первый -
✍️ Обновляет DNS-запись через Cloudflare API.
-
📲 Отправляет уведомление в Telegram, чтобы вы были в курсе.
Что это даёт?
-
📉 Минус простой трафика — IP меняется через секунды после сбоя.
-
⚙️ Масштабирование без боли — добавляйте сколько угодно нод.
-
🧘 Полная автономность — без ручных правок DNS.б ни ручных правок, ни паники.
-
📬 Telegram-уведомления — знаете о всех действиях в реальном времени.
Как настроить
-
✅ Установите PHP ≥ 7.4.
-
✅ Укажите в конфиге:
-
домен
-
имя хоста (например,
node1.domain.com) -
Cloudflare API Token и Zone ID
-
пул IP-адресов
-
токен Telegram-бота
-
chat ID (см. ниже)
-
-
✅ Добавьте вызов скрипта в
cronили запустите какsystemd-службу.
Как получить Telegram chat ID?
Есть два простых способа:
🔹 Способ 1 — через @userinfobot
-
Открой Telegram.
-
Найди бота @userinfobot.
-
Запусти его — он сразу покажет твой
ID. Это и есть нужныйchat_id.
🔹 Способ 2 — через своего бота
Если ты хочешь получать уведомления от своего бота:
-
Напиши любое сообщение своему боту.
-
Перейди по ссылке, подставив свой токен:
https://api.telegram.org/bot<YOUR_BOT_TOKEN>/getUpdates -
Найди в 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