Pourquoi mon fichier resolv.conf est-il régénéré à chaque fois?

17

Mon /etc/resolv.conffichier est régénéré à chaque fois, ce qui me fait perdre les serveurs DNS Google lorsque je reconnecte mon modem 3G.

Pour modifier les paramètres DNS, j'ai consulté http://code.google.com/intl/fr-FR/speed/public-dns/docs/using.html .

Mon dhclient.confest assez grand (58 lignes), donc je l'ai posté sur pastebin .

Cependant, voici l'intégralité dhclient.confsans lignes de commentaires ou lignes vides:

option rfc3442-classless-static-routes code 121 = array of unsigned integer 8;
send host-name "<hostname>";
request subnet-mask, broadcast-address, time-offset, routers,
    domain-name, domain-name-servers, domain-search, host-name,
    netbios-name-servers, netbios-scope, interface-mtu,
    rfc3442-classless-static-routes, ntp-servers;
prepend domain-name-servers 8.8.8.8, 8.8.4.4;

J'utilise à la wvdialplace de Network Manager.

Jakh Saidlikp
la source
Malheureusement, je n'en sais rien wvdial. À ce stade, je le soupçonne ou un autre package non encore découvert est impliqué ici. Savez-vous si vous avez installé d'autres applications ou outils liés au réseau qui pourraient toucher DNS, DHCP, interfaces, etc. d'une certaine manière?
belacqua

Réponses:

6

Dans 12.04, resolvconf est installé par défaut. Voici un bref résumé de la façon d'apporter des modifications à la configuration DNS pour certains cas d'utilisation courants:

Pour une configuration statique, utilisez ifup, utilisez dns-nameserverset dns-searchsaisissez dans /etc/network/interfaces.

Pour une configuration statique à l'aide de NetworkManager, sélectionnez Automatic (DHCP) addresses only Methodet saisissez les adresses et les noms de domaine dans les champs Additional DNS serverset Additional search domainsdans l'éditeur de connexion.

Pour remplacer la configuration par défaut de resolvconf, l' utilisation base, headet taildans /etc/resolvconf/resolv.conf.d/. N'entrez que des adresses et des noms de domaine dans ces fichiers à titre temporaire, car ils appartiennent vraiment ailleurs, comme décrit ci-dessus.

La désactivation de resolvconf n'est pas recommandée, mais vous pouvez remplacer le lien symbolique /etc/resolv.confpar un fichier normal.

Pour plus d'informations, consultez le blog de Stéphane Graber .

Robie Basak
la source
4

Si tout ce que vous voulez faire est de conserver vos serveurs DNS Google dans resolv.conf, vous pouvez modifier
/etc/dhcp3/dhclient.confet ajouter:

prepend domain-name-servers 8.8.8.8;
prepend domain-name-servers 8.8.4.4;

La seule différence entre ce que vous avez et ce que je montre ici est que vous avez les deux serveurs de noms sur une seule ligne, selon les documents que vous avez mentionnés.

À moins que je manque quelque chose, votre dhclient.conf n'est pas un problème ici. À ce stade, je suppose que le problème est lié à wvdial.

Voici quelque chose à essayer, à partir d' ubuntuforums :

gksudo gedit /etc/ppp/peers/wvdial

SUPPRIMER le paramètre usepeerdns et enregistrer le fichier. Code:

gksudo gedit /etc/wvdial.conf

ajoutez ces lignes:

