---
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*
