Como defino meu DNS quando o resolv.conf está sendo substituído?

Como defino meu DNS quando o resolv.conf está sendo substituído?

A maioria das informações que vejo on-line diz para editar /etc/resolv.conf, mas quaisquer alterações que eu fizer serão substituídas.

$ 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 127.0.1.1 é uma instância local do dnsmasq. Os dnsmasqdocumentos dizem para editar /etc/resolv.conf. Tentei colocar servidores de nomes personalizados /etc/resolv.conf.d/base, mas as alterações não apareceram /etc/resolv.confapós a execução sudo resolvconf -u.

Para sua informação, não quero alterar o DNS por conexão, quero definir as configurações de DNS padrão para usar em todas as conexões quando não for especificado de outra forma.

ATUALIZAR:

Eu mesmo respondi a esta pergunta: https://unix.stackexchange.com/a/163506/67024

Acho que é a melhor solução, pois:

  1. Funciona.
  2. Requer o mínimo de mudanças e
  3. Ele ainda funciona em conjunto com o cache DNS do dnsmasq, em vez de ignorá-lo.

Responder1

Acredito que se você quiser substituir o servidor de nomes DNS, basta adicionar uma linha semelhante a esta em seu basearquivo em resolv.conf.d.

Exemplo

OBSERVAÇÃO:Antes de começarmos, certifique-se de que o seguinte pacote esteja instalado, apt install resolvconf.

$ sudo vim /etc/resolvconf/resolv.conf.d/base

Em seguida, coloque sua lista de servidores de nomes assim:

nameserver 8.8.8.8
nameserver 8.8.4.4

Finalmente atualize resolvconf:

$ sudo resolvconf -u

Se você der uma olhada na página de manual, resolvconfela 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 um aviso no topo do headarquivo:

$ 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

esse aviso existe para que, quando esses arquivos forem construídos, o aviso acabe chegando ao resolv.confarquivo resultante que esses arquivos serão usados ​​para criar. Portanto, você poderia facilmente adicionar as nameserverlinhas descritas acima para o basearquivo headtambém.

Referências

Responder2

Também estou interessado nesta questão e tentei a solução proposta @sim.

Para testar, coloquei

nameserver 8.8.8.8

dentro /etc/resolvconf/resolv.conf.d/basee

nameserver 8.8.4.4

em/etc/resolvconf/resolv.conf.d/head

Então reiniciei a rede com

sudo service network-manager restart

O resultado é que /etc/resolv.confparece

# 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-toolafirma que o dnsserver é

DNS:             208.67.222.222
DNS:             208.67.220.220

quais são os fornecidos pelo meu roteador. Por outro lado, cavar um endereço diz que

;; Query time: 28 msec
;; SERVER: 8.8.4.4#53(8.8.4.4)

Se estiver certo, concluo de tudo isto que

  1. apenas a parte “head” é lida pelo resolvonf: a parte “base” é de alguma forma controlada pelo dnsmasq
  2. o dnsserver é na verdade forçado para 8.8.4.4 independente do servidor fornecido pelo dhcp, MAS você perde o cache fornecido pelo dnsmasq, já que a solicitação é sempre enviada para 8.8.4.4
  3. O dnsmasq ainda está usando SOMENTE o dnsserver fornecido pelo dhcp.

Resumindo, funciona, mas não creio que seja o resultado pretendido. Uma solução mais próxima, creio, é a seguinte. Editar

sudo vim /etc/dhcp/dhclient.conf

então adicione

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 nm-tool diz

DNS:             8.8.8.8

o que significa que se o nome procurado não estiver no cache, ele será solicitado em 8.8.8.8 e não no servidor fornecido pelo dhcp.

Outra opção (talvez melhor) é usar "prepend" em vez de "substituir": desta forma, se o nome não for resolvido por 8.8.8.8, a solicitação volta para o outro servidor. Na verdade, nm-tool diz

DNS:             8.8.8.8    
DNS:             208.67.222.222
DNS:             208.67.220.220

Responder3

Descobri que você pode alterar os servidores de nomes dnsmasqusados ​​adicionando as seguintes linhas a /etc/dnsmasq.conf:

server=8.8.8.8
server=8.8.4.4

Eu não tinha um /etc/dnsmasq.confarquivo, pois ele é instalado pelo pacote dnsmasq, mas o Ubuntu só vem com o dnsmasq-base. Corri sudo apt-get install dnsmasq, depois editei /etc/dnsmasq.conf, depois sudo service dnsmasq restarte sudo service network-manager restart.

Corri sudo tail -n 200 /var/log/syslogpara verificar meu syslog e verificar se dnsmasqestava usando os servidores de nomes que especifiquei:

Oct 21 23:00:54 mylaptop dnsmasq[8611]: using nameserver 8.8.8.8#53
Oct 21 23:00:54 mylaptop dnsmasq[8611]: using nameserver 8.8.4.4#53

Responder4

  1. Pesquisar 'Conexão de Rede'

  2. Abra

                        insira a descrição da imagem aqui

  3. Em seguida, selecione WiFi ou Ethernet, ou o que você estiver usando, e clique em editar. Você obterá isto:

                  insira a descrição da imagem aqui

  4. Selecione ipv4 nas guias

  5. Selecione endereços apenas no método

  6. Digite seu nome DNS abaixo e salve-o

  7. Você Terminou

informação relacionada