De fleste af de oplysninger, jeg ser på nettet, siger, at jeg skal redigere /etc/resolv.conf
, men alle ændringer, jeg foretager der, bliver bare overstyret.
$ 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
Det ser ud til, at 127.0.1.1.1 er en lokal instans af dnsmasq
. I dnsmasq
-dokumentationen står der, at jeg skal redigere /etc/resolv.conf
. Jeg prøvede at sætte brugerdefinerede navneservere i /etc/resolv.conf.d/base
, men ændringerne dukkede ikke op i /etc/resolv.conf
efter at have kørt sudo resolvconf -u
.
FYI, jeg don't ønsker at ændre DNS på en per-forbindelse basis, jeg ønsker at indstille standard DNS indstillinger til brug for alle forbindelser, når ikke andet er angivet.
UPDATE:
Jeg har selv besvaret dette spørgsmål: https://unix.stackexchange.com/a/163506/67024
Jeg tror, det er den bedste løsning siden:
Jeg tror, at hvis du ønsker at tilsidesætte DNS-nameserveren, skal du blot tilføje en linje svarende til denne i din base
-fil under resolv.conf.d
.
$ sudo vim /etc/resolvconf/resolv.conf.d/base
Indsæt derefter din navneserverliste på denne måde:
nameserver 8.8.8.8
nameserver 8.8.4.4
Til sidst opdaterer du resolvconf
:
$ sudo resolvconf -u
Hvis du tager et kig på man-siden for resolvconf
beskriver den de forskellige filer under /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
Selv om der er en advarsel øverst i head
-filen:
$ 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
er denne advarsel der, så når disse filer konstrueres, vil advarslen i sidste ende være at finde i den resulterende resolv.conf
-fil, som disse filer vil blive brugt til at lave. Så du kunne lige så godt have tilføjet de nameserver
-linjer, som er beskrevet ovenfor for base
-filen, til head
-filen også.
Jeg er også interesseret i dette spørgsmål, og jeg har prøvet den foreslåede løsning @sim.
For at teste det, satte jeg
nameserver 8.8.8.8
i /etc/resolvconf/resolv.conf.d/base
og
nameserver 8.8.4.4
i /etc/resolvconf/resolv.conf.d/head
.
Derefter genstartede jeg netværket med
sudo service network-manager restart
Resultatet er, at /etc/resolv.conf
ser ud som
# 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
og nm-tool
angiver, at dnsserverne er
DNS: 208.67.222.222
DNS: 208.67.220.220
som er dem, der leveres af min router. På den anden side fortæller grave en adresse, at
;; Query time: 28 msec
;; SERVER: 8.8.4.4#53(8.8.4.4)
Hvis jeg har ret, konkluderer jeg ud fra alt dette, at
Alt i alt virker det, men jeg tror ikke, at det er det ønskede resultat, der er bedt om. En mere nærliggende løsning synes jeg er følgende. Rediger
sudo vim /etc/dhcp/dhclient.conf
og tilføj derefter
supersede domain-name-servers 8.8.8.8;
Resultatet er følgende: resolv.conf indeholder kun 127.0.0.0.1, hvilket betyder, at dnsmasq cache er påberåbt, og nm-tool siger
DNS: 8.8.8.8
hvilket betyder, at hvis det søgte navn ikke er i cachen, så bliver der spurgt efter det på 8.8.8.8.8 og ikke på den server, der er angivet af dhcp.
En anden (måske bedre) mulighed er at bruge "prepend" i stedet for "supersede": på denne måde falder anmodningen tilbage på den anden server, hvis navnet ikke bliver løst af 8.8.8.8.8. I virkeligheden siger nm-tool
DNS: 8.8.8.8
DNS: 208.67.222.222
DNS: 208.67.220.220