322 lines
7.2 KiB
Markdown
322 lines
7.2 KiB
Markdown
---
|
|
title: ddclient
|
|
created: 2025-06-07
|
|
updated: 2025-06-07
|
|
type: app
|
|
tags: [catalogue, dns, ddns, networking]
|
|
confidence: medium
|
|
contested: false
|
|
sources: [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`)
|
|
|
|
```yaml
|
|
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
|
|
|
|
```yaml
|
|
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
|
|
|
|
```bash
|
|
# 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
|
|
|
|
```conf
|
|
# 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
|
|
|
|
```conf
|
|
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
|
|
|
|
```conf
|
|
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
|
|
|
|
```conf
|
|
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
|
|
|
|
```bash
|
|
# 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
|
|
|
|
```yaml
|
|
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
|
|
|
|
```bash
|
|
# 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
|
|
|
|
- 📚 **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
|
|
|
|
---
|
|
|
|
## Pages liées
|
|
|
|
- [[catalogue-dns]] - Vue d'ensemble des solutions DNS
|
|
- [[app-pihole]] - Serveur DNS local avec filtrage
|
|
- [[app-adguard-home]] - Alternative à Pi-hole
|
|
- [[app-bind9]] - Serveur DNS autoritaire
|
|
- [[app-traefik]] - Reverse proxy avec gestion DNS
|
|
- [[guide-ddns]] - Guide complet sur le Dynamic DNS
|
|
|
|
---
|
|
|
|
*Dernière mise à jour : 2025-06-07*
|