web-dev-qa-db-fra.com

resolv.conf continue à se réinitialiser par quelque chose

J'ai besoin d'aide pour comprendre pourquoi mon resolv.conf continue d'évoluer, ce qui m'empêche d'accéder à l'internet externe et uniquement au réseau local:

$ cat /etc/resolv.conf
nameserver 192.168.16.1
domain localdomain
search localdomain

Je pensais résoudre le problème en supprimant l'interface de bouclage et en ajoutant l'interface eth0 dans /etc/network/interfaces avec les instructions sur le blog de jontsai .

J'ai essayé des choses comme faire:

$ Sudo ifconfig eth0 down
$ Sudo ifconfig eth0 up
$ Sudo /etc/init.d/networking restart
$ Sudo dhclient

Et alors, les choses fonctionneraient temporairement, et le serveur de noms dans resolv.conf serait finalement rétabli.

P.S. J'ai aussi posté ceci sur buntuforums .


Edit: Au moins un autre programme que NetworkManager écrit à resolv.conf, et je le sais parce que, lorsque j'actualise NetworkManager, le fichier resolv.conf qui est généré contient un commentaire qui dit # Generated by NetworkManager, mais la version qu'il modifie en permanence ne change pas.

Donc j'essaye ceci:

while true; do echo listening; lsof | grep /etc/resolv.conf; echo sleeping; sleep 1; done


Edit 2:

Ajout de sortie de fichiers:

$ cat /etc/network/interfaces 
auto lo
iface lo inet loopback

auto eth0
iface eth0 inet dhcp

Aucun fichier tel que /etc/NetworkManager/NetworkManager.conf

$ Sudo cat /etc/NetworkManager/system-connections/Auto\ Ethernet 

[connection]
id=Auto Ethernet
uuid=#######omitted#######
type=802-3-ethernet
autoconnect=true
timestamp=1314377063

[ipv4]
method=auto
ignore-auto-routes=false
ignore-auto-dns=false
dhcp-send-hostname=false
never-default=false

[802-3-ethernet]
speed=0
duplex=full
auto-negotiate=true
mtu=0

[ipv6]
method=ignore
ignore-auto-routes=false
ignore-auto-dns=false
never-default=false
28
jontsai

Vous pouvez faire des ajouts statiques à /etc/resolv.conf. Ces ajouts pourraient remplacer les éléments ajoutés automatiquement.

Commencez par installer le package resolvconf.

Ensuite, appuyez sur Alt + F2 et exécutez gksudo nautilus. Ouvrez /etc/resolvconf/resolv.conf.d/head si vous souhaitez ajouter au début du fichier; Ouvrez /etc/resolvconf/resolv.conf.d/tail si vous voulez ajouter à la fin. Apportez vos modifications, enregistrez/fermez les fichiers, puis exécutez Sudo resolvconf -u pour appliquer les modifications.

(Désolé de ne pas me rappeler si les paramètres au début ou à la fin du fichier ont la priorité la plus élevée.)

13
Azendale

J'ai eu exactement le même problème - resolv.conf serait réécrit chaque fois que le serveur a été redémarré.

Cela a été causé par DHCP. Pour définir resolv.conf sur ce que je veux, j'ai édité /etc/dhcp/dhclient.conf et ajouté ce qui suit:

supersede domain-name "my.domain.com";
prepend domain-search "my.domain.com";

En fait, vous pouvez contrôler pas mal votre fichier resolv.conf en y apportant des modifications.

J'espère que ça aide.

8
Peter Sankauskas

(Cette réponse contient des moyens d'enquêter sur ce qui se passe. Je pourrais peut-être vous donner une solution réelle si vous utilisez ces méthodes pour rassembler et fournir plus d'informations.)

Un déclencheur possible des mises à jour apparemment spontanées de /etc/resolv.conf est le renouvellement de votre bail DHCP. Vérifiez pendant combien de temps vous obtenez des baux DHCP (cela devrait apparaître dans les journaux système, je pense dans /var/log/syslog).

Vous pouvez utiliser auditdInstall auditd pour savoir ce qui modifie le fichier. Démarrez le démon (Sudo service auditd start) et dites-lui de surveiller les modifications apportées à ce fichier:

Sudo auditctl -w /etc/resolv.conf -p w

