A maioria das informações que vejo online diz para editar `/etc/resolv.conf', mas quaisquer alterações que eu faça lá só serão anuladas.
$ 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
Parece que a 127.0.1.1 é uma instância local do dnsmasq
. Os documentos dnsmasq' dizem para editar
/etc/resolv.conf'. Eu tentei colocar nameservers personalizados em /etc/resolv.conf.d/base
, mas as alterações não apareceram't em /etc/resolv.conf
após executar sudo resolvconf -u
.
FYI, eu não'não quero alterar o DNS por conexão, quero definir as configurações padrão de DNS para usar em todas as conexões quando não especificado de outra forma.
UPDATE:
Eu próprio respondi a esta pergunta: https://unix.stackexchange.com/a/163506/67024
Acho que é'é a melhor solução desde então:
Eu acredito que se você quiser substituir o servidor de nomes DNS você simplesmente adiciona uma linha similar a esta no seu arquivo base
em resolv.conf.d
.
$ sudo vim /etc/resolvconf/resolv.conf.d/base
Então ponha a sua lista de servidores de nomes assim:
nameserver 8.8.8.8
nameserver 8.8.4.4
Finalmente atualize o resolvconf
:
$ sudo resolvconf -u
Se você der uma olhada na página de manual para resolvconf
, ela descreve os vários arquivos em /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
Mesmo que haja's um aviso no topo do arquivo 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
este aviso está lá para que quando estes ficheiros forem construídos, o aviso acabe por funcionar no ficheiro resolv.conf
resultante que estes ficheiros serão utilizados para fazer. Então você poderia facilmente ter adicionado as linhas nameserver
que são descritas acima para o arquivo base
ao arquivo head
também.
Eu também estou interessado nesta questão e tentei a solução proposta @sim.
Para o testar, eu coloquei
nameserver 8.8.8.8
em /etc/resolvconf/resolv.conf.d/base
e
nameserver 8.8.4.4
em `/etc/resolvconf/resolv.conf.d/head'.
Depois reiniciei a rede com
sudo service network-manager restart
O resultado é que /etc/resolv.conf
se parece com
# 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 a "ferramenta de trabalho" afirma que os dnsserver são
DNS: 208.67.222.222
DNS: 208.67.220.220
que são as fornecidas pelo meu router. Por outro lado, cavar um endereço diz que
;; Query time: 28 msec
;; SERVER: 8.8.4.4#53(8.8.4.4)
Se eu estiver certo, concluo de tudo isto que
No geral, funciona, mas eu não'não acho que seja o resultado pretendido que se pede. Uma solução mais próxima, eu acho que é a seguinte. Editar
sudo vim /etc/dhcp/dhclient.conf
depois adicionar
supersede domain-name-servers 8.8.8.8;
O resultado é o seguinte: resolv.conf contém apenas 127.0.0.1, o que significa que o cache dnsmasq é invocado e o nm-tool diz
DNS: 8.8.8.8
o que significa que se o nome procurado não está no cache, então ele é solicitado no 8.8.8.8 e não no servidor fornecido pela dhcp.
Outra opção (talvez melhor) é usar "prepend" em vez de "substitua" desta forma, se o nome não for resolvido até 8.8.8.8, então o pedido cai de volta no outro servidor. Na verdade, nm-tool diz
DNS: 8.8.8.8
DNS: 208.67.222.222
DNS: 208.67.220.220