-
ajouter des adresses du style machine.local
Localement
sudo vi /etc/hosts 192.168.1.1 toto.local
Serveur DNS local (pour tout un réseau avec dnsmasq)
sudo apt install dnsmasq
Éditez la configuration :
sudo vi /etc/dnsmasq.conf address=/toto.local/192.168.1.1
Redémarrez dnsmasq :
sudo systemctl restart dnsmasq
Configurez les autres machines pour utiliser votre serveur DNS (l’adresse IP de la machine où dnsmasq est installé).
Faire cohabiter dnsmasq et 1.1.1.1
sudo vi /etc/dnsmasq.conf # Désactive le DNS provenant du DHCP (évite les conflits) no-resolv # Utilise 1.1.1.1 comme serveur DNS en aval server=1.1.1.1 server=9.9.9.9 # Gère les noms locaux (ex: toto.local) address=/toto.local/192.168.1.1 local=/local/ # Pour le domaine .local
3. Redémarrer dnsmasq :
sudo systemctl restart dnsmasq
4. Configurer votre système pour utiliser dnsmasq comme DNS principal
Méthode 1 (recommandée) : Faire de 127.0.0.1 (localhost) votre serveur DNS.
Éditez /etc/resolv.conf (attention, il peut être écrasé par NetworkManager/DHCP) :
sudo vi /etc/resolv.conf nameserver 127.0.0.1
Pour éviter que le fichier soit écrasé :
sudo chattr +i /etc/resolv.conf # Rend le fichier immuable (à désactiver si besoin)
Méthode 2 (si vous utilisez systemd-resolved) :
sudo systemctl disable systemd-resolved --now # Désactive systemd-resolved sudo rm /etc/resolv.conf # Supprime le lien symbolique sudo echo "nameserver 127.0.0.1" > /etc/resolv.conf # Configure localhost
Vérification
Testez la résolution locale :
dig toto.local→ Doit renvoyer 192.168.1.1.Testez la résolution publique :
dig google.com→ Doit passer par 1.1.1.1.Vérifiez les logs de dnsmasq :
sudo tail -f /var/log/syslog | grep dnsmasqCas particuliers (NetworkManager) : Configurez NetworkManager pour utiliser 1.1.1.1 comme DNS par défaut.
Ajoutez les règles locales dans/etc/NetworkManager/dnsmasq.d/custom.conf
Alternative : Utiliser systemd-resolved avec dnsmasq
Si vous préférez ne pas désactiver systemd-resolved, vous pouvez le configurer pour qu’il utilise dnsmasq :
sudo mkdir -p /etc/systemd/resolved.conf.d/
sudo vi /etc/systemd/resolved.conf.d/dnsmasq.confAjouter :
[Resolve] DNS=127.0.0.1 Domains=~local # Pour les noms en .local
Puis redémarrez :
sudo systemctl restart systemd-resolved
NOTE : Si erreurs, voir les logs (
journalctl -u dnsmasq)