La maggior parte delle informazioni che vedo online dice di modificare /etc/resolv.conf
, ma ogni modifica che faccio lì viene sovrascritta.
$ 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
Sembra che 127.0.1.1 sia un'istanza locale di dnsmasq
. I documenti di dnsmasq
dicono di modificare /etc/resolv.conf
. Ho provato a mettere i nameserver personalizzati in /etc/resolv.conf.d/base
, ma le modifiche non sono apparse in /etc/resolv.conf
dopo aver eseguito sudo resolvconf -u
.
Per tua informazione, non voglio cambiare i DNS su una base per connessione, voglio impostare le impostazioni DNS predefinite da utilizzare per tutte le connessioni quando non diversamente specificato.
AGGIORNAMENTO:
Ho risposto io stesso a questa domanda: https://unix.stackexchange.com/a/163506/67024
Penso che sia la soluzione migliore dal momento che:
Credo che se vuoi sovrascrivere il nameserver DNS devi semplicemente aggiungere una linea simile a questa nel tuo file base
sotto resolv.conf.d
.
$ sudo vim /etc/resolvconf/resolv.conf.d/base
Poi mettete la vostra lista di nameserver in questo modo:
nameserver 8.8.8.8
nameserver 8.8.4.4
Infine aggiornare resolvconf
:
$ sudo resolvconf -u
Se dai un'occhiata alla pagina man di resolvconf
, descrive i vari file sotto /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
Anche se c'è un avvertimento in cima al file head
:
$ 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
questo avvertimento è lì in modo che quando questi file sono costruiti, l'avvertimento alla fine si farà strada nel file resolv.conf
risultante che questi file saranno usati per fare. Quindi avresti potuto facilmente aggiungere le linee nameserver
che sono descritte sopra per il file base
, anche al file head
.
Sono anche interessato a questa domanda e ho provato la soluzione proposta da @sim.
Per testarla, ho messo
nameserver 8.8.8.8
in /etc/resolvconf/resolv.conf.d/base
e
nameserver 8.8.4.4
in /etc/resolvconf/resolv.conf.d/head
.
Poi ho riavviato la rete con
sudo service network-manager restart
Il risultato è che /etc/resolv.conf
appare come
# 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
e nm-tool
afferma che i dnsserver sono
DNS: 208.67.222.222
DNS: 208.67.220.220
che sono quelli forniti dal mio router. D'altra parte scavare un indirizzo dice che
;; Query time: 28 msec
;; SERVER: 8.8.4.4#53(8.8.4.4)
Se ho ragione, concludo da tutto questo che
Tutto sommato, funziona ma non credo che sia il risultato voluto richiesto. Una soluzione più vicina penso sia la seguente. Modifica
sudo vim /etc/dhcp/dhclient.conf
poi aggiungi
supersede domain-name-servers 8.8.8.8;
Il risultato è il seguente: resolv.conf contiene solo 127.0.0.1, il che significa che dnsmasq cache è invocato e nm-tool dice
DNS: 8.8.8.8
il che significa che se il nome cercato non è nella cache, allora viene richiesto all'8.8.8.8 e non al server fornito da dhcp.
Un'altra opzione (forse migliore) è usare "prepend" invece di "supersede": in questo modo, se il nome non è risolto da 8.8.8.8, allora la richiesta ricade sull'altro server. Infatti, nm-tool dice
DNS: 8.8.8.8
DNS: 208.67.222.222
DNS: 208.67.220.220