Ce contenu a été rédigé avec la participation active de réseaux neuronaux et le texte peut contenir des erreurs !
Le script ci-joint a été vérifié et débogué — il est utilisable en production. Il est fourni tel quel. Vous l’utilisez à vos propres risques !
Remplacement automatique d’IP#
PrivateFlare n’est pas seulement une infrastructure pour l’arbitrage, mais aussi un outil intelligent de tolérance aux pannes. Aujourd’hui, nous vous présentons une nouvelle fonctionnalité : le remplacement automatique de l’adresse IP en cas d’indisponibilité du noeud.
Pourquoi est-ce nécessaire ?#
Le scénario est familier à tous ceux qui travaillent avec le trafic :
- Le site ou la page d’atterrissage cesse soudainement de répondre
- La cause : le noeud est bloqué ou indisponible
- Le trafic est gaspillé tant que vous ne modifiez pas manuellement l’enregistrement A dans Cloudflare
Désormais, il n’est plus nécessaire de le faire manuellement.
Comment fonctionne l’automatisation#
Nous avons préparé un script PHP qui peut être exécuté via cron ou en tant que démon. Il effectue les opérations suivantes :
- Vérifie la disponibilité du noeud via une URL définie (GET ou POST avec payload JSON).
- Si aucune réponse correcte (200, 301, 302) n’est reçue dans les 5 secondes, le noeud est considéré comme mort.
- Le script interroge la liste des enregistrements A dans Cloudflare via l’API.
- Il trouve l’IP actuelle et la remplace par la suivante dans le pool de manière cyclique :
Pool : [1.1.1.1, 2.2.2.2, 3.3.3.3]
IP actuelle : 2.2.2.2 → nouvelle : 3.3.3.3
Si c'est la dernière → retour à la première- Met à jour l’enregistrement DNS via l’API Cloudflare.
- Envoie une notification dans Telegram pour que vous soyez informé.
Que cela apporte-t-il ?#
- Moins de temps d’arrêt du trafic — l’IP change quelques secondes après la panne.
- Mise à l’échelle sans difficulté — ajoutez autant de noeuds que vous le souhaitez.
- Autonomie totale — sans modifications DNS manuelles, sans panique.
- Notifications Telegram — vous êtes informé de toutes les actions en temps réel.
Comment configurer#
- Installez PHP >= 7.4.
- Indiquez dans la configuration :
- le domaine
- le nom d’hôte (par exemple,
node1.domain.com) - le Token API Cloudflare et le Zone ID
- le pool d’adresses IP
- le token du bot Telegram
- le chat ID (voir ci-dessous)
- Ajoutez l’appel du script dans le cron ou lancez-le en tant que service systemd.
Comment obtenir le chat ID Telegram ?#
Il existe deux méthodes simples :
Méthode 1 — via @userinfobot#
- Ouvrez Telegram.
- Trouvez le bot @userinfobot.
- Lancez-le — il affichera immédiatement votre ID. C’est le chat_id recherché.
Méthode 2 — via votre propre bot#
Si vous souhaitez recevoir des notifications de votre propre bot :
- Envoyez un message quelconque à votre bot.
- Accédez au lien suivant en substituant votre token :
https://api.telegram.org/bot<YOUR_BOT_TOKEN>/getUpdatesTrouvez dans la réponse JSON la ligne :
"chat": {
"id": 123456789,
...
}123456789 est votre chat_id.
Comment exécuter le script ?#
Choisissez la méthode qui vous convient :
1. Via cron#
Exécutez le script régulièrement, par exemple toutes les 2 minutes :
*/2 * * * * php /path/to/checker.phpRemplacez /path/to/checker.php par le chemin réel vers votre fichier.
2. Via le web (par HTTP)#
Placez le script sur un serveur accessible par URL, par exemple :
https://yourhost.com/tools/checker.phpVous pouvez l’appeler :
- depuis des systèmes de monitoring (UptimeRobot, Pingdom, HetrixTools)
- depuis un pipeline CI/CD (GitLab CI, Jenkins)
- depuis des systèmes d’automatisation (Home Assistant, Zabbix)
- manuellement via un navigateur ou curl :
curl https://yourhost.com/tools/checker.php