É /etc/resolv.conf
inútil no Ubuntu 12.04 LTS (Precise Pangolin)?
Vejo que as informações do servidor DNS estão armazenadas no NetworkManager agora. A nmcli
ferramenta de linha de comando pode listar isso para você.
Se eu quiser adicionar mais um servidor DNS , o adicionarei /etc/resolv.conf
usando a resolvconf
ajuda do pacote?
resolv.conf
PnotNP
fonte
fonte
nm-tool
, nãonmcli
.Respostas:
Se
/etc/resolv.conf
contémnameserver 127.0.0.1
, a adição de entradas para/etc/resolvconf/resolv.conf.d/tail
não fará nada de útil.Se você estiver usando o NetworkManager, adicione estaticamente os endereços do servidor de nomes por meio do indicador de rede : Editar conexões ... | Editar ... | Configurações de IPv4 | Servidores DNS adicionais .
Se você realmente deseja adicionar mais entradas
/etc/resolv.conf
, crie um/etc/resolvconf/resolv.conf.d/tail
e adicione-as lá.Como em toda versão do Ubuntu, é recomendável ler as Notas da versão do Ubuntu, disponíveis aqui:
As seções Área de trabalho e Infra-estrutura comum contêm um link para
fonte
/etc/resolvconf/resolv.conf.d/tail
arquivo ou ao uso do Network Manager? Obrigado.dns-nameservers
à sua seção eth0 em/etc/network/interfaces
./etc/resolvconf/update.d/libc
no servidor Ubuntu 14.04.1:# Set TRUNCATE_NAMESERVER_LIST_AFTER_LOOPBACK_ADDRESS=no
# to allow additional nameserver addresses to be listed in
# resolv.conf after an initial loopback address 127.* or ::1.
(configure-o/etc/default/resolvconf
como as linhas 23 e 24 do/etc/resolvconf/update.d/libc
show.Encontrei outra abordagem aqui que envolve a adição de uma linha como a abaixo
/etc/dhcp/dhclient.conf
:Da mesma forma, encontrei uma terceira abordagem aqui que envolve adicionar linhas a
/etc/network/interfaces
:Atualização: Aqui está a documentação oficial para a terceira abordagem.
fonte
third approach
é de longe a maneira mais simples de fazer isso./etc/resolvconf/resolv.conf.d/head
(depois de superar o comentário enganoso "NÃO EDITAR")Parece que você está falando sobre o pacote resolvconf.
Instale o pacote resolvconf .
Corre
A parte superior do arquivo é um aviso assustador. O arquivo /etc/resolv.conf é gerado automaticamente a partir do conteúdo deste arquivo; o aviso está lá, então ele será colocado no /etc/resolv.conf quando o /etc/resolv.conf for gerado. No final do arquivo, adicione
Pressione Ctrl xe responda sim para salvar o arquivo. Para finalizar, gere novamente o arquivo /etc/resolv.conf para que as alterações sejam aplicadas agora:
Em seguida, verifique o conteúdo do /etc/resolv.conf para ver a linha que você adicionou agora está lá. Além disso, ele ainda estará lá na próxima vez em que a máquina inicializar ou o serviço de rede for reiniciado, o que ocorrer primeiro.
fonte
Abaixo, mostrarei a melhor maneira que encontrei desde que executo o Ubuntu Server Edition e uso o ifup em vez do NetworkManager.
Na verdade, para mim, eles tornaram isso mais fácil :) colocando tudo no arquivo / etc / network / interfaces. As mesmas configurações que você escreveria para resolv.conf agora podem estar no mesmo arquivo que as configurações do adaptador de rede, como no exemplo abaixo:
Espero que isso ajude e facilite como para mim, agora podemos criar endereços IP estáticos e adicionar servidores de nomes e domínio DNS em um único arquivo :)
fonte
O meu está executando o Ubuntu Server 12.04. Fiz as seguintes alterações e reinicializei o servidor (normalmente, isso pode ser feito baixando apenas a interface de rede, ou seja,
ifdown eth0
ouifup eth0
).No arquivo
/etc/resolvconf/resolv.conf.d/base
, adicionei as seguintes entradas:Espero que o acima ajude!
fonte
Você pode usar o NetworkManager como indicado na resposta de Frank, mas se preferir editar manualmente
/etc/resolv.conf
, exclua-o (na verdade é um link simbólico) e crie um novo arquivo simples com o conteúdo desejado. Oresolvconf
utilitário apenas grava no arquivo/run/resolvconf/resolv.conf
.fonte
Nota: Esta resposta foi para uma versão diferente da pré-mesclagem da questão, com foco apenas na pré-pendência do servidor de nomes desejado.
Isso funciona antes de 12.04:
Edite
/etc/dhcp3/dhclient.conf
e adicione:prepend domain-name-servers 127.0.0.1;
(De fato, essa linha já está presente; tudo o que você precisa fazer é desmarcá-la.)
fonte
man dhclient.conf
para acessar a página do manual do dhclient. (Isto não é uma resposta à pergunta de Azendale.)resolvconf
é inútil. Estou em um servidor Linux e meu endereço IP é estático e meus servidores DNS são estáticos. Eu não precisoresolvconf
ou NetworkManager .Mantê-lo simples é minha política ao trabalhar em um servidor. Quanto menos complexidade, mais fácil será gerenciar / consertar quando as coisas quebrarem.
Então eu fiz
aptitude purge resolvconf
e manualmente me certifiquei de/etc/resolv.conf
não ser um link simbólico e apenas criei um arquivo estático. Apenas no caso de um programa tentar alterar o arquivo, eu o fizchattr +i
(imutável)/etc/resolv.conf
como precaução.fonte
A maioria dos itens acima pressupõe que você tenha um sistema original, mas a realidade geralmente é tal que você instalou diferentes clientes dhcp, desabilitou o gerenciador de rede em determinada versão anterior do Ubuntu, etc. Talvez valha a pena saber o seguinte. Eu uso o dnsmasq há um tempo, mas o desinstalei. Atualmente, meu sistema tinha o seguinte conteúdo de
/etc/resolv.conf
(que é um link simbólico/run/resolvconf/resolv.conf
no meu sistema):Não importa com que frequência eu corro
sudo resolvconf -u
ousudo dpkg-reconfigure resolvconf
não atualizou o servidor de nomes para os que eu defini no NetworkManager. As informações que o resolvconf usa no NetworkManager estavam presentes:No entanto, acontece que, se houver vários arquivos nesse diretório, esse arquivo poderá não ser usado. O culpado foi um arquivo não removido com a desinstalação do dnsmasq:
A remoção deste arquivo (e a execução
sudo resolvconf -u
posterior) resolveu meus problemas de DNS:Espero que isso ajude outras pessoas na depuração (as interações complexas entre todas essas ferramentas de rede diferentes) também. Se você usar,
resolvconf
não deixe de correrls /run/resolvconf/interfaces
para ver o que está lá.fonte
/run/resolvconf/interface/
diretório, mas meuNetworkManager
arquivo precisava de um pouco de amor. Sua resposta ajudou a resolver esse problema para mim.Acabei de excluir um link
/etc/resolv.conf
e criei um arquivo regularmente com os endereços dos servidores de nomes. Funciona, e não vejo nenhuma razão para usar essa construção bastante estranha que os desenvolvedores do Ubuntu criaram.fonte
Você pode editar a conexão "AUTO ETH0" ou qualquer que seja o nome que você usa para conectar-se ao NM. Você pode fazer isso clicando com o botão direito do mouse em NM e selecionando "Editar conexões ...". Na guia IPv4, você pode selecionar "Somente endereços automáticos (DHCP)" como o "Método" e o NM permitirá que você defina os endereços do servidor de nomes manualmente, mesmo os endereços são entregues pelo DHCP.
fonte
Adicionando meu bit à lista já longa, aqui está outra maneira (testada em 12.04):
Edite
/run/resolvconf/interface/NetworkManager
para atender às suas necessidades. Aqui está um exemplo:Então, como indicado na maioria dos outros exemplos, faça a
sudo resolvconf -u
. Agora você vai ficarresolv.conf
assim:Ainda não gosto da maneira como ele é implementado agora (parece que o Ubuntu precisa de um serviço para cada foo que faz), e preferiria um plano
resolv.conf
com certeza. Mas essa abordagem parece ser o melhor compromisso para mim até agora. O "localhost-NS" adicionado não deve doer muito.fonte
Corrigi isso alterando a ordem das fontes. Mudei o
dns
fonte antesmdns
em/etc/nsswitch.conf
:Você pode manter suas configurações e ainda usar o servidor de cache local dessa maneira.
fonte
E se:
Antes disso, use o Network Manager para alterar o endereço DNS e o método para
Em seguida, execute o comando acima e reinicie. Isso fez a solução para mim.
fonte
fonte
Essa é uma pergunta muito popular, com uma coleção de respostas possíveis padrão, todas as quais, na IMO, são bastante hacky. Eu sempre tive problemas em fazer com que o Ubuntu respeitasse as configurações de DNS que eu configurei no NetworkManager - em particular configurando servidores DNS estáticos com "somente endereços automáticos (DHCP)" - e hoje finalmente descobri o que realmente estava errado.
O problema está na interação entre resolvconf e NetworkManager. resolvconf tem esse arquivo chamado
/etc/resolvconf/interface-order
. Pelo menos nos meus sistemas, o NetworkManager não está neste arquivo (exceto que está coberto pelo * curinga no final). Então o que acontece é que o relatório mais recente do dhclient para resolverconf tem precedência sobre qualquer coisa que o NetworkManager tenha a dizer.Assim, pelo menos no meu caso, a resposta real era adicionar
no topo ou perto dele
/etc/resolvconf/interface-order
.(Sim, eu sei que muitas pessoas dizem apenas "desinstalar o resolvconf", o que me parece uma péssima idéia. Mas mais do que isso, pelo menos astuciosamente e xenial consideram o resolvconf uma parte vital do sistema [ie, ubuntu -minimal depende dele], portanto, seria difícil manter seu sistema em um estado consistente e atualizado sem o resolvconf.)
Mediante solicitação, posso fornecer mais detalhes sobre como eu descobri isso.( EDIT : aparentemente, eu não o fiz quando solicitado, desculpe. Neste ponto, não me lembro de muito mais detalhes do que o que digo a seguir :) Em poucas palavras, substituí o executável resolvconf por um invólucro de shell em torno dele que despejou seus argumentos, entrada, saída e stderr em arquivos; e adicionou set -x aos scripts de atualização do resolvconf.( EDIT : Eu posso . Dizer que o que eu quero dizer com a primeira parte é que eu usei sudo para mover o executável resolvconf real, que poderia ser encontrado usando o qual comando ou o comando tipo Em seguida, criar um shell script que, em última instância apenas executa o movido resolvconf, mas também ecoa os argumentos para algum arquivo e usa o redirecionamento de shell para enviar stdin, stdout e stderr para vários outros arquivos.Não me lembro onde estão os "scripts de atualização do resolvconf" e não posso verificar facilmente no momento. muitos geeks do Linux podem entender o que quero dizer; talvez um bom samaritano forneça ainda mais detalhes em um comentário.)
fonte
Outra maneira é definir servidores DNS específicos do docker em:
Se você não possui esse arquivo, basta criá-lo:
Fonte: https://robinwinslow.uk/2016/06/23/fix-docker-networking-dns/
Além disso, consulte: https://docs.docker.com/engine/reference/commandline/dockerd/#/daemon-configuration-file
fonte
Para alterar o DNS, siga as instruções em: https://developers.google.com/speed/public-dns/docs/using
Vá para Rede
Selecione a conexão para a qual você deseja configurar o DNS.
Para alterar as configurações de uma conexão sem fio, selecione a guia Sem fio e selecione a rede sem fio apropriada.
Clique na seta (direita) e, na janela exibida, selecione a guia Configurações IPv4 ou Configurações IPv6.
Se o método selecionado for Automático (DHCP), abra a lista suspensa e selecione Apenas endereços automáticos (DHCP). Se o método estiver definido para outra coisa, não o altere.
No campo Servidores DNS, insira os endereços IP do DNS, separados por vírgula
fonte
Adicionar DNS temporário. Edite /etc/resolv.conf.
1.Instale ou atualize o resolvconf.
2. Adicione seu servidor de nomes em /etc/resolvconf/resolv.conf.d/tail
3. Reinicie sua máquina.
fonte