Les journaux d'audit sont dans /var/log/audit/audit.log. Vous verrez l'heure à laquelle le fichier a été modifié et le nom du programme qui l'a modifié.

Si le package resolvconf est installé, Network Manager risque de marcher sur ses pieds. Essayez de supprimer toutes les interfaces réseau, puis arrêtez Network Manager (Sudo service network-manager stop), puis redémarrez-le.

5
Gilles

Ouvrez un terminal et tapez

Sudo chattr +i /etc/resolv.conf

le + i veille à ce que le fichier ne soit pas réinitialisé au démarrage, même par root.

Pour annuler ce qui précède

Sudo chattr -i /etc/resolv.conf

Pour plus

man chattr
4
tanmay.01

Je désactive la mise à jour de resolv.conf en créant un fichier appelé disable_make_resolv_conf dans /etc/dhcp3/dhclient-enter-hooks.d

#!/bin/sh
make_resolv_conf(){
}

Il remplace la fonction standard par le même nom que celui qui est responsable de l'actualisation resolv.conf.

3
Andrew Blake

Une autre option avec laquelle j'ai eu de la chance consiste à utiliser resolvconf.

Ajoutez toutes les entrées dans ce fichier:

/etc/resolvconf/resolv.conf.d/base

Et ils seront ajoutés au /etc/resolv.conf.

Merci à cette publication Ask Ubuntu: Comment puis-je inclure des lignes dans resolv.conf qui ne seront pas perdues au redémarrage?

3
Drew

En retard à cela mais je vais poster mon cas car il était différent de tout ce qui précède.

Dans mon cas, /etc/resolv.conf est un lien symbolique vers /var/run/NetworkManager/resolv.conf et, pour une raison quelconque, cat /etc/resolv.conf me donne l'erreur de ne pas avoir un tel fichier ou répertoire (peut-être parce qu'il est vide?)

Si je l'ouvre avec vi et que j'ajoute nameserver x.x.x.x cela fonctionne, mais il est effacé au redémarrage.

J'ai essayé de modifier /etc/network/interfaces et d'ajouter dns-nameservers x.x.x.x, de modifier /etc/dhcp/dhclient.conf et de le supprimer sous requestdomain-name-servers, également modifié prepend domain-name-servers x.x.x.x.

Le fichier binaire Resolvconf n’est pas installé, NetworkManager.conf n’avait rien de pertinent. Mais à chaque fois que j'ai redémarré la machine, il n'y avait pas de serveur de domaine.

Je ne suis pas sûr de la raison, mais cela semble être dû au fait qu'il s'agit d'une machine VBox, démarrée par GNS3 et, à cause de cela, dans les paramètres de la VBox, je dois la laisser sans interface créée. Apparemment, GNS3 crée une "interface UDP" à la volée lorsque je démarre la machine, à condition que je le lance à partir de GNS3.

Donc, pour me sauver de la recherche sans fin, je viens d'ajouter echo nameserver x.x.x.x> /etc/resolv.conf à /etc/profile, le problème est résolu (pas résolu, mais a contourné hehe). Mais il pourrait être intéressant de savoir ce qui se passe avec ce scénario si quelqu'un le rencontrait.

1
Adriano_epifas

Si vous avez le fichier /etc/NetworkManager/NetworkManager.conf

cat /etc/NetworkManager/NetworkManager.conf

vous pouvez configurer NetworkManager pour qu'il arrête de réinitialiser resolv.conf avec

Sudo sh -c 'echo "
[main]
dns=none
" >> /etc/NetworkManager/NetworkManager.conf'
cat /etc/NetworkManager/NetworkManager.conf

Maintenant, changez manuellement votre /etc/resolv.conf et testez sa permanence avec

Sudo systemctl restart NetworkManager
# Sudo service network-manager restart
cat /etc/resolv.conf

Source: https://askubuntu.com/a/623956/452398

1
adabru

Il suffit de faire des entrées dans vos fichiers ifcfg-ethX comme si

DNS1 = 192.168.X.X

DNS2 = 192.168.X.X

DOMAIN = votredomaine.com

puis le gestionnaire de réseau publiera ces enregistrements dans le fichier resolv.conf après le redémarrage des services ou le redémarrage de votre boîte.

0
user2564853