check DNS = no
auto DNS = no
belacqua
la source
@jgbelacqua je l'ai essayé en lignes spearated mais n'a pas fonctionné: P
Jakh Saidlikp
@Jakh Je suppose que le rapprochement des lignes de préfixe vers le haut échoue également? (Voici comment j'ai installé le mien.)
belacqua
@jgbelacqua oui j'ai essayé ça aussi;]
Jakh Saidlikp
@Jakh - avez-vous essayé de modifier la request subnet-mask, broadcast-address, time-offset, routers, domain-name, domain-name-servers, domain-search, host-name, netbios-name-servers, netbios-scope, interface-mtu, rfc3442-classless-static-routes, ntp-servers;ligne pour y supprimer les serveurs de noms?
belacqua
@jgbelacqu Pas mal, essayez-le maintenant et laissez-vous faire
Jakh Saidlikp
4

La meilleure façon de définir un serveur de noms via la CLI, sans NetworkManger, avec une adresse statique ou indépendante de la connexion est la suivante:

Installez le package resolvconf .

Courir

sudo nano /etc/resolvconf/resolv.conf.d/head

(ignorez l'avertissement effrayant. /etc/resolv.conf est généré automatiquement, donc l'avertissement est là pour qu'il soit placé dans /etc/resolv.conf lorsque /etc/resolv.conf est généré.) À la fin du fichier, ajouter

 nameserver <ip_of_nameserver>

Appuyez sur Ctrl xet répondez oui à l'enregistrement du fichier. Pour terminer, régénérez /etc/resolv.conf afin que les modifications soient appliquées dès maintenant:

 sudo resolvconf -u
Azendale
la source
Il convient d'ajouter que ce n'est généralement pas une bonne idée de mettre une adresse de serveur de noms statique dans resolv.conf. Veuillez lire /usr/share/doc/resolvconf/README.gz.
2012
0

Vous pouvez définir l' domain-name-serversoption dhclient.conf.

Adam Byrtek
la source
vérifiez sa boîte à pâte - on dirait qu'il l'a déjà.
belacqua
Merci, je ne l'ai pas remarqué. Soit dit en passant, votre solution pourrait être correcte, alors pensez à la publier comme réponse plutôt que comme commentaire.
Adam Byrtek
bonjour @adam pouvez-vous être plus clair dans un noob:] merci
Jakh Saidlikp
0

J'ai résolu le même problème avec les commandes suivantes:

echo "nameserver 212.217.0.1" >> /etc/resolvconf/resolv.conf.d/head
ln -s /etc/resolvconf/resolv.conf.d/head /etc/resolv.conf
resolvconf -u
/etc/init.d/networking restart
moha
la source
1
Vous avez peut-être résolu le problème de cette façon, mais il s'agit d'une mauvaise configuration totale. Vous avez fini par lier symétriquement /etc/resolv.conf à un fichier statique qui se trouve être l'un des fichiers de configuration de resolvconf. Si vous souhaitez désactiver resolvconf, il serait beaucoup plus simple de supprimer le lien symbolique /etc/resolv.conf et d'y placer un fichier statique.
jdthood
-1

vous avez de préférence le paquet resolvconf installé. dans ce cas, chaque fois qu'une interface apparaît, le resolv.conf est mis à jour. vous pouvez ajouter des entrées statiques en utilisant le fichier /etc/resolv.conf.tail, voir la page de manuel pour resolv.conf pour plus.

eFloh
la source
non, je n'ai pas installé ce paquet
Jakh Saidlikp
Le programme resolvconf met à jour /etc/resolv.conf, mais uniquement si /etc/resolv.conf est un lien symbolique vers ../run/resolvconf/resolv.conf. Le paquet resolvconf a été introduit parce que tant d' autres programmes piétinaient sur /etc/resolv.conf indépendamment les uns des autres, provoquant le chaos. Veuillez lire /usr/share/doc/resolvconf/README.gz. Ainsi, du fait que /etc/resolv.conf a été mis à jour, il ne s'ensuit pas (en mars 2011 lorsque la question a été posée) que resolvconf a été installé. Plus probablement, pppd réécrivait le fichier. (Depuis Ubuntu 12.04, cependant, resolvconf fait partie du système de base.)
jdthood
-1

J'ai eu exactement le même problème, le serveur DNS que mon fournisseur de téléphonie mobile fournit était plutôt médiocre, donc je voulais utiliser le DNS de Google. De plus, NetworkManager fait un très mauvais travail de gestion des connexions haut débit mobiles, wvdialc'est donc une nécessité.

Il s'avère que /etc/resolv.confc'est un lien symbolique ubuntu 12.10et peut-être même 12.04. Voici ce que j'ai fait sudo unlink /etc/resolv.confaprès cela, vous pouvez créer un nouveau resolv.confavec vimou l'éditeur de votre choix et ajouter les serveurs de noms de Google ou tout autre serveur de noms que vous préférez. Enregistrez-le et vous avez terminé.

Si vous avez peur de casser quelque chose, vous pouvez noter le lien symbolique existant en faisant un ls -la /etc/resolv.confavant unlinking.

J'espère que cela aide.

nikhil
la source
@Downvoter, prenez soin de commenter. Si ma réponse est vraiment un mauvais conseil, je me ferai un plaisir de la supprimer. Veuillez me faire savoir ce que je fais mal. Merci
nikhil