web-dev-qa-db-fra.com

Comment rendre l'adresse du serveur de noms permanente dans /etc/resolv.conf?

Je ne peux pas conserver l'adresse du serveur de noms que j'ai définie via /etc/resolv.conf. Chaque fois que je définis la valeur, le gestionnaire de réseau la remplace par la passerelle par défaut au redémarrage.

Comment régler le problème?

Je préférerais un moyen autre que de changer de serveur de noms dans le routeur.

13
Ashildr

Ça dépend. S'il vous plaît lire jusqu'à la fin.

Si vous n'avez pas installé le paquetage resolvconf , rien de plus simple: après l'avoir modifié comme vous le souhaitez, lancez la commande

 Sudo chattr +i /etc/resolv.conf

La commande modifie les attributs du fichier en lui donnant la variable immutable (option + i).

Cependant, si le paquet resolvconf est installé, le fichier /etc/resolv.conf peut être transformé en lien symbolique,

 # file /etc/resolv.conf
 /etc/resolv.conf: symbolic link to `../run/resolvconf/resolv.conf'

qui est un fichier sur un système de fichiers virtuel, l'épitomie d'une version non permanente. Ce qui est amusant, c’est que vous ne savez peut-être pas que resolvconf est installé, car des versions récentes des systèmes d’exploitation de type Debian sont livrés préinstallés. Vous pouvez déterminer si votre distribution l'a installé pour vous en lançant la commande:

 #whereis resolvconf
 resolvconf: /sbin/resolvconf /etc/resolvconf /lib/resolvconf /usr/share/man/man8/resolvconf.8.gz

Plus important encore, vous pouvez déterminer si votre /etc/resolv.conf a été transformé en lien au moyen de la commande (fichier /etc/resolv.conf) ci-dessus. Si la réponse est ASCII text, utilisez chattr, sinon ...

Si vous utilisez une adresse IP statique, le plus simple consiste à ajouter la ligne suivante (ou quelque chose du genre)

 dns-nameservers 8.8.4.4 8.8.8.8

à la strophe définissant les propriétés de votre interface statique dans/etc/network/interfaces.

Si vous utilisez plutôt un ordinateur portable qui se connecte tout le temps à différents réseaux, vous pouvez suivre l'excellente suggestion de LawrenceC. Mais, si vous avez resolvconf sur votre système, le moyen le plus correct (et le plus simple) de fournir un ensemble fixe de DNS consiste à utiliser les fichiers de /etc /resolvconf/resolv.conf.d. En particulier, les fichiers suivants sont utilisés (voir la page de de Stephane Graber ):

base : utilisé lorsque aucune autre donnée ne peut être trouvée

head : utilisé pour l'en-tête de resolv.conf, peut être utilisé pour s'assurer qu'un serveur DNS est toujours le premier de la liste.

tail : toute entrée dans tail est ajoutée à la fin du fichier resolv.conf obtenu.

Alors placez vos serveurs de noms favoris dans head , comme suit

  nameserver 8.8.8.8

et vous avez terminé.

14
MariusMatutiae

Ajoutez une ligne similaire à /etc/dhcp/dhclient.conf en utilisant un terminal root:

supersede domain-name-servers 74.122.198.48, 50.116.23.211;

Cela provoque dhclient, le programme qui émet une requête DHCP et effectue les modifications en fonction de la réponse, pour remplacer les informations obtenues du serveur DHCP par les informations ci-dessus avant d'effectuer les modifications.

Les éléments ci-dessus sont deux serveurs DNS OpenNIC. Remplacez au besoin pour tous les serveurs que vous souhaitez utiliser.

Comme cela se produit chaque fois que vous recevez des informations de configuration de DHCP, utilisez donc dhclient -v eth0 ou une autre interface pour l’actualiser et voir les modifications.

9
LawrenceC

Il apparaît, comme indiqué par @Rik, que la raison du remplacement DNS au redémarrage est due au gestionnaire de réseau/à l'utilitaire défini de la sorte. Dans Linux Mint, conformément à la capture d'écran, ma méthode IPv4 était définie sur les adresses automatiques (DHCP) uniquement. Vous pouvez ensuite entrer les paramètres corrects dans /etc/resolv.conf ou dans la section des serveurs DNS. Je me souviens que dans Ubuntu 13.04, mes serveurs de noms avaient changé plusieurs fois au cours d'une longue période, mais après que je les ai réellement modifiés dans l'interface graphique, tout semblait stable à partir de maintenant.

enter image description here

enter image description here

3
Rudolph

Avait le même problème, mais j'utilise une adresse IP statique. Le correctif consistait simplement à ajouter les DNS dans/etc/network/interfaces

iface eth0 inet static
    address [your ip>
    netmask [your netmask]
    network [your network]
    broadcast [your broadcast]
    gateway [your gateway]
    # dns-* options are implemented by the resolvconf package, if installed
    dns-nameservers [dns server1] [dns server2]
    dns-search [your domain]
3
kanelbolle

Si vous avez utilisé wicd, cliquez avec le bouton droit de la souris sur l’icône, puis cliquez sur informations de connexion. Lorsque la fenêtre s'ouvre, cliquez sur les propriétés de celle à laquelle vous êtes connecté.

Cochez la case Utiliser DNS statique et dans la ligne indiquant le type de serveur DNS 1, entrez l’adresse IP correspondant au 8.8.8.8 de Google DNS et, dans la ligne correspondant au serveur DNS 2, saisissez 8.8.4.4, puis cliquez sur "ok".

Si vous recevez des erreurs de valeurs par défaut, vous pouvez contacter votre fournisseur de services Internet et leur en informer. Ils attribuent généralement des serveurs DNS à votre modem lorsque vous vous connectez avec eux.

1
Yames

Traverser votre chemin avec chattr +i ou similaire est au mieux une solution rapide, et devrait être évité autant que possible (du moins à long terme - comme dit, il s'agit d'une solution à court terme jusqu'à ce que l'on trouve le temps de la vraie solution ). Comme déjà indiqué, il s’agit d’un travail pour NetworkManager, qui offre une interface de ligne de commande que nous pouvons utiliser pour cela:

 # trouve quelle interface pour régler 
 périphérique nmcli 
 # la sortie ressemble à: 
 # TYPE DE PÉRIPHÉRIQUE CONNEXION ÉTAT 
 # enp0s3 connexion Ethernet à my-office 
 # lo loopback unmanaged - 
 # À partir de là, nous avons besoin de la CONNEXION. 
 
 # Maintenant ajoutez nos "domaines de recherche": 
 nmcli connexion modifier mon-bureau ipv4.dns-search example1.com 
 module de configuration avec my-office + ipv4.dns-search example2.com 
 
 # Et nos serveurs de noms: 
 nmcli avec modification de mon bureau ipv4.dns 213.73.91.35 
 nmcli avec modification de mon bureau + ipv4.dns 87.118.100.175 
 # notez le "+" à la deuxième ligne: ajoutez-en un autre, 
 # pendant que la première ligne remplace l'entrée existante. 
 # nous aurions pu le faire avec un seul appel: 
 nmcli con modifier my-office ipv4.dns " 213.73.91.35 87.118.100.175 "
 
 # OK, disons maintenant à ignorer les mises à jour du serveur DHCP: 
 Nmcli avec modification de mon bureau ipv4.ignore-auto- dns oui 
 [._ ___.] # et appliquer les modifications à notre configuration en cours 
 nmcli con up my-office 

Si vous utilisez une adresse IP statique, vous pouvez également utiliser la solution de la réponse de de kanelbolle .

0
Izzy