Die meisten Informationen, die ich im Internet finde, sagen, ich solle /etc/resolv.conf
bearbeiten, aber alle Änderungen, die ich dort vornehme, werden einfach überschrieben.
$ cat /etc/resolv.conf
# Dynamic resolv.conf(5) file for glibc resolver(3) generated by resolvconf(8)
# DO NOT EDIT THIS FILE BY HAND --
# YOUR CHANGES WILL BE OVERWRITTEN
nameserver 127.0.1.1
Es scheint, dass 127.0.1.1 eine lokale Instanz von dnsmasq
ist. Die dnsmasq
-Dokumente sagen, dass man /etc/resolv.conf
bearbeiten soll. Ich habe versucht, benutzerdefinierte Nameserver in /etc/resolv.conf.d/base
einzutragen, aber die Änderungen tauchten nicht in /etc/resolv.conf
auf, nachdem ich sudo resolvconf -u
ausgeführt hatte.
Zu Ihrer Information: Ich möchte DNS nicht pro Verbindung ändern, sondern Standard-DNS-Einstellungen festlegen, die für alle Verbindungen verwendet werden sollen, wenn nicht anders angegeben.
UPDATE:
Ich habe diese Frage selbst beantwortet: https://unix.stackexchange.com/a/163506/67024
Ich denke, das ist die beste Lösung, denn:
Ich glaube, wenn Sie den DNS-Nameserver außer Kraft setzen wollen, fügen Sie einfach eine ähnliche Zeile wie diese in Ihre base
-Datei unter resolv.conf.d
ein.
$ sudo vim /etc/resolvconf/resolv.conf.d/base
Dann fügen Sie Ihre Nameserverliste wie folgt ein:
nameserver 8.8.8.8
nameserver 8.8.4.4
Aktualisieren Sie schließlich resolvconf
:
$ sudo resolvconf -u
Wenn Sie einen Blick auf die Manpage für resolvconf
werfen, beschreibt sie die verschiedenen Dateien unter /etc/resolvconf/resolv.conf.d/
.
/etc/resolvconf/resolv.conf.d/base
File containing basic resolver information. The lines in this
file are included in the resolver configuration file even when no
interfaces are configured.
/etc/resolvconf/resolv.conf.d/head
File to be prepended to the dynamically generated resolver
configuration file. Normally this is just a comment line.
/etc/resolvconf/resolv.conf.d/tail
File to be appended to the dynamically generated resolver
configuration file. To append nothing, make this an empty
file. This file is a good place to put a resolver options line
if one is needed, e.g.,
options inet6
Auch wenn es eine Warnung am Anfang der Datei head
gibt:
$ cat /etc/resolvconf/resolv.conf.d/head
# Dynamic resolv.conf(5) file for glibc resolver(3) generated by resolvconf(8)
# DO NOT EDIT THIS FILE BY HAND -- YOUR CHANGES WILL BE OVERWRITTEN
ist diese Warnung da, so dass, wenn diese Dateien konstruiert werden, die Warnung letztendlich ihren Weg in die resultierende resolv.conf
-Datei findet, die diese Dateien benutzt, um zu erstellen. Sie könnten also genauso gut die oben beschriebenen Nameserver'-Zeilen für die
base'-Datei auch in die `head'-Datei einfügen.
Ich bin auch an dieser Frage interessiert und habe die von @sim vorgeschlagene Lösung ausprobiert.
Um es zu testen, habe ich
nameserver 8.8.8.8
in /etc/resolvconf/resolv.conf.d/base
und
nameserver 8.8.4.4
in /etc/resolvconf/resolv.conf.d/head
Dann habe ich das Netzwerk neu gestartet mit
sudo service network-manager restart
Das Ergebnis ist, dass /etc/resolv.conf
wie folgt aussieht
# Dynamic resolv.conf(5) file for glibc resolver(3) generated by resolvconf(8)
# DO NOT EDIT THIS FILE BY HAND -- YOUR CHANGES WILL BE OVERWRITTEN
nameserver 8.8.4.4
nameserver 127.0.1.1
und nm-tool
gibt an, dass die dnsserver
DNS: 208.67.222.222
DNS: 208.67.220.220
sind, die von meinem Router bereitgestellt werden. Auf der anderen Seite sagt das Ausgraben einer Adresse, dass
;; Query time: 28 msec
;; SERVER: 8.8.4.4#53(8.8.4.4)
Wenn ich richtig liege, schließe ich aus all dem, dass
Alles in allem funktioniert es, aber ich glaube nicht, daß es das gewünschte Ergebnis ist. Eine naheliegendere Lösung ist meiner Meinung nach die folgende. bearbeiten
sudo vim /etc/dhcp/dhclient.conf
dann hinzufügen
supersede domain-name-servers 8.8.8.8;
Das Ergebnis ist das folgende: resolv.conf enthält nur 127.0.0.1, was bedeutet, dass der dnsmasq-Cache aufgerufen wird und nm-tool sagt
DNS: 8.8.8.8
was bedeutet, dass der gesuchte Name, wenn er nicht im Cache ist, bei 8.8.8.8 und nicht bei dem von dhcp bereitgestellten Server abgefragt wird.
Eine andere (vielleicht bessere) Möglichkeit ist die Verwendung von "prepend" anstelle von "supersede": Wenn der Name von 8.8.8.8 nicht aufgelöst wird, fällt die Anfrage auf den anderen Server zurück. In der Tat sagt nm-tool
DNS: 8.8.8.8
DNS: 208.67.222.222
DNS: 208.67.220.220
Versuchen Sie, dns-nameservers XXX.XXX.XXX.X
in Ihre /etc/networking/interfaces
Datei einzufügen.