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


279

A maioria das informações que vejo online diz para editar /etc/resolv.conf, mas todas as alterações que eu fizer lá 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 de 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 especificado de outra forma.

ATUALIZAR:

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

Eu acho que é a melhor solução desde:

  1. Funciona.
  2. Requer a menor quantidade de alterações e
  3. Ele ainda funciona em conjunto com o cache DNS do dnsmasq, em vez de ignorá-lo.

Melhor responder à sua pergunta, em vez de atualizar a sua pergunta eu acho ... será mais fácil encontrar a resposta certa que você deu para o seu problema
Philippe Gachoud

Parece que a maioria das respostas é orientada ao Ubuntu e muito complicada. A solução universal para usuários NetworkManager é simplesmente adicionar dns=noneem /etc/NetworkManager/NetworkManager.conf(ver detalhes na minha resposta abaixo).
Skippy le Grand Gourou

Acho que esta resposta esclarece por que o resolve.conf é substituído, então você sabe como configurá-lo.
foman 31/07

Respostas:


250

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

Exemplo

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

Em seguida, coloque sua lista de servidores de nomes da seguinte maneira:

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 abaixo /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 na parte superior 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 finalmente chegue ao resolv.confarquivo resultante que esses arquivos serão usados ​​para criar. Assim, você poderia facilmente adicionar as nameserverlinhas descritas acima para o basearquivo, ao headarquivo também.

Referências


21
Ubuntu 14.04 - quando eu coloco os servidores de nomes basee executo resolvconf -u, os servidores de nomes não foram colocados no resolv.conf - quando eu coloquei os servidores de nomes head, eles estavam
HorusKol

7
Ubuntu 14.04 - Também teve que comentar configuração definida em/run/resolvconf/interface/NetworkManager
bitsoflogic

3
tipo nslookup google.come o primeiro IP na lista deve ser o seu novo servidor de nomes, se não, você fez errado
frazras

6
Ubuntu 16.04: Funcionou se anexado /etc/resolvconf/resolv.conf.d/headapenas, não com base. Confirmado com nslookup google.com.
Acumenus 01/04/19

3
Inicialmente, você deve ter resolvconfinstalado. Você pode instalá-lo fazendo sudo apt-get install resolvconf.
precisa saber é o seguinte

79

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

Para testar, eu coloquei

nameserver 8.8.8.8

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

nameserver 8.8.4.4

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

Então eu 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, digitar um endereço informa que

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

Se estou certo, concluo de tudo isso que

  1. somente a parte "head" é ​​lida por resolvonf: a parte "base" é de alguma forma controlada pelo dnsmasq
  2. o dnsserver é realmente forçado a 8.8.4.4, independentemente do servidor fornecido pelo dhcp, MAS você perde o cache fornecido pelo dnsmasq, pois a solicitação é sempre enviada para o 8.8.4.4
  3. O dnsmasq ainda está usando APENAS o dnsserver fornecido pelo dhcp.

Em suma, funciona, mas não creio que seja o resultado pretendido. Uma solução mais próxima, acho que é 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 do dnsmasq é chamado e o nm-tool diz

DNS:             8.8.8.8

o que significa que, se o nome pesquisado 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 "prefpend" em vez de "substituir": dessa maneira, se o nome não for resolvido em 8.8.8.8, a solicitação retornará ao outro servidor. De fato, a ferramenta nm diz

DNS:             8.8.8.8    
DNS:             208.67.222.222
DNS:             208.67.220.220

4
Uma resposta muito melhor do que invadir as configurações do NS. Especialmente a opção de adicionar um servidor na frente dos servidores fornecidos pelo dhcp. Parece o equilíbrio perfeito para resolver o problema, sem criar novos!
precisa

2
Tanta clareza e pensamentos na resposta e não apenas um comando.
Izurav

3
Yo Man! "substitui servidores de nomes de domínio 8.8.8.8;" é a resposta
Jack

Vale ressaltar que a ferramenta nm foi substituída pela nmcli
Fiddy Bux 25/01

