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 (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 |
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
- Utiliser des API tokens plutôt que des mots de passe quand possible
- Restreindre les permissions du token API au minimum nécessaire
- Ne jamais commiter le fichier
ddclient.conf contenant les credentials - Utiliser des variables d'environnement ou des secrets Docker pour les credentials
- Activer SSL (
ssl=yes) pour toutes les communications - Limiter l'accès au fichier de configuration (chmod 600)
- 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
Ressources
- 📚 Documentation officielle : https://ddclient.net/
- 🐙 Repository GitHub : https://github.com/ddclient/ddclient
- 🐳 Image LinuxServer : https://docs.linuxserver.io/images/docker-ddclient/
- 📖 Wiki GitHub : https://github.com/ddclient/ddclient/wiki
- 💬 Support : https://github.com/ddclient/ddclient/issues
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 |