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
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.)
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.
(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 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.
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
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
.
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?
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 request
domain-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.
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
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.