59

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

server=8.8.8.8
server=8.8.4.4

No entanto, eu não tinha um /etc/dnsmasq.confarquivo, pois ele é instalado pelo pacote dnsmasq, mas o Ubuntu vem apenas com o dnsmasq-base. Eu corri sudo apt-get install dnsmasq, editei /etc/dnsmasq.conf, então 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

4
Há uma razão para que isso seja marcado como a melhor resposta ... porque é de fato! muito obrigado! Gostaria de acrescentar que, depois de todos os passos que você mencionou, um reinício de rede pode ser necessário para que tudo funcione sem problemas (que era para mim .... sudo service network-manager restart)
Clint Eastwood

3
No Ubuntu 14.04 Server, cerca da metade do tempo, uma inicialização a frio resultaria em nenhuma conexão à Internet usando uma URL, mas um endereço IP funcionaria. Passei muito tempo tentando inutilmente corrigi-lo, desisti por meses e depois encontrei esta solução. Eu também acho que é a melhor resposta.
Nate Lockwood

É intrigante que o dnsmasq precise ser instalado. Este fato fixa o meu DNS em uma situação normal, mas quebrou totalmente a minha configuração de VPN (conexão VPN agora falhar ...)
PlasmaBinturong

22

Para situações IP estáticas, o Guia do Servidor Ubuntu diz para alterar o arquivo / etc / network / interfaces, que pode ser assim:

iface eth0 inet static
address 192.168.3.3
netmask 255.255.255.0
gateway 192.168.3.1
dns-search example.com
dns-nameservers 192.168.3.45 192.168.8.10

Você altera os IPs 192.168.3.45 192.168.8.10 para os que deseja, como 8.8.8.8

https://help.ubuntu.com/14.04/serverguide/serverguide.pdf Página 38


Isso certamente parece certo, mas como agora regenero o resolv.conf ?!
Joel Berger

3
@JoelBerger ifdown eth0; ifup eth0.
Dzamo Norton

17
  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ê receberá isso:

                  insira a descrição da imagem aqui

  4. Selecione o ipv4 nas abas

  5. Selecionar endereços apenas no método
  6. Digite seu nome DNS abaixo e salve-o

  7. Você Terminou


Eu teria que fazer isso para cada conexão de rede. No passado, você podia alterar o padrão para todas as conexões, o que eu estava procurando fazer aqui.
Seán Hayes

2
Eu te amo! essa configuração de interface do usuário salvou minha bunda da sudo e da bagunça do vim: '(
Luke

Usando o Mint (no Ubuntu 14.04) - mas também visto isso no KDE - por algum motivo, a configuração de servidores DNS no GUI Network Manager não afeta as configurações de DNS usadas em um terminal
HorusKol

2
Melhor resposta imho. No Ubuntu 14.04, obtive 2 endereços IP externos para DNS que não reconheciam clientes dentro da minha rede doméstica. Deixar o método em 'Automático (DHCP)' para a conexão com fio adicionou o endereço IP do meu roteador à lista existente. Para a conexão sem fio pela wlan0, isso não funcionou, mas o Método em 'Somente endereços automáticos (DHCP)' substituiu os endereços externos pelo IP do meu roteador, e também funcionou. Aplique alterações com sudo service network-manager restart, espere um pouco, verifique com nmcli d list | grep 'DNS\|IP-IFACE'. E execute ping no seu cliente interno pelo nome.
RolfBly

13

Uma solução rápida e suja que não foi mencionada ainda está definindo o sinalizador imutável no resolv.confarquivo logo após editá-lo.

$ sudo nano /etc/resolv.conf

Adicione isso e salve:

nameserver 8.8.8.8

Então:

$ sudo chattr +i /etc/resolv.conf

Isso deve fazer o truque. Eu também faço isso no meu sistema.


18
Sempre que sua solução envolve chattr, não é realmente uma solução.
Jeff Jirsa

1
é o que faço nos sistemas em que preciso alterar temporariamente o DNS por algum motivo e não quero modificar a configuração. Como solução permanente, eu não recomendaria.
hochl

3
"solução rápida e suja"
YouniS Bensalah 24/10

10
Isso não está sujo. Programas que destroem a configuração local porque acham que sabem melhor estão sujos.

11

Configuração de DNS no Linux

O uso do DNS no linux é feito através de um conjunto de rotinas na biblioteca C que fornece acesso ao DNS (Internet Domain Name System). O arquivo de configuração do resolvedor ( resolv.conf) contém informações que são lidas pelas rotinas do resolvedor na primeira vez em que são invocadas por um processo. Em resumo, cada processo que solicita o DNS lê /etc/resolv.confsobre a biblioteca. O NSS está em camadas e é configurado por /etc/nsswitch.conf.

A configuração de DNS do Linux está localizada no arquivo, /etc/resolv.conf MAS existem vários programas / serviços que desejam gerenciar e manipular automaticamente o arquivo de configuração de DNS em /etc/resolv.conf. Em algumas situações, você pode querer gerenciar esse arquivo sozinho. Cada programa / serviço que gerencia o DNS tem seus próprios arquivos de configuração, como /etc/dnsmasq.conf(para o serviço dnsmasq) e anexa a configuração do DNS na alteração da conexão e / ou em outros eventos ... uma solução rápida é bloquear o arquivo de configuração do DNS, chattr +i /etc/resolv.confmas isso não é recomendado em certo caso, uma solução melhor é configurar corretamente todos os programas / serviços usando o DNS como (dnsmasq / network-manager / resolvconf / etc.)

Voltando ao controle do DNS

Aqui está uma lista exaustiva de configurações para recuperar o controle do resolv.conf e evitar que ele seja sobrescrito ( como desativar / configurar o DNS de outro local que não seja o resolv.conf ). Observe que o resolvconf é um programa independente do resolv.conf, também dependendo do seu sistema / configuração, você pode não ter um ou muitos dos programas listados aqui.

1. Resolvconf:

Arquivos de configuração

cat /etc/resolvconf/resolv.conf.d/head
nameserver 8.8.4.4
cat /etc/resolvconf/resolv.conf.d/base
nameserver 8.8.4.4

Atualize a configuração

sudo resolvconf -u

Desativar resolvconf

systemctl disable --now resolvconf.service 

2. Serviço Dnsmasq:

Arquivos de configuração

cat /etc/dnsmasq.conf
server=1.1.1.1
server=8.8.4.4

Atualize a configuração

sudo systemctl restart dnsmasq.service

3. Gerenciador de Rede:

Arquivos de configuração

/etc/NetworkManager/*

Desativar DNS

$ cat /etc/NetworkManager/conf.d/no-dns.conf
[main]
dns=none

Ativar DNS

$ cat /etc/NetworkManager/conf.d/dns.conf
[main]
dns=default

[global-dns]
searches=example.com

[global-dns-domain-*]

Usar serviço resolvido

$ cat /usr/lib/NetworkManager/conf.d/resolved.conf 
[main]
dns=systemd-resolved

Use resolvconf

$ cat /usr/lib/NetworkManager/conf.d/resolvconf.conf 
[main]
rc-manager=resolvconf

Atualize a configuração

systemctl restart NetworkManager.service

4. Interfaces de rede:

Arquivos de configuração

$ cat /etc/network/interfaces
#nameservers
# or dns-search like so
# dns-search x.y 
dns-nameservers 4.4.4.4 8.8.8.8

Atualizar a configuração

reboot

5. Cliente DHCP:

Arquivos de configuração

$ cat /etc/dhcp3/dhclient.conf
supersede domain-name-servers <dns_ip_address1>,<dns_ip_address2>;

Atualizar a configuração

reboot

6. Serviço Rdnssd:

Desativar rdnssd

systemctl disable --now rdnssd.service

7. Serviço Resolvido:

Desativar resolvido

systemctl disable --now systemd-resolved.service

8. Netconfig:

Arquivos de configuração

/etc/sysconfig/network/config

Desativar netconfig

cat /etc/sysconfig/network/config
NETCONFIG_DNS_POLICY=""

Atualizar a configuração

reboot

Definindo o servidor DNS

Exemplo de uma /etc/resolv.confconfiguração

#Cloudflare
nameserver 1.0.0.1

#Google
#nameserver 8.8.8.8
#nameserver 8.8.4.4

#Cloudflare 
#nameserver 1.1.1.1

#Classic Config
#nameserver 192.168.1.1
#search lan

10

Meu problema era um pouco diferente, eu queria substituir os servidores DNS dos meus roteadores. Encontrei este link no Ubuntu: https://wiki.ubuntu.com/OverrideDNSServers

Ele diz: Se você deseja substituir as configurações de DNS fornecidas por um servidor DHCP, abra

/etc/dhcp3/dhclient.conf

e adicione a seguinte linha:

supersede domain-name-servers <dns_ip_address1>,<dns_ip_address2>;

substituindo <dns_ip_address*>itens pelo conteúdo adequado.


Esta é a resposta que resolveu meu problema.
Michael

Perfeito. Basta adicionar que você deve reiniciar a rede de serviço sudo para ativar as alterações.
Nick Triantafyllou

E se não tivermos essa dhcp3pasta? Eu tenho o Xubuntu 17.10, mudou-se /etc/dhcpsimplesmente?
PlasmaBinturong

4

Talvez esteja faltando alguma coisa, mas de acordo com as instruções de configuração em https://help.ubuntu.com/14.04/serverguide/network-configuration.html, tudo o que você faz é atualizar o seguinte. Não estou executando um proxy - apenas uma máquina protegida por um firewall e DNS local (o exemplo mostra o Google, mas defina-o como necessário).

nano /etc/network/interfaces

Padrão:

# This file...
# and how to activate...

# The loopback...
auto local
iface lo inet loopback

# The primary network interface 
auto eth0
iface eth0 inet dhcp

ATUALIZADA:

# This file...
# and how to activate...

# The loopback...
auto local
iface lo inet loopback

# The primary network interface 
#iface eth0 inet dhcp
iface eth0 inet static
address x.x.x.x
netmask 255.255.255.0
gateway x.x.x.x

#nameservers
# you may not need dns-search
# I use it because I'm running this on a Windows network 
# so its useful to have
# dns-search x.y 
dns-nameservers 4.4.4.4 8.8.8.8

Reinicie, se você puder.


3

Tente adicionar dns-nameservers XXX.XXX.XXX.Xao seu /etc/networking/interfacesarquivo.


Deixe um comentário quando votar, por favor. Este é o método fornecido no manual , página 38.
Zook

1
O manual não mencionado mostra todos os IPs em uma linha. Esta resposta parece sugerir a adição de uma linha. E por que o último número é apenas um X de largura? Eu acho que foi principalmente a escrita curta, extremamente informal e incerta, no estilo de bate-papo que conquistou os votos negativos, @Zook.
precisa

2

Algumas das respostas aqui funcionam muito bem. No entanto, eu não estava feliz com o fato de que eu tenho que ir manualmente através de arquivos de configuração apenas para definir o "bom" DNSque eu já estou recebendo ao longo DHCPcom NetworkManager.

Pesquisei um pouco e notei que o /etc/resolv.confarquivo é realmente um link e está apontando para ele /run/systemd/resolve/stub-resolv.conf. Após algumas experiências, parece que o /run/systemd/resolve/diretório contém outro arquivo chamado, resolv.confque já contém as configurações que você recebeu DHCP. Portanto, em vez de substituir / criar manualmente os arquivos de configuração /etc/, basta vincular novamente o link /etc/resolv.confpara apontar para o /run/systemd/resolve/resolv.confarquivo e tudo deve ficar bem:

# sudo ln -sf /run/systemd/resolve/resolv.conf /etc/resolv.conf

Agora você deve poder editar as configurações mesmo no Gerenciador de Rede do Gnome. :)

Não tenho certeza se isso funcionará nos ubuntu mais antigos, mas no Ubuntu 17.10.


systemd-resolve --flush-cacheaparentemente, quando executamos o arquivo vinculado original, a resposta acima restaura a funcionalidade original
hafizhanindito

1

EDIT MAIO 6,2016

Eu escrevi um script para atualizar todas as configurações das conexões do sistema no /etc/Network-Manager/system-connections/diretório A GUI que você usa para editar conexões individuais, edita um arquivo específico nesse diretório. O script atualiza todos os arquivos - apenas procura aqueles que não possuem o DNS definido com grep e o define com awk.

Como acessar esses arquivos requer sudoacesso, execute este script com sudoe depois reinicie o gerenciador de rede

#!/bin/bash
# Author: Serg Kolo
# Date: May 6, 2015
# Description: this script checks all settings for connections in 
# /etc/NetworkManager/system-connections/ , and if there's no custom
# dns set , this script sets it;
# NOTE: run sudo service network-manager restart after running this script

set -x

for file in /etc/NetworkManager/system-connections/* ; do
        grep 'dns=208.67.220.220;' "$file"  || ( awk '{print;if ($1=="[ipv4]"){getline; print "method=auto\ndns=208.67.220.
220;\nignore-auto-dns=true"}}' "$file" > .tmpfile && ( cat .tmpfile > "$file") )
done

Script em ação:

insira a descrição da imagem aqui

POST ORIGINAL Alguns usuários aqui apontaram que o DNS é de alguma forma controlado por dnsmasq. Isso é realmente verdade. Eu enfrentei um problema um pouco menor, onde não importa o quanto eu mudei headou bodyem /etc/resolvconf/resolv.conf.d, meu computador não poderia realmente acessar internado por nome de domínio - trabalhando apenas com endereços IP.

O que eu fiz foi editar o /etc/NetworkManager/NetworkManager.confarquivo. Originalmente, ela disse dns=dnsmasq, mas eu mudei para: dns=208.67.222.222. Embora desta forma, nm-toolnão mencione 208.67.222.222, eu ainda era capaz de usar nomes de domínio, não apenas endereços IP.

Aqui está como meu NetworkManager.confarquivo se parece agora:

[main]
plugins=ifupdown,keyfile,ofono
#dns=dnsmasq
dns=208.67.222.222

[ifupdown]
managed=false

NOTA: Para mais detalhes sobre o meu problema e esta solução, consulte a minha publicação no askubuntu.com .

ATUALIZAÇÃO # 1

Tendo voltado para casa da universidade hoje, descobri que não conseguia me conectar ao meu WiFi em casa. Eu li um pouco sobre man NetworkManager.confisso e constatamos que dns=in [main]é realmente uma linha para plug-ins, então line dns=dnsmasqestá realmente adicionando o plug-in dnsmasq ao NetworkManager, aparentemente.

Portanto, minha solução ainda funcionou, exatamente como eu esperava. Aqui está um trecho da página de manual:

dns=plugin1,plugin2, ... List DNS plugin names separated by ','. 

Os plug-ins DNS são usados ​​para fornecer a funcionalidade do servidor de nomes com cache local (que acelera as consultas DNS) e enviar dados DNS para os aplicativos que os utilizam.

Portanto, definindo dns=208.67.222.222eu posso ter basicamente impedido o NetworkManager de usar esse plug-in, que de outra forma usaria o servidor DNS local (o que aparentemente não funciona).


1

Existem dois métodos

Método 1

O servidor DNS a ser usado pode ser alterado atualizando o headarquivo emresolv.conf.d

$ echo 'nameserver 1.1.1.1' | sudo tee /etc/resolvconf/resolv.conf.d/base

e depois corra

$ sudo resolvconf -u

O acima irá gerar um resolv.confarquivo genérico no /etcdiretório Todos os seus pedidos de resolução serão enviados para o servidor de nomes mencionado acima. Resolvido.

No entanto, existem implicações nisso. Ao usar resolvconfpara consultar diretamente 1.1.1.1as resoluções de endereço, o poder do cache fornecido pelo dnsmasq se foi. Toda solicitação irá para1.1.1.1

Método 2

Se você não deseja que isso aconteça e use o dnsmasq para resoluções de DNS, consulte esta resposta. A resposta é simplesmente descrita aqui.

Adicione o seguinte conteúdo no /etc/dnsmasq.confarquivo.

servidor = 1.1.1.1

Em seguida, reinicie o serviço dnsmasq

$ sudo systemctl restart dnsmasq.service

As coisas vão funcionar bem. Resolvido.


0

A maneira mais fácil de alterar o DNS:

$ sudo nano /etc/network/interfaces

Se surgirem problemas, instale nano:

$ sudo apt-get install nano -y

então ..

  1. encontre isto: dns-nameservers
  2. se você não encontrar, digite-o lá
  3. Eu fiz o meu assim: dns-nameservers 199.85.126.10 199.85.127.10

Espero que esta seja a melhor maneira, eu fiz assim em um VPS a propósito.


0

na raiz:

  1. comentar dns=dnsmasqsobre/etc/NetworkManager/NetworkManager.conf
  2. adicione supersede domain-name-servers 4.2.2.1,4.2.2.3,4.2.2.5,4.2.2.4,4.2.2.1,4.2.2.2;no final de/etc/dhcp/dhclient.conf
  3. sudo service network-manager restart

O seguinte faz as alterações mostradas acima:

$ sudo sed -i 's/dns\x3Ddnsmasq/\x23dns\x3Ddnsmasq/' \
   /etc/NetworkManager/NetworkManager.conf

$ echo 'supersede domain-name-servers 4.2.2.1,4.2.2.3,4.2.2.5,4.2.2.4,4.2.2.1,4.2.2.2;' | \
   sudo tee --append /etc/dhcp/dhclient.conf

$ sudo service network-manager restart

Aguarde 7/10 segundos para concluir o processo de reinicialização, verifique sua configuração com "nslookup nist.gov". Funciona bem no Ubuntu LTS 14.04.


0

Nota: Como a maioria das respostas, esta assume o uso do NetworkManager. No entanto, diferentemente da maioria das outras respostas, ele não pressupõe o uso de resolvconf, dhclientou de qualquer outra coisa - tome cuidado para que elas possam assumir o controle (consulte a atualização).

Dado o número de visualizações desta pergunta, é incrível que essa solução de 8 caracteres ainda não tenha sido publicada: de acordo com man NetworkManager.conf,

dns: […] nenhum: o NetworkManager não modifica o resolv.conf. Isso implica rc-manager não gerenciado

Portanto, adicione

dns=none

na [main]seção /etc/NetworkManager/NetworkManager.conf, reinicie o NetworkManager e ele não será /etc/resolv.confmais modificado .

Observe que a configuração rc-manager=unmanageddeve ser equivalente a dns=none, e essa configuração, rc-manager=symlinkalém de ter /etc/resolv.confcomo um link simbólico, pode ser uma idéia melhor (leia a página de manual acima mencionada).

Atualização:

Depois que o NetworkManager parou de sobrescrever /etc/resolv.conf, imaginei que dhcpcdjá estava sendo substituído /etc/resolv.confpor um arquivo vazio inútil na inicialização. A página de manual de dhcpcd.confajudou, basta adicionar

nohook resolv.conf

no seu dhcpcd.conf(o meu está dentro /etc/dhcpcd.conf).


0

No meu servidor Linux centos7, a melhor maneira de mudar essa opção era usando

nmtui

comando que não é sugerido em nenhuma resposta aqui. Você pode editar servidores de nomes nessa ferramenta e, quando alterar as opções do gerenciador de rede desse utilitário, elas serão aplicadas automaticamente /etc/resolv.confapós a reinicialização. Aqui você pode encontrar mais informações .

Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.