Sur Ubuntu 14.04, j'utilise dnsmasq pour résoudre les domaines wildcard example.com sur la machine locale (ordinateur de bureau à domicile).
Après beaucoup de lectures, je ne peux plus me débrouiller comme avant sur une installation vierge du 18.04.
Tout ce que je veux réaliser pour le moment, c'est:
ping example.com
to ping 127.0.0.1 et non 93.184.216.34;ping anysubdomain.example.com
faire aussi un ping sur 127.0.0.1;ping google.com
envoyer une requête ping à la vraie page google.com via le routeur/IP DNS.Cela doit sûrement être simple, même trivial?
Mais je suis perplexe. Je peux obtenir l'exemple de l'exemple.com, mais seulement au prix de tout casser.
Comment puis-je faire ceci?
Voici les étapes pour Ubuntu 18.04. C'est un peu long car systemd-resolved
ne fonctionne pas très bien avec NetworkManager
lorsqu'il est configuré avec dnsmasq
.
Cependant, je recommande quand même de démarrer dnsmasq
à partir de NetworkManager
, car les modifications de la connectivité réseau (WIFI, filaire, ...) seront gérées de manière transparente.
Activer Dnsmasq dans NetworkManager
Editez le fichier /etc/NetworkManager/NetworkManager.conf
et ajoutez la ligne dns=dnsmasq
à la section [main]
. Elle se présentera ainsi:
[main]
plugins=ifupdown,keyfile
dns=dnsmasq
[ifupdown]
managed=false
[device]
wifi.scan-Rand-mac-address=no
Laisse NetworkManager gérer /etc/resolv.conf
Sudo rm /etc/resolv.conf ; Sudo ln -s /var/run/NetworkManager/resolv.conf /etc/resolv.conf
Configurez example.com
echo 'address=/.example.com/127.0.0.1' | Sudo tee /etc/NetworkManager/dnsmasq.d/example.com-wildcard.conf
Recharger NetworkManager
et tester
NetworkManager doit être rechargé pour que les modifications prennent effet.
Sudo systemctl reload NetworkManager
Ensuite, nous pouvons vérifier que nous pouvons atteindre un site habituel:
Dig askubuntu.com +short
151.101.129.69
151.101.65.69
151.101.1.69
151.101.193.69
Et enfin, vérifiez que le example.com
et les sous-domaines sont résolus en tant que 127.0.0.1
:
Dig example.com askubuntu.example.com a.b.c.d.example.com +short
127.0.0.1
127.0.0.1
127.0.0.1
Assurez-vous d'abord dans /etc/NetworkManager/NetworkManager.conf
que la ligne suivante est not présente ou commentée:
dns=dnsmasq
Redémarrez NetworkManager:
Sudo systemctl restart NetworkManager
Assurez-vous que le Dnsmasq contrôlé par NetworkManager n'est plus en cours d'exécution, que ce soit en tuant le processus ou en redémarrant votre système.
Puis installez dnsmasq:
Sudo apt install dnsmasq
Ajoutez les éléments suivants à /etc/dnsmasq.d/example.com
:
address=/example.com/127.0.0.1
Redémarrez Dnsmasq:
Sudo systemctl restart dnsmasq
Maintenant, vous devriez avoir une substitution DNS générique pour example.com.
Ce ne sera pas aussi simple que d’éditer le fichier hosts. Vous avez plusieurs options:
Ce python proxy DNS qui gérera les caractères génériques dans/etc/hosts