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>/getUpdates

Trouvez 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.php

Remplacez /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.php

Vous 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

Télécharger le script