No-IP DUC : configurer le client de mise à jour DNS

Le DUC (Dynamic Update Client) de No-IP est un programme qui surveille votre adresse IP publique et prévient les serveurs DNS de No-IP dès qu'elle change, pour que votre nom d'hôte pointe toujours vers la bonne machine. Sa configuration tient en trois valeurs : un identifiant de mise à jour, la liste des hôtes à gérer et un intervalle de vérification.

Ce que le DUC met à jour, et ce qu’il ne fait pas

Votre FAI vous attribue une adresse IP publique qui change au gré des reconnexions. Le DUC tourne en tâche de fond, compare l'adresse publique qu'il observe avec celle enregistrée chez No-IP, et envoie une requête HTTPS quand les deux diffèrent. L'appel ressemble à GET https://dynupdate.no-ip.com/nic/update?hostname=monhote.ddns.net&myip=92.184.12.5, avec une authentification HTTP Basic et un User-Agent obligatoire. Le serveur répond une seule ligne de texte brut, pas du JSON. Le port utilisé est 443 ; 8245 sert de port alternatif quand le trafic HTTP sortant est filtré.

Il ne fait rien de plus. Pas d'ouverture de port, pas de tunnel, pas de contournement de pare-feu. Si votre serveur SSH écoute sur le port 22 et que la box ne redirige pas ce port vers la machine, le nom d'hôte résoudra parfaitement et la connexion tombera en timeout. La configuration du DUC peut être irréprochable et le service rester injoignable : ce sont deux couches distinctes.

Détail qui compte derrière un NAT : le client ne lit pas l'adresse de votre carte réseau, il interroge un service d'écho de No-IP pour connaître l'adresse vue depuis l'extérieur. Sur une machine en 192.168.1.20, c'est donc bien l'IP publique de la box qui est enregistrée, et non l'adresse privée.

Installer et configurer le client sous Linux

Deux clients coexistent et la documentation trouvée en ligne mélange les deux. noip2, version 2.1.9, est l'ancien client en C qu'on compile depuis les sources. noip-duc 3.x est le client réécrit en Rust, distribué en paquet et en binaire, celui que No-IP pousse aujourd'hui. Les commandes ci-dessous concernent l'ancien, encore présent sur beaucoup de serveurs.

Le client 3.x se pilote autrement, par options ou par variables d'environnement : noip-duc -g monhote.ddns.net -u ID_DE_CLE_DDNS -p CLE_DDNS. Selon le paquet, un fichier /etc/default/noip-duc porte les mêmes valeurs sous les noms NOIP_USERNAME, NOIP_PASSWORD et NOIP_HOSTNAMES, ce qui évite de laisser le secret dans une ligne de commande lisible par n'importe quel ps.

Aucun des deux ne redémarre seul après un reboot si vous n'avez rien prévu. Pour noip2, une unité systemd de six lignes suffit (Type=forking, ExecStart=/usr/local/bin/noip2, Restart=always), suivie de systemctl enable --now noip2. Vérifiez ensuite avec systemctl status : un simple ps montre parfois un processus lancé à la main dans un shell, qui disparaîtra à la prochaine coupure.

  • tar xzf noip-duc-linux.tar.gz puis cd noip-2.1.9-1
  • make && sudo make install : la compilation enchaîne directement sur l'assistant de configuration
  • L'assistant demande l'identifiant, le mot de passe, l'intervalle en minutes et les hôtes à gérer parmi ceux du compte
  • Le résultat est écrit dans /usr/local/etc/no-ip2.conf, avec des identifiants faiblement protégés : le fichier doit rester en root
  • sudo noip2 lance le démon, noip2 -S affiche son état, noip2 -K PID l'arrête, noip2 -C rejoue la configuration

Client logiciel ou client intégré à la box

Avant d'installer quoi que ce soit, ouvrez l'interface de votre box ou de votre routeur. La plupart embarquent déjà un client DDNS compatible No-IP, dans un menu nommé DDNS, DNS dynamique ou Nom de domaine. Il a deux avantages concrets sur le client logiciel : il connaît l'adresse WAN de première main, sans passer par un service d'écho, et il tourne en continu sans dépendre d'un PC allumé.

La règle qui évite les diagnostics interminables : un seul client par nom d'hôte. Deux clients qui écrivent le même nom depuis deux réseaux différents, par exemple le routeur de la maison et un portable partagé en 4G, feront osciller l'enregistrement toutes les quelques minutes, avec des connexions qui marchent une fois sur deux selon le cache du résolveur.

PlateformeClientPoint de vigilance
WindowsDUC graphique, installable en serviceSans l'option de service système, le client s'arrête à la déconnexion de session
Linuxnoip-duc 3.x ou noip2 2.1.9Rien n'est activé au démarrage tant qu'aucune unité systemd n'existe
macOSClient graphique No-IPDoit être ajouté aux ouvertures automatiques, et survivre à la mise en veille
Box et routeursClient DDNS intégré (Asus, Netgear, Synology, Freebox)Champ de mot de passe souvent limité en longueur, incompatible avec certaines clés

Lire les réponses du serveur de mise à jour

Le protocole renvoie du texte brut, et cette ligne dit exactement pourquoi une configuration échoue. Encore faut-il aller la chercher : journalctl -u noip2, /var/log/syslog côté Linux, l'onglet de journal du client Windows.

