Files
wiki/Catalogue-Self-Hosted/apps/app-ddclient.md
T
2026-06-09 18:40:21 +02:00

7.2 KiB

title, created, updated, type, tags, confidence, contested, sources
title created updated type tags confidence contested sources
ddclient 2025-06-07 2025-06-07 app
catalogue
dns
ddns
networking
medium false
https://sourceforge.net/projects/ddclient/

ddclient

Métadonnées

Attribut Valeur
Nom ddclient
Slug ddclient
Description Update dynamic DNS entries with various dynamic DNS service providers
Version stable
Site web https://ddclient.net/
Repository https://github.com/ddclient/ddclient
Stars 3,450
Licence GPL-3.0
Catégorie DNS
Tags DNS, DDNS, networking

Description

ddclient est un client DDNS (Dynamic DNS) léger et polyvalent permettant de mettre à jour automatiquement les entrées DNS lorsque votre adresse IP publique change. Il supporte une large gamme de fournisseurs de DNS dynamique incluant Cloudflare, GoDaddy, OVH, DuckDNS, No-IP, DynDNS, et bien d'autres.

Fonctionnalités principales

  • 🔄 Mise à jour automatique de l'adresse IP publique
  • 🌐 Support de nombreux fournisseurs (50+ services supportés)
  • 🔐 Authentification sécurisée via API tokens ou identifiants
  • 📊 Détection d'IP flexible (interface réseau, services web externes)
  • ⚙️ Configuration flexible via fichiers ou variables d'environnement
  • 🐳 Facilement déployable via Docker

Fournisseurs supportés (sélection)

  • Cloudflare
  • GoDaddy
  • OVH
  • DuckDNS
  • No-IP
  • DynDNS
  • Gandi
  • Hurricane Electric
  • Infomaniak
  • Namecheap

Installation Docker Compose

Docker Compose (fichier docker-compose.yml)

services:
  ddclient:
    image: linuxserver/ddclient:latest
    container_name: ddclient
    restart: unless-stopped
    environment:
      - PUID=1000
      - PGID=1000
      - TZ=Europe/Paris
    volumes:
      - ./config:/config
    networks:
      - ddclient-net

networks:
  ddclient-net:
    driver: bridge

Ou avec configuration directe

services:
  ddclient:
    image: linuxserver/ddclient:latest
    container_name: ddclient
    restart: unless-stopped
    environment:
      - PUID=1000
      - PGID=1000
      - TZ=Europe/Paris
    volumes:
      - ./config/ddclient.conf:/config/ddclient.conf:ro
    networks:
      - ddclient-net

networks:
  ddclient-net:
    driver: bridge

Commandes de déploiement

# Créer le répertoire de configuration
mkdir -p ddclient/config

# Créer le fichier de configuration
touch ddclient/config/ddclient.conf

# Démarrer le conteneur
cd ddclient
docker compose up -d

# Vérifier les logs
docker logs -f ddclient

Configuration

Fichier ddclient.conf - Exemple Cloudflare

# Configuration générale
daemon=300
syslog=yes
pid=/var/run/ddclient.pid
ssl=yes

# Détection de l'IP publique
use=web
web=https://api.ipify.org

# Configuration Cloudflare
protocol=cloudflare,
zone=example.com,
ttl=1,
login=token,
password=votre_api_token_cloudflare
subdomain.example.com

Exemple OVH

daemon=300
syslog=yes
ssl=yes
use=web
web=https://api.ipify.org

protocol=ovh,
login=votre_identifiant_ovh,
password=votre mot de passe_ovh
votre-domaine.ovh

Exemple DuckDNS

daemon=300
syslog=yes
ssl=yes
use=web
web=https://api.ipify.org

protocol=duckdns,
password=votre_token_duckdns
votre-sous-domaine.duckdns.org

Exemple GoDaddy

daemon=300
syslog=yes
ssl=yes
use=web
web=https://api.ipify.org

protocol=godaddy,
login=votre_cle_api,
password=votre_secret_api
example.com

Variables d'environnement

Variable Description Défaut
PUID ID utilisateur 1000
PGID ID groupe 1000
TZ Fuseau horaire UTC

Paramètres importants

Paramètre Description
daemon Intervalle de vérification en secondes
use=web Utiliser un service web pour détecter l'IP
use=if Utiliser une interface réseau spécifique
ssl=yes Forcer l'utilisation de HTTPS
ttl Time-to-live des enregistrements DNS

Commandes utiles

# Voir les logs en temps réel
docker logs -f ddclient

# Tester la configuration
docker exec ddclient ddclient -daemon=0 -debug -verbose -noquiet

# Forcer une mise à jour
docker exec ddclient ddclient -force

# Afficher l'état
docker exec ddclient ddclient -query

# Redémarrer le service
docker restart ddclient

Alternatives

Alternative Description Différence principale
inadyn Client DDNS léger en C Plus léger, moins de fournisseurs supportés
dnsomatic Service DDNS agrégateur Centralise les mises à jour vers plusieurs services
cloudflare-ddns Spécifique Cloudflare Optimisé uniquement pour Cloudflare, plus simple
dynamic-dns Client Python DDNS Solution Python alternative

Sécurité

Bonnes pratiques

  1. Utiliser des API tokens plutôt que des mots de passe quand possible
  2. Restreindre les permissions du token API au minimum nécessaire
  3. Ne jamais commiter le fichier ddclient.conf contenant les credentials
  4. Utiliser des variables d'environnement ou des secrets Docker pour les credentials
  5. Activer SSL (ssl=yes) pour toutes les communications
  6. Limiter l'accès au fichier de configuration (chmod 600)
  7. Surveiller les logs pour détecter les tentatives d'accès anormales

Exemple avec Docker Secrets

services:
  ddclient:
    image: linuxserver/ddclient:latest
    secrets:
      - ddclient_config
    volumes:
      - /run/secrets/ddclient_config:/config/ddclient.conf:ro

secrets:
  ddclient_config:
    file: ./secrets/ddclient.conf

Dépannage

Problèmes courants

Problème Cause probable Solution
IP non détectée Service web indisponible Changer de service de détection d'IP
Échec d'authentification Token/credentials invalides Vérifier les credentials dans ddclient.conf
Zone DNS non trouvée Mauvais domaine configuré Vérifier le nom de domaine dans la configuration
Mises à jour trop fréquentes Intervalle trop court Augmenter la valeur daemon

Logs détaillés

# Mode debug
docker exec ddclient ddclient -daemon=0 -debug -verbose -noquiet

# Vérifier le fichier de configuration
docker exec ddclient cat /config/ddclient.conf

# Vérifier les permissions
docker exec ddclient ls -la /config/

Ressources


Pages liées


Dernière mise à jour : 2025-06-07