Warum wird meine resolv.conf-Datei jedes Mal neu generiert?

17

Meine /etc/resolv.confDatei wird jedes Mal neu erstellt, sodass ich beim erneuten Anschließen meines 3G-Modems die Google DNS-Server verliere.

Informationen zum Ändern der DNS-Einstellungen finden Sie unter http://code.google.com/intl/fr-FR/speed/public-dns/docs/using.html .

Meine dhclient.confist ziemlich groß (58 Zeilen), also habe ich sie auf Pastebin gepostet .

Hier ist jedoch das Ganze dhclient.confohne Kommentarzeilen oder Leerzeilen:

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;

Ich benutze wvdialanstelle von Network Manager.

Jakh Saidlikp
quelle
Leider weiß ich nichts über wvdial. An dieser Stelle vermute ich, dass es sich um ein anderes Paket handelt, das noch nicht entdeckt wurde. Wissen Sie, ob Sie andere netzwerkbezogene Anwendungen oder Tools installiert haben, die möglicherweise DNS, DHCP, Schnittstellen usw. in irgendeiner Weise berühren?
Belacqua

Antworten:

6

In 12.04 wird standardmäßig resolvconf installiert. Hier ist eine kurze Zusammenfassung, wie Sie DNS-Konfigurationsänderungen für einige häufige Anwendungsfälle vornehmen können:

Für eine statische Konfiguration ifupverwenden Sie dns-nameserversund dns-searchEinträge in /etc/network/interfaces.

Für eine statische Konfiguration mit NetworkManagerder, wählen Sie Automatic (DHCP) addresses only Methodund geben Sie Adressen und Domainnamen in den Additional DNS serversund Additional search domainsFelder im Verbindungseditor.

So überschreiben resolvconf der Standardkonfiguration, Verwendung base, headund tailin /etc/resolvconf/resolv.conf.d/. Tragen Sie in diese Dateien nur temporär Adressen und Domainnamen ein, da diese, wie oben beschrieben, wirklich woanders hingehören.

Das Deaktivieren von resolvconf wird nicht empfohlen, aber Sie können den Symlink /etc/resolv.confdurch eine reguläre Datei ersetzen .

Weitere Informationen finden Sie im Blog-Beitrag von Stéphane Graber .

Robie Basak
quelle
4

Wenn Sie lediglich Ihre Google DNS-Server in der Datei resolv.conf behalten möchten, können Sie Folgendes bearbeiten
/etc/dhcp3/dhclient.confund hinzufügen:

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

Der einzige Unterschied zwischen dem, was Sie haben und dem, was ich hier zeige, besteht darin, dass Sie gemäß den von Ihnen erwähnten Dokumenten beide Nameserver in einer einzigen Zeile haben.

Sofern ich nichts vermisse, ist Ihre dhclient.conf hier kein Problem. An dieser Stelle gehe ich davon aus, dass das Problem mit wvdial zu tun hat.

Hier ist etwas zu versuchen, von Ubuntuforums :

gksudo gedit /etc/ppp/peers/wvdial

Parameter REMOVE usepeerdns und Datei speichern. Code:

gksudo gedit /etc/wvdial.conf

füge diese Zeilen hinzu:

check DNS = no
auto DNS = no
belacqua
quelle
@jgbelacqua Ich habe es in spearated Linien versucht, aber es hat nicht funktioniert: P
Jakh Saidlikp
@Jakh Ich gehe davon aus, dass das Verschieben der vorangestellten Zeilen nach oben ebenfalls fehlschlägt. (So ​​habe ich meine eingerichtet.)
Belacqua
@ Jgbelacqua Ja, ich habe es auch versucht;]
Jakh Saidlikp
@Jakh - haben Sie versucht, die 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;Zeile zu bearbeiten , um dort Nameserver zu entfernen?
Belacqua
@jgbelacqu Keine schlechte versuchen Sie es jetzt und lassen Sie wissen
Jakh Saidlikp
4

Der beste Weg, einen Nameserver über die CLI ohne NetworkManger mit einer statischen Adresse oder unabhängig von der Verbindung einzurichten, ist folgender:

Installieren Sie das resolvconf- Paket.

Lauf

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

(Ignorieren Sie die beängstigende Warnung. /etc/resolv.conf wird automatisch generiert. Die Warnung ist also vorhanden und wird in /etc/resolv.conf abgelegt, wenn /etc/resolv.conf generiert wird.) hinzufügen

 nameserver <ip_of_nameserver>

Drücken Sie Ctrl xund antworten Sie mit Ja, um die Datei zu speichern. Generieren Sie abschließend /etc/resolv.conf neu, damit die Änderungen sofort angewendet werden:

 sudo resolvconf -u
Azendale
quelle
Es sollte hinzugefügt werden, dass es im Allgemeinen keine gute Idee ist, eine statische Nameserver-Adresse in die resolv.conf einzufügen. Bitte lesen Sie /usr/share/doc/resolvconf/README.gz.
Jdthood
0

Sie können die domain-name-serversOption dhclient.conf festlegen.

Adam Byrtek
quelle
Überprüfen Sie seinen Pastebin - sieht aus, als hätte er dies bereits.
belacqua
Danke, das habe ich nicht bemerkt. Übrigens könnte Ihre Lösung richtig sein. Sie sollten sie also als Antwort anstelle eines Kommentars veröffentlichen.
Adam Byrtek
hallo @adam kannst du bitte klarer sein im a noob:] danke
Jakh Saidlikp
0

Ich habe das gleiche Problem mit den folgenden Befehlen behoben:

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
quelle
1
Sie haben das Problem möglicherweise auf diese Weise gelöst, aber es handelt sich um eine völlige Fehlkonfiguration. Sie haben /etc/resolv.conf mit einer statischen Datei verknüpft, die zufällig eine der Konfigurationsdateien von resolvconf ist. Wenn Sie resolvconf deaktivieren möchten, ist es viel einfacher, den Symlink /etc/resolv.conf zu löschen und dort eine statische Datei abzulegen.
Jdthood
-1

Sie haben wahrscheinlich das Paket resolvconf installiert. In diesem Fall wird die resolv.conf bei jedem Aufrufen einer Schnittstelle aktualisiert. Sie können statische Einträge mithilfe der Datei /etc/resolv.conf.tail hinzufügen. Weitere Informationen finden Sie in der Manpage für resolv.conf.

eFloh
quelle
Nein, ich habe das Paket nicht installiert
Jakh Saidlikp
Das Programm resolvconf aktualisiert /etc/resolv.conf, jedoch nur, wenn /etc/resolv.conf eine symbolische Verknüpfung zu ../run/resolvconf/resolv.conf ist. Das resolvconf-Paket wurde eingeführt, weil so viele andere Programme unabhängig voneinander auf /etc/resolv.conf stapften, was zu Chaos führte. Bitte lesen Sie /usr/share/doc/resolvconf/README.gz. Aus der Tatsache, dass /etc/resolv.conf aktualisiert wurde, folgt daher nicht (im März 2011, als die Frage gestellt wurde), dass resolvconf installiert wurde. Wahrscheinlich hat pppd die Datei neu geschrieben. (Ab Ubuntu 12.04 ist jedoch resolvconf Teil des
Basissystems
-1

Ich hatte genau das gleiche Problem: Der von meinem Mobilfunkanbieter bereitgestellte DNS-Server war ziemlich schlecht, daher wollte ich Googles DNS verwenden. NetworkManager leistet auch sehr schlechte Arbeit im Umgang mit mobilen Breitbandverbindungen, daher wvdialist dies eine Notwendigkeit.

Wie sich herausstellt, /etc/resolv.confist das ein symbolischer Link ubuntu 12.10und vielleicht sogar 12.04. Hier ist, was ich getan habe, sudo unlink /etc/resolv.confnachdem Sie ein neues resolv.confmit vimoder den Editor Ihrer Wahl erstellt und die Nameserver von Google oder andere Nameserver, die Sie bevorzugen, hinzugefügt haben. Speichern Sie es und Sie sind fertig.

Wenn Sie etwas zu brechen Angst haben , können Sie eine Notiz des bestehenden Symlink machen , indem ein tun , ls -la /etc/resolv.confbevor unlinkinges.

Ich hoffe es hilft.

nikhil
quelle
@Downvoter, bitte kommentieren. Wenn meine Antwort wirklich ein schlechter Rat ist, werde ich ihn gerne löschen. Bitte lassen Sie mich wissen, was ich falsch mache. Danke
Nikhil