Initial vault setup
This commit is contained in:
@@ -0,0 +1,321 @@
|
||||
---
|
||||
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*
|
||||
Reference in New Issue
Block a user