Матеріал складено з активною участю нейромереж і текст може містити помилки!
Сам доданий скрипт перевірений та продебажений — придатний для продакшн використання. Постачається як є. Використовуєте на свій страх і ризик!
Автоматична зміна 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Завантажити скрипт