Comment puis-je configurer mon DNS lorsque le fichier resolv.conf est écrasé ?
La plupart des informations que je vois en ligne disent qu'il faut modifier /etc/resolv.conf
, mais toutes les modifications que j'y fais sont écrasées.
$ cat /etc/resolv.conf
# Dynamic resolv.conf(5) file for glibc resolver(3) generated by resolvconf(8)
# DO NOT EDIT THIS FILE BY HAND --
# YOUR CHANGES WILL BE OVERWRITTEN
nameserver 127.0.1.1
Il semble que 127.0.1.1 soit une instance locale de dnsmasq
. La documentation de dnsmasq
dit de modifier /etc/resolv.conf
. J'ai essayé de mettre des serveurs de noms personnalisés dans /etc/resolv.conf.d/base
, mais les changements n'apparaissent pas dans /etc/resolv.conf
après avoir exécuté sudo resolvconf -u
.
Pour votre information, je ne veux pas modifier les DNS pour chaque connexion, je veux définir des paramètres DNS par défaut à utiliser pour toutes les connexions, sauf indication contraire.
UPDATE:
J'ai répondu moi-même à cette question : https://unix.stackexchange.com/a/163506/67024
Je pense que c’est la meilleure solution depuis :
- Elle fonctionne.
- Elle nécessite le moins de changements possible et
- Elle fonctionne toujours en conjonction avec le cache DNS de dnsmasq, plutôt que de le contourner.
Je crois que si vous voulez remplacer le serveur de noms DNS, il suffit d'ajouter une ligne similaire à celle-ci dans votre fichier
base
sousresolv.conf.d
.Exemple
Puis mettez votre liste de serveurs de noms comme ceci :
Enfin, mettez à jour
resolvconf
:Si vous jetez un oeil à la page de manuel de
resolvconf
, elle décrit les différents fichiers sous/etc/resolvconf/resolv.conf.d/
.Même s'il y a un avertissement en haut du fichier
head
:cet avertissement est là pour que lorsque ces fichiers sont construits, l'avertissement se retrouve dans le fichier
resolv.conf
qui en résulte. Vous auriez donc pu tout aussi facilement ajouter les lignesnameserver
décrites ci-dessus pour le fichierbase
, au fichierhead
également.Références
Persist dns nameserver for ubuntu 14.04][1] (en anglais)
[Comment ajouter un serveur DNS via resolv.conf ?][2]
[1] : http://www.netroby.com/view.php?id=3630#.U2mTfHVdUc0 [2] : https://askubuntu.com/questions/130452/how-do-i-add-a-dns-server-via-resolv-conf
Je suis également intéressé par cette question et j'ai essayé la solution proposée par @sim.
Pour la tester, j'ai mis
dans
/etc/resolvconf/resolv.conf.d/base
etdans
/etc/resolvconf/resolv.conf.d/head
.Puis j'ai redémarré le réseau avec
Le résultat est que
/etc/resolv.conf
ressemble à ceciet
nm-tool
indique que les dnsserver sontqui sont ceux fournis par mon routeur. D'autre part, le fait de creuser une adresse indique que
Si j'ai raison, je conclus de tout ceci que
Dans l’ensemble, cela fonctionne mais je ne pense pas que ce soit le résultat souhaité. Une solution plus proche, je pense, est la suivante. Modifier
puis ajoutez
Le résultat est le suivant : resolv.conf ne contient que 127.0.0.1, ce qui signifie que le cache dnsmasq est invoqué et que nm-tool dit
ce qui signifie que si le nom recherché n'est pas dans le cache, alors il est demandé à 8.8.8.8 et non au serveur fourni par dhcp.
Une autre option (peut-être meilleure) est d'utiliser "prepend" ; au lieu de "supersede" : de cette façon, si le nom n'est pas résolu par 8.8.8.8, alors la requête retombe sur l'autre serveur. En fait, nm-tool dit
Essayez d'ajouter
dns-nameservers XXX.XXX.XXX.X
dans votre fichier/etc/networking/interfaces
.