De meeste info die ik online zie zegt dat ik /etc/resolv.conf
moet aanpassen, maar alle wijzigingen die ik daar maak worden gewoon overschreven.
$ 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
Het lijkt erop dat 127.0.1.1 een lokale instantie van dnsmasq
is. De dnsmasq
docs zeggen dat ik /etc/resolv.conf
moet aanpassen. Ik heb geprobeerd om aangepaste nameservers in /etc/resolv.conf.d/base
te zetten, maar de veranderingen waren niet te zien in /etc/resolv.conf
na het uitvoeren van sudo resolvconf -u
.
FYI, ik wil DNS niet per verbinding veranderen, ik wil standaard DNS-instellingen instellen om te gebruiken voor alle verbindingen wanneer niet anders gespecificeerd.
UPDATE:
Ik heb deze vraag zelf beantwoord: https://unix.stackexchange.com/a/163506/67024
Ik denk dat het de beste oplossing is sinds:
Ik denk dat als je de DNS nameserver wilt overschrijven, je gewoon een regel als deze toevoegt in je base
bestand onder resolv.conf.d
.
$ sudo vim /etc/resolvconf/resolv.conf.d/base
Zet dan je nameserver lijst erin zoals dit:
nameserver 8.8.8.8
nameserver 8.8.4.4
Update tenslotte resolvconf
:
$ sudo resolvconf -u
Als je de man page voor resolvconf
bekijkt, worden de verschillende bestanden onder /etc/resolvconf/resolv.conf.d/
beschreven.
/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
Ook al staat er's een waarschuwing bovenaan het head
bestand:
$ 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
deze waarschuwing is er zodat wanneer deze bestanden worden geconstrueerd, de waarschuwing uiteindelijk zijn weg zal vinden in het resulterende resolv.conf
bestand dat deze bestanden zullen gebruiken om te maken. Dus je had net zo goed de nameserver
regels die hierboven zijn beschreven voor het base
bestand, ook aan het head
bestand kunnen toevoegen.
Ik ben ook geïnteresseerd in deze vraag en ik probeerde de oplossing die @sim voorstelde.
Om het te testen, zet ik
nameserver 8.8.8.8
in /etc/resolvconf/resolv.conf.d/base
en
nameserver 8.8.4.4
in /etc/resolvconf/resolv.conf.d/head
Daarna herstartte ik het netwerk met
sudo service network-manager restart
Het resultaat is dat /etc/resolv.conf
er als volgt uitziet
# 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
en nm-tool
zegt dat de dnsserver
DNS: 208.67.222.222
DNS: 208.67.220.220
die door mijn router worden geleverd. Aan de andere kant vertelt het graven van een adres dat
;; Query time: 28 msec
;; SERVER: 8.8.4.4#53(8.8.4.4)
Als ik gelijk heb, concludeer ik uit dit alles dat
Al met al werkt het, maar ik denk niet dat dit het beoogde resultaat is waarnaar gevraagd werd. Een meer dichtbije oplossing is denk ik het volgende. Bewerk
sudo vim /etc/dhcp/dhclient.conf
en voeg dan toe
supersede domain-name-servers 8.8.8.8;
Het resultaat is het volgende: resolv.conf bevat alleen 127.0.0.1, wat betekent dat dnsmasq cache wordt aangeroepen en nm-tool zegt
DNS: 8.8.8.8
wat betekent dat als de gezochte naam niet in de cache staat, deze wordt opgevraagd bij 8.8.8.8 en niet bij de server die door dhcp is opgegeven.
Een andere (misschien betere) optie is om "prepend" te gebruiken in plaats van "supersede": op deze manier, als de naam niet wordt opgelost door 8.8.8.8, dan valt het verzoek terug op de andere server. In feite zegt nm-tool
DNS: 8.8.8.8
DNS: 208.67.222.222
DNS: 208.67.220.220