Serveur DNS · 6 min read · Oct 01, 2025
Comment configurer un résolveur DNS local avec Dnsmasq sur Ubuntu 20.04

Dnsmasq signifie “masquerade DNS” est un serveur DNS simple, léger et facile à utiliser, utilisé pour un petit réseau. Il peut être configuré comme un cache DNS et un serveur DHCP et prend en charge les protocoles IPv4 et IPv6. Lorsqu’il reçoit des requêtes DNS, il y répond à partir de son cache ou les transmet à un autre serveur DNS.
Dnsmasq est composé de trois sous-systèmes :
- Sous-système DNS : Il est utilisé pour mettre en cache différents types d’enregistrements, y compris A, AAAA, CNAME et PTR.
- Sous-système DHCP : Il prend en charge DHCPv4, DHCPv6, BOOTP et PXE.
- Sous-système d’annonce de routeur : Il fournit une autoconfiguration de base pour les hôtes IPv6. Il peut être utilisé de manière autonome ou en conjonction avec DHCPv6.
Dans ce tutoriel, nous allons vous montrer comment configurer un serveur DNS local avec Dnsmasq sur le serveur Ubuntu 20.04.
Prérequis
- Un serveur exécutant Ubuntu 20.04.
- Un mot de passe root configuré sur le serveur.
Commencer
Tout d’abord, il est recommandé de mettre à jour les paquets de votre système vers la dernière version. Vous pouvez mettre à jour tous les paquets en exécutant la commande suivante :
apt-get update -yAprès avoir mis à jour tous les paquets, vous devrez désactiver le service Systemd-resolved dans votre système. Le service Systemd-resolved est utilisé pour la résolution de noms réseau pour les applications locales.
Vous pouvez le désactiver en exécutant la commande suivante :
systemctl disable --now systemd-resolvedUne fois le service désactivé, vous devrez supprimer le fichier resolv.conf par défaut et en créer un nouveau avec les détails de votre serveur DNS personnalisé.
Vous pouvez supprimer le fichier resolv.conf par défaut avec la commande suivante :
rm -rf /etc/resolv.confEnsuite, ajoutez le serveur DNS de Google au fichier resolv.conf avec la commande suivante :
echo "nameserver 8.8.8.8" > /etc/resolv.confUne fois que vous avez terminé, vous pouvez passer à l’étape suivante.
Installer Dnsmasq
Par défaut, Dnsmasq est disponible dans le dépôt par défaut d’Ubuntu 20.04. Vous pouvez l’installer en exécutant simplement la commande suivante :
apt-get install dnsmasq dnsutils ldnsutils -yUne fois l’installation terminée, les services Dnsmasq seront démarrés automatiquement. Vous pouvez vérifier l’état de Dnsmasq avec la commande suivante :
systemctl status dnsmasqVous devriez obtenir la sortie suivante :
dnsmasq.service - dnsmasq - Un serveur DHCP léger et un serveur DNS de mise en cache
Loaded: loaded (/lib/systemd/system/dnsmasq.service; enabled; vendor preset: enabled)
Active: active (running) since Tue 2020-11-02 11:02:01 UTC; 15s ago
Main PID: 17726 (dnsmasq)
Tasks: 1 (limit: 2282)
Memory: 868.0K
CGroup: /system.slice/dnsmasq.service
??17726 /usr/sbin/dnsmasq -x /run/dnsmasq/dnsmasq.pid -u dnsmasq -7 /etc/dnsmasq.d,.dpkg-dist,.dpkg-old,.dpkg-new --local-service --trust-anchor=.,20326,8,2,e>
Nov 02 11:02:12 ubuntu2004 systemd[1]: Starting dnsmasq - Un serveur DHCP léger et un serveur DNS de mise en cache...
Nov 02 11:02:12 ubuntu2004 dnsmasq[17705]: dnsmasq: syntax check OK.
Nov 02 11:02:12 ubuntu2004 dnsmasq[17726]: démarré, version 2.80 cachesize 150
Nov 02 11:02:12 ubuntu2004 dnsmasq[17726]: Service DNS limité aux sous-réseaux locaux
Nov 02 11:02:12 ubuntu2004 dnsmasq[17726]: options de compilation : IPv6 GNU-getopt DBus i18n IDN DHCP DHCPv6 no-Lua TFTP conntrack ipset auth DNSSEC loop-detect inotify dumpfi>
Nov 02 11:02:12 ubuntu2004 dnsmasq[17726]: lecture de /etc/resolv.conf
Nov 02 11:02:12 ubuntu2004 dnsmasq[17726]: utilisation du serveur de noms 8.8.8.8#53
Nov 02 11:02:12 ubuntu2004 dnsmasq[17726]: lecture de /etc/hosts - 7 adresses
Nov 02 11:02:12 ubuntu2004 systemd[1]: Démarré dnsmasq - Un serveur DHCP léger et un serveur DNS de mise en cache.
Une fois que vous avez terminé, vous pouvez passer à l’étape suivante.
Configurer Dnsmasq
Ensuite, vous devrez configurer Dnsmasq en tant que serveur DNS local. Vous pouvez le faire en modifiant le fichier de configuration principal de Dnsmasq :
nano /etc/dnsmasq.confChangez les lignes suivantes :
port=53
domain-needed
bogus-priv
listen-address=127.0.0.1,votre-ip-serveur
expand-hosts
domain=dns-example.com
cache-size=1000
Enregistrez et fermez le fichier lorsque vous avez terminé.
Ensuite, vous devrez ajouter l’adresse IP de votre serveur en tant que serveur de noms principal dans votre fichier resolv.conf. Vous pouvez l’ajouter avec la commande suivante :
nano /etc/resolv.confAjoutez la ligne suivante au-dessus de la ligne “nameserver 8.8.8.8” :
nameserver votre-ip-serveur
Enregistrez et fermez le fichier lorsque vous avez terminé. Ensuite, vérifiez le serveur pour toute erreur de configuration avec la commande suivante :
dnsmasq --testSi tout va bien, vous devriez obtenir la sortie suivante :
dnsmasq: syntax check OK.
Enfin, redémarrez le service Dnsmasq pour appliquer les modifications :
systemctl restart dnsmasqÀ ce stade, Dnsmasq est démarré et écoute sur le port 53. Vous pouvez le vérifier avec la commande suivante :
ss -alnp | grep -i :53Vous devriez obtenir la sortie suivante :
udp UNCONN 0 0 0.0.0.0:53 0.0.0.0:* users:(("dnsmasq",pid=41051,fd=4))
udp UNCONN 0 0 [::]:53 [::]:* users:(("dnsmasq",pid=41051,fd=6))
tcp LISTEN 0 32 0.0.0.0:53 0.0.0.0:* users:(("dnsmasq",pid=41051,fd=5))
tcp LISTEN 0 32 [::]:53 [::]:* users:(("dnsmasq",pid=41051,fd=7))
Ajouter des enregistrements DNS au serveur Dnsmasq
Ensuite, vous devrez modifier votre fichier /etc/hosts et ajouter l’entrée du serveur DNS local.
nano /etc/hostsAjoutez la ligne suivante :
votre-ip-serveur host1.dns-example.com
Enregistrez et fermez le fichier lorsque vous avez terminé.
Vérifier la résolution du serveur Dnsmasq
À ce stade, Dnsmasq est installé et configuré. Maintenant, il est temps de vérifier la résolution DNS.
Vous pouvez utiliser la commande dig pour vérifier la résolution DNS comme indiqué ci-dessous :
dig host1.dns-example.com +shortSi tout va bien, vous devriez voir l’adresse IP de votre serveur dans la sortie suivante :
votre-ip-serveur
Vous pouvez également vérifier la résolution DNS externe avec la commande suivante :
dig howtoforge.com +shortVous devriez obtenir la sortie suivante :
172.67.68.93
104.26.3.165
104.26.2.165
Configurer un client distant pour utiliser le serveur DNS Dnsmasq
Ensuite, vous devrez configurer un client distant pour utiliser votre serveur DNS Dnsmasq comme serveur DNS par défaut.
Tout d’abord, installez les outils DNS avec la commande suivante :
apt-get install dnsutils ldnsutils -yUne fois installé, vous devrez modifier le fichier /etc/resolv.conf et l’entrée de votre serveur DNS Dnsmasq.
nano /etc/resolv.confAjoutez la ligne suivante au début du fichier :
nameserver votre-ip-serveur
Enregistrez et fermez le fichier lorsque vous avez terminé.
Ensuite, vérifiez la résolution DNS locale avec la commande suivante :
dig host1.dns-example.comVous devriez voir la sortie suivante :
; DiG 9.9.5-3ubuntu0.4-Ubuntu host1.dns-example.com
;; global options: +cmd
;; Got answer:
;; HEADER opcode: QUERY, status: NOERROR, id: 26401
;; flags: qr aa rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 0, ADDITIONAL: 1
;; OPT PSEUDOSECTION:
; EDNS: version: 0, flags:; udp: 4096
;; QUESTION SECTION:
;host1.dns-example.com. IN A
;; ANSWER SECTION:
host1.dns-example.com. 0 IN A 45.58.32.165
;; Query time: 301 msec
;; SERVER: 45.58.32.165#53(45.58.32.165)
;; WHEN: Mon Nov 02 16:49:37 IST 2020
;; MSG SIZE rcvd: 66
Ensuite, vous devrez vérifier votre serveur DNS pour la mise en cache. Vous pouvez le vérifier en utilisant l’utilitaire drill.
Tout d’abord, exécutez la commande suivante :
drill google.com | grep "Query time"Vous devriez voir la sortie suivante :
;; Query time: 290 msec
Ensuite, exécutez à nouveau la commande pour vérifier si la mise en cache fonctionne ou non :
drill google.com | grep "Query time"Vous devriez voir que le temps de requête diminue maintenant à 4 msec :
;; Query time: 4 msec
Conclusion
Félicitations ! vous avez réussi à installer et configurer Dnsmasq en tant que serveur DNS local sur Ubuntu 20.04. J’espère que vous pourrez maintenant l’implémenter facilement dans votre réseau local pour la résolution de noms.
Recevez de nouveaux articles dans votre boîte de réception.
Aucun spam. Désabonnez-vous à tout moment.