Meu servidor de DNS é 192.168.1.152
.
Esse DNS é fornecido aos clientes pelo DHCP. Os clientes Windows na minha LAN resolvem os nomes corretamente usando esse DNS, mas minha VM do Ubuntu não.
A VM está configurada com rede de ponte e está sendo fornecida adequadamente ao servidor DNS, mas meus nomes de host locais não estão sendo resolvidos pelo nslookup ou pelos navegadores.
Aqui está nslookup
um dos meus domínios locais:
# nslookup unraid.local
Server: 127.0.0.53
Address: 127.0.0.53#53
** server can't find unraid.local: SERVFAIL
Aqui está o que ele deve resolver usando meu servidor DNS:
# nslookup unraid.local 192.168.1.152
Server: 192.168.1.152
Address: 192.168.1.152#53
Name: unraid.local
Address: 192.168.1.152
/etc/resolv.conf
tem um servidor de nomes errado:
# 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
# 127.0.0.53 is the systemd-resolved stub resolver.
# run "systemd-resolve --status" to see details about the actual nameservers.
nameserver 127.0.0.53
Eu executei esse comando. Em servidores DNS, confusamente, ele especifica o servidor correto (e meu gateway padrão).
root@ubuntu:~# systemd-resolve --status
Global
DNSSEC NTA: 10.in-addr.arpa
16.172.in-addr.arpa
168.192.in-addr.arpa
17.172.in-addr.arpa
18.172.in-addr.arpa
19.172.in-addr.arpa
20.172.in-addr.arpa
21.172.in-addr.arpa
22.172.in-addr.arpa
23.172.in-addr.arpa
24.172.in-addr.arpa
25.172.in-addr.arpa
26.172.in-addr.arpa
27.172.in-addr.arpa
28.172.in-addr.arpa
29.172.in-addr.arpa
30.172.in-addr.arpa
31.172.in-addr.arpa
corp
d.f.ip6.arpa
home
internal
intranet
lan
local
private
test
Link 2 (ens33)
Current Scopes: DNS LLMNR/IPv4 LLMNR/IPv6
LLMNR setting: yes
MulticastDNS setting: no
DNSSEC setting: no
DNSSEC supported: no
DNS Servers: 192.168.1.152
192.168.1.1
Não quero "codificar" o IP do servidor DNS em um arquivo de configuração porque não poderei resolver quando mudar de rede.
Como faço para que o resolvconf e o NetworkManager configurem automaticamente o IP do servidor DHCP /etc/resolv.conf
?
fonte
Erro conhecido do systemd .
Solução temporária sem necessidade de reconfigurar se o IP do DNS mudar:
fonte
/etc/resolv.conf
vem de/run/systemd/resolve/stub-resolv.conf
que é bollox deve ser/run/systemd/resolve/resolv.conf
nota que/etc/resolv.conf
realmente não existe em ambos os casosping
funciona então?host
enslookup
resolva nomes de host de maneira diferente deping
ouwget
. Pode ser necessário procurar/etc/nsswitch.conf
uma solução.Finalmente consegui uma solução para esse problema no ubuntu 17.10. Por padrão, esta versão do Ubuntu usa
systemd-resolved
, e espero que seja estável para as próximas versões.Para usar o DNS personalizado em vez do cache resolvido pelo sistema local, faça o seguinte:
adicione novos servidores de nomes. Edite o arquivo
/etc/systemd/resolved.conf
como sudoer. Aqui eu comentei a entrada DNS e coloquei meu DNS[Resolve] DNS=10.96.0.10 8.8.8.8 8.8.4.4
cancele o link simbólico real para
/etc/resolv.conf
sudo ln -s /run/systemd/resolve/resolv.conf /etc/resolv.conf
sudo service systemd-resolved restart
sudo systemctl restart networking
E agora, se você digitar um nome fornecido pelo seu add dns, verá o registro resolvido
dig nexus.default.svc.cluster.mydomain
O último passo é atualizar a ordem da resolução em
/etc/nsswitch.conf
, colocando o dns antes do mdns4_minimalfonte
Elaborei um script que resolve o problema da Netplan que atualmente não suporta a capacidade de substituir servidores DNS e ordem de pesquisa de domínio fornecidos pelo DHCP. Ele cria o arquivo yaml do Netplan e configura o systemd-resolved para funcionar conforme o esperado.
fonte
A solução que funcionou para mim está postada aqui no meu blog
Use o editor nano para editar esses 2 arquivos
Adicione servidores DNS que você deseja usar
Em seguida, reinicie o serviço
Checagem final:
Fazer nslookup
Eu apenas usei isso e corrigi o problema no meu laptop em casa, mas em algum momento no futuro, quando estiver fora da minha rede doméstica, posso ver que isso causará problemas, porque o servidor DNS primário e secundário ainda será minha casa. servidores com seus endereços LAN.
fonte
/etc/resolv.conf
não funciona, pois o arquivo será substituído durante asystemd-resolved
reinicialização. Apenas edite/etc/systemd/resolved.conf
. Veja minha resposta aqui: askubuntu.com/questions/977243/ubuntu-17-10-disable-netplan/…O seu
/etc/resolv.conf
não é o problema.systemd-resolved
o padrão é não configurado, por isso falha em todas as pesquisas. Sinta-se à vontade para reclamar sobre Não configurado vs Um padrão razoável.Adicione manualmente servidores de nomes a
systemd-resolved
. (editando pelo comentário de Olorin abaixo para adicionarmkdir
,/etc
não corrigir o caminho/lib
, a fim de sobreviver às atualizações do sistema)Adicionar:
Então...
systemd-resolved
é inteligente, mas, desconfigurado como é, pelos mantenedores de pacotes, apenas PARECE estúpido porque os mantenedores de pacotes não acreditam em um padrão razoável. Podemos colocar 13 servidores raiz da Internet, também conhecidos como "djb way", ou 10 servidores opennic: https://pastebin.com/JBfYVVtG ou os três servidores opennic mais rápidos, conforme medido pelo namebench. Além de servidores de nomes ISP, com certeza. Além do Google, com certeza.systemd-resolved
não é o problema. Eu sou o problemafonte
/usr/lib
- eles provavelmente serão substituídos na atualização do pacote. Eu acho que um arquivo correspondente em algum lugar/etc/systemd
é o caminho a percorrer (ele já deve ter um/etc/systemd/resolved.conf
pronto para ser editado pelos administradores).No meu sistema, encontrei um link simbólico ruim:
/etc/resolv.conf
era um link simbólico que aponta para/run/systemd/resolve/stub-resolv.conf
Este arquivo contém apenas uma linha:
Como resultado, a pesquisa de DNS da rede local geralmente estava ausente.
Então, em vez disso, mudei
/etc/reolv.conf
para apontar para/run/systemd/resolve/resolv.conf
e agora funciona corretamente.
fonte
É estranho, mas a única solução que funcionou para mim no Ubuntu 18.04 foi a que encontrei aqui :
Primeiro, mude
/etc/resolv.conf
definindo o servidor de nomes desejado :Defina, por exemplo,
E então faça
Isso protege o
/etc/resolv.conf
arquivo para que ninguém possa modificá-lo, incluindo o usuário root.fonte
Eu tenho o mesmo problema. Cada reinicialização, nada será resolvido. Eu desinstalei tudo e o reinstalei cerca de 50 vezes. Simplesmente está quebrado.
então a correção é .... "basta aplicar algumas configurações toda vez que você inicializar seu PC, o que permite que 90% dos nomes de host sejam resolvidos, mas as atualizações e atualizações do wget e apt-get falharão aleatoriamente sem motivo"
cat /etc/systemd/resolved.conf
Ao usar o Ubuntu 17.10 Desktop, você deve editar o arquivo que diz NÃO EDITAR ESTE ARQUIVO BLAH BLAH BLAH
Bem, essa é a única maneira que funciona ~!
Portanto, remova o IP 127.0.0.53 como servidor de nomes e insira outro, google por exemplo. Parece que meu endereço IP de DNS real também não resolve nomes de host (embora funcione em outras 10 máquinas e dispositivos em casa), mas o Google funciona bem.
fonte