Deux codes méritent une lecture attentive. badagent signale un User-Agent absent ou mal formé : No-IP attend le format Société Appareil/Version, par exemple Personal Linux-DUC/2.1.9, et bloque les clients qui ne le fournissent pas. abuse tombe quand le client répète des mises à jour inutiles ; renvoyer la même adresse toutes les trente secondes finit par déclencher un blocage, alors que recevoir nochg de temps en temps est parfaitement normal.

RéponseSignificationRéaction attendue
good 92.184.12.5Mise à jour acceptée, le DNS pointe sur cette adresseRien à faire
nochg 92.184.12.5L'adresse envoyée est déjà celle enregistréeNormal ponctuellement, suspect si c'est en boucle serrée
nohostL'hôte n'existe pas ou n'appartient pas au compte utiliséVérifier l'orthographe exacte du nom et le compte propriétaire
badauthIdentifiants refusésCréer ou régénérer une clé DDNS, vérifier un changement de mot de passe
badagentUser-Agent invalide, client bloquéMettre à jour le client ou corriger l'en-tête envoyé
abuseCompte ou client bloqué pour mises à jour abusivesCorriger l'intervalle avant de demander un déblocage au support
911Panne côté No-IPAttendre au moins 30 minutes, ne pas relancer en boucle

La configuration est bonne et rien ne fonctionne

Le scénario le plus fréquent porte un nom : CGNAT. De plus en plus d'accès, notamment en 4G, 5G et sur certaines offres fibre, partagent une même adresse IPv4 publique entre plusieurs abonnés. Votre box reçoit alors une adresse du bloc 100.64.0.0/10 défini par la RFC 6598. Le DUC fait son travail correctement, il enregistre l'adresse publique partagée, mais aucune redirection de port ne peut vous ramener le trafic : le NAT de l'opérateur ne sait pas à qui l'attribuer. La seule sortie est une IPv4 dédiée demandée au FAI, ou un tunnel monté depuis l'intérieur du réseau.

Deuxième cause classique, sans rapport avec le logiciel : les noms d'hôtes gratuits doivent être confirmés tous les 30 jours depuis un lien envoyé par courriel. Passé ce délai, l'hôte est supprimé et la résolution renvoie NXDOMAIN. Le DUC continue de tourner sans rien signaler d'utile, il reçoit simplement nohost.

Troisième cause : badauth après un changement de mot de passe du compte, ou après l'activation de la double authentification. C'est pour ça qu'une clé DDNS créée dans l'espace client vaut mieux que les identifiants du compte. Elle se révoque seule, ne donne accès à rien d'autre qu'à la mise à jour des hôtes, et survit aux changements de mot de passe.

Le diagnostic tient en deux commandes, et l'ordre compte : d'abord ce que le DNS annonce, ensuite ce que vous êtes vraiment.

  • dig +short monhote.ddns.net @1.1.1.1 donne l'adresse publiée, vue depuis un résolveur externe
  • curl -s https://ifconfig.me donne l'adresse publique réellement utilisée par votre accès
  • Les deux diffèrent : le client ne met plus à jour (service arrêté, identifiants périmés, hôte supprimé)
  • Les deux sont identiques mais la connexion échoue : cherchez du côté de la redirection de port, du pare-feu local ou du service qui n'écoute que sur 127.0.0.1
  • curl renvoie une adresse en 100.64.x.x : vous êtes derrière du CGNAT, la redirection de port est hors de portée

Testez vos connaissances

Quiz rapide Question 1 sur 3

Que renvoie le serveur No-IP quand l'adresse envoyée est déjà celle enregistrée ?

Questions fréquentes

Le DUC doit-il tourner en permanence ?

Oui. Il ne rattrape pas les changements survenus pendant son arrêt : si l'adresse change alors que la machine est éteinte, l'enregistrement reste faux jusqu'au prochain démarrage du client. C'est l'argument principal en faveur du client intégré au routeur, qui ne s'arrête jamais.

Faut-il saisir le mot de passe du compte ou une clé DDNS ?

Une clé DDNS, générée depuis l'espace client. Le mot de passe du compte casse le client dès que vous le changez, et l'activation de la double authentification provoque des réponses badauth. La clé se limite à la mise à jour des hôtes et se révoque sans toucher au compte.

Quel intervalle de mise à jour configurer ?

Trente minutes conviennent à un accès résidentiel classique, où l'adresse change rarement. Descendre sous cinq minutes n'apporte presque rien et rapproche du blocage pour abus, puisque chaque vérification qui n'aboutit pas à un changement génère une réponse nochg.

Peut-on se passer du DUC avec un simple script ?

Oui, l'API accepte un appel direct : curl -s -u 'ID_CLE:SECRET' -A 'Perso script-curl/1.0 admin@example.com' 'https://dynupdate.no-ip.com/nic/update?hostname=monhote.ddns.net'. Le User-Agent n'est pas optionnel, sans lui vous récupérez badagent. Prévoyez de ne rappeler l'URL que si l'adresse a réellement changé, sinon vous accumulez des nochg.

Le DUC gère-t-il l’IPv6 ?

L'ancien noip2 ne met à jour qu'un enregistrement A, donc uniquement de l'IPv4. Si votre service n'est joignable qu'en IPv6, il faut un enregistrement AAAA et un client capable de le publier, ce que le client 3.x sait faire lorsque l'adresse détectée est une adresse IPv6.

À lire aussi

changer adresse ip · box internet · commande dig · cloudflare dns 1 1 1 1

Newsletter

Recevez nos guides IP & réseau

Nouveaux outils, définitions et astuces sécurité, directement par email. Pas de spam, désinscription en un clic.