Comment conserver modification de resolv.conf ?

Je souhaite modifier mon fichier resolv.conf pour utiliser le server DNS de la FDN
( https://www.fdn.fr/actions/dns/ )

J’ai donc édité manuellement le fichier ( sudo gedit /etc/resolv.conf ) et enregistré.

Mais après reboot de ma machine, le fichier est revenu dans son état d’origine, et affiche à nouveau les DNS de mon FAI, ma modification a disparu.

Comment faire pour conserver ma modification ?

Méthode rapide et sale (“quick and dirty”) : activer l’attribut “i” (immutable) du fichier avec chattr. Ainsi il ne sera pas modifiable même par root.

Méthode élégante : installer resolvconf s’il ne l’est pas déjà et le configurer. Quand resolvconf est présent, les sources de DNS majeures (isc-dhcp-client, ifupdown, network-manager, openvpn…) passent par son intermédiaire au lieu d’écrire directement dans resolv.conf. Il est possible de le configurer pour ajouter un DNS de son choix, ordonner les DNS fournis par les différentes sources…

Autre méthode : configurer le ou les programmes qui écrivent dans resolv.conf pour y inscrire ce que tu souhaites.

Si tu obtiens un bail à l’aide de dhclient, tu peux le configurer pour ignorer la configuration DNS fournie par ton FAI.

Bonjour,

j’avais la même interrogation que toi il y a quelques semaines.

Voici un lien qui pourra t’aider :

https://it-tuto.com/configurer-les-adresses-statiques-des-serveurs-dns/

@+

Dans /etc/dhcp/dhclient.conf

prepend domain-name-servers 80.67.169.12,80.67.169.40;

comme ça ils ne sont pas effacés de /etc/resolv.conf et ceux du FAI passent après. Nickel :slight_smile:

En supposant que c’est bien dhclient (ou le programme qui l’invoque) qui réécrit le fichier.

j’ai rien touché à l’installation d’origine de ce côté là, donc c’est visiblement le cas normal pour le wifi avec Network Manager.

Et pour ne pas mettre ses oeufs dans le même panier

https://www.verisign.com/en_US/security-services/public-dns/index.xhtml?

root@debian:/# grep prepend /etc/dhcp/dhclient.conf
#prepend domain-name-servers 127.0.0.1;
prepend domain-name-servers 37.235.1.174,80.67.169.12,64.6.64.6;
root@debian:/# cat /etc/resolv.conf 
# Generated by NetworkManager
nameserver 37.235.1.174
nameserver 80.67.169.12
nameserver 64.6.64.6
# NOTE: the libc resolver may not support more than 3 nameservers.
# The nameservers listed below may not be recognized.

root@debian:/#

Merci pour les différentes réponses.
J’ai testé la méthode de grandtoubab.

J’ai désormais le même résultat quand j’édite mon fichier /etc/dhcp/dhclient.conf
j’ai bien

root@homijima:/home/matiu# grep prepend /etc/dhcp/dhclient.conf
#prepend domain-name-servers 127.0.0.1;
prepend domain-name-servers 80.67.169.12,80.67.169.40;

mais par contre quand je vais voir mon fichier resolv.conf
il n’a pas bougé, j’ai toujours seulement les 2 dns d’origine de mon fournisseur d’accès, ceux dont je veux me débarrasser :

root@homijima:/home/matiu# cat /etc/resolv.conf

Generated by NetworkManager

nameserver 89.2.0.1
nameserver 89.2.0.2

Il faut faire autre chose pour que ce soit pris en compte ?

Oups c’est bon !
il fallait redémarrer pour que ce soit pris en compte :
Maintenant j’ai bien :

root@homijima:/home/matiu# cat /etc/resolv.conf

Generated by NetworkManager

nameserver 80.67.169.12
nameserver 80.67.169.40
nameserver 89.2.0.1

NOTE : il se peut que le solveur libc ne prenne pas en charge plus de 3 serveurs de noms.

Les serveurs de noms listés ci-dessous peuvent ne pas être reconnus.

nameserver 89.2.0.2
root@homijima:/home/matiu#

Et pour tester : j’ai pu voir que par exemple un célèbre site avec un bateau pirate m’est désormais accessible, alors qu’il était bloqué par le resolver de mon FAI.

Vu le résultat de ta commande ci-dessous, tu ne te débarrasses pas des DNS de ton FAI (Numicable : 89.2.0.1)

Pour ce faire tu dois utiliser l’option supersede et non pas preprend comme expliqué sur le site que je t’ai indiqué plus haut et que je remets ici (voir le dernier tiers de l’article):

https://it-tuto.com/configurer-les-adresses-statiques-des-serveurs-dns/

prepend permet de garder les DNS statiques (que tu renseignes) et ceux obtenus dans la réponse DHCP (fournit par ta BOX).

@+

il est assez simple de désigner 3 DNS pour que ceux du FAI ne soient plus pris en compte

root@debian:/# grep prepend /etc/dhcp/dhclient.conf
#prepend domain-name-servers 127.0.0.1;
prepend domain-name-servers 37.235.1.174,80.67.169.12,64.6.64.6;
root@debian:/# cat /etc/resolv.conf 
# Generated by NetworkManager
nameserver 37.235.1.174
nameserver 80.67.169.12
nameserver 64.6.64.6
# NOTE: the libc resolver may not support more than 3 nameservers.
# The nameservers listed below may not be recognized.

Je n’ai pas dis l’inverse :wink:
Je dis juste qu’une option adaptée existe en fonction du besoin recherché; surtout lorsque l’on regarde la tête du contenu de son resolv.conf. On voit qu’il ne se “débarrasse” pas du DNS de son FAI.

@+

Avec NetworkManager il est possible de spécifier les DNS directement dans l’applet NetworkManager.

Sauf qu’il faut le faire pour chaque connexion utilisée, donc pas très pratique quand on est itinérant et qu’on change souvent.
dhclient est commun à toutes les connexions

Un message a été scindé en un nouveau sujet : DNS dans virtualbox