Duck DNS : accéder à votre homelab
Le plus dur quand on héberge ses services chez soi, ce n'est pas de les faire tourner, c'est d'y accéder de l'extérieur. Duck DNS règle la moitié du problème, gratuitement.
Quand on héberge ses services soi-même, le plus gros souci n’est pas de les faire tourner. C’est d’y accéder depuis l’extérieur. Tant que tu restes chez toi, sur ton réseau, tout va bien. Le jour où tu veux ouvrir ton lecteur de comics depuis le boulot ou montrer un truc à un pote, ça se complique très vite.
Pour faire ça bien, il faut deux choses
Une IP fixe, et un nom de domaine. Si tu n’as pas les deux, c’est la galère. Pas impossible, mais la galère.
L’IP fixe, c’est ce qui garantit que l’adresse de ta box aujourd’hui sera la même demain. Le nom de domaine, c’est ce qui t’évite de la retenir. Les deux ensemble, tu tapes un nom dans le navigateur et tu tombes chez toi, point.
Le cas de l’IP partagée, on en reparlera
Je ne vais pas te parler ici du cas où ton IP publique est mutualisée avec d’autres abonnés. J’ai Starlink, c’est exactement ma situation, et je te le dis tout de suite : c’est la merde. Tous tes ports ne sont pas disponibles, et ceux que tu obtiens ne sont jamais les mêmes. Ça mérite son propre article, je le ferai.
Là je pars du cas normal : une IP peut-être dynamique, mais au moins tu es seul dessus.
Le nom de domaine, ce n’est pas cher, mais c’est mieux si c’est 0
Un nom de domaine, ça ne coûte pas grand-chose. Une dizaine d’euros par an chez n’importe quel registrar. Chez OVH il y a même du DNS dynamique. Mais c’est pas 0, et pour du homelab tu as vite l’impression de payer pour pas grand-chose.
Et c’est là que Duck DNS entre en jeu.
Duck DNS, c’est gratuit et ça suffit
En gros, c’est un DNS gratuit. Tu te connectes avec ton compte Google, GitHub, Reddit ou Twitter, tu choisis un nom, et tu récupères un jeton. C’est tout.
Alors oui, il y a duckdns.org dedans. Ton domaine à toi ce sera toto.duckdns.org, pas toto.fr. Mais bon, c’est gratuit, on ne râle pas. Tu associes une IP, et hop, tous les sous-domaines et les sous-sous-domaines que tu veux pointent chez toi. nas.toto.duckdns.org, media.toto.duckdns.org, ce que tu veux : tout arrive au même endroit, à toi de trier derrière avec un reverse proxy.
Au lieu de taper 88.33.55.99 dans ton navigateur, tu tapes toto.duckdns.org et tu es sur ta machine. Il faudra quand même router les ports sur ta box, mais si tu as configuré un client torrent un jour dans ta vie, tu sais faire, mdr.
L’IP dynamique, avant et maintenant
Le vrai must de Duck DNS, c’est qu’il gère les IP dynamiques. Ton fournisseur te change d’adresse en pleine nuit ? Le nom continue de pointer au bon endroit.
À mon époque, on faisait tourner ADSL Auto Connect avec No-IP par-dessus. Ceux de mon âge s’en souviendront, avec le petit exécutable planqué dans la barre des tâches qui tombait une fois sur deux. Aujourd’hui c’est un petit compose Docker et c’est réglé. Si tu ne vois pas de quoi je parle, va d’abord jeter un œil à l’article sur Portainer et les conteneurs, ça te remettra dans le bain.
services:
duckdns:
image: lscr.io/linuxserver/duckdns:latest
container_name: duckdns
environment:
- PUID=1000
- PGID=1000
- TZ=Europe/Paris
- SUBDOMAINS=toto
- TOKEN=ton-jeton-duckdns
- UPDATE_IP=ipv4
- LOG_FILE=false
volumes:
- ./config:/config
restart: unless-stopped
Trois lignes à changer et c’est plié. SUBDOMAINS, c’est juste la partie de gauche : si ton domaine est toto.duckdns.org, tu mets toto, pas le nom complet. Tu peux en mettre plusieurs, séparés par des virgules, sans espace. TOKEN, c’est le jeton que Duck DNS t’affiche sur ton compte. UPDATE_IP accepte ipv4, ipv6 ou both selon ce que ta connexion sait faire.
Une fois lancé, le conteneur va contacter Duck DNS toutes les cinq minutes pour dire « voilà mon IP du moment ». Il ne fait que ça, il ne consomme rien, et tu l’oublies. Si tu veux garder une trace des changements d’adresse, tu passes LOG_FILE à true et tu le retrouves dans le volume /config.
Un nom qui pointe chez toi, et c’est déjà beaucoup
Une fois que c’est configuré, tu as un nom de domaine qui pointe vers ton IP, dynamique ou pas. C’est la première brique, celle sans laquelle rien d’autre n’est accessible de l’extérieur. Derrière, tu peux poser un reverse proxy, des certificats, de l’authentification, mais il faut bien commencer par un nom qui arrive quelque part. Chez moi c’est Nginx Proxy Manager qui s’occupe de tout ça, et je te ferai un article dessus.
Et si par malheur ton IP est mutualisée, on en reparlera. C’est moins cool, désolé.
Image d’en-tête générée par IA.
SmeagolWorms4
Commentaires