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

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

Автоматическая смена 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

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