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

Сам доданий скрипт перевірений та продебажений — придатний для продакшн використання. Постачається як є. Використовуєте на свій страх і ризик!

Автоматична зміна 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

Завантажити скрипт