Eu só atualizou o registro DNS ( ns1
, ns2
, ns3.myhostingcompany.com
) para um site que eu tenho hospedado, mas eu ainda obter a página de estacionamento registro de domínio.
Gostaria de ver se o problema são os registros DNS em cache do Ubuntu. Existe uma maneira de limpar o cache DNS do Ubuntu? (se existe algo assim?)
networking
dns
Jono
fonte
fonte
/etc/hosts
. Acabei de ter certeza de que o endereço IP antigo do meu domínio estava sendo armazenado em cache, mas apenasstrace ping example.com
revelei que esqueci de remover o/etc/hosts
registro que adicionei há um tempo devido à falta de paciência para a propagação do DNS.Respostas:
Para 18.04 e superior
Veja a resposta de Mike Shultz .
Para 11.10 e abaixo
O Ubuntu não armazena em cache os registros DNS por padrão, a menos que você tenha instalado um cache DNS, não há nada para limpar.
Os registros DNS provavelmente são armazenados em cache pelos servidores DNS do seu provedor. Portanto, se você quiser verificar se as alterações feitas no DNS foram bem-sucedidas, pode interrogar um servidor DNS do serviço de hospedagem de domínio com dig:
dig -t a ns1.myhostingcompany.com @domain_registrar_dns_server
Você deseja que o Ubuntu inicie o cache do DNS, eu recomendo instalar
pdnsd
juntoresolvconf
.nscd
é de buggy e não é aconselhável.fonte
Ubuntu 17.04 e superior (18.04)
A partir do Ubuntu 17.04 em diante, systemd-resolve é usado para o DNS. Você pode liberar os caches do systemd da seguinte maneira:
fonte
sudo systemd-resolve --statistics
systemctl restart systemd-resolved.service
também funcionou em 18.04.12.04
O Ubuntu 12.04 usa o
dnsmasq
que está embutidonetwork-manager
, mas não armazena em cache o DNS, portanto não há necessidade de liberá-lo. Aqui está uma linha de amostra minhasyslog
para provar esse ponto:Também não há necessidade de nenhuma configuração de
dnsmasq
. Se você estiver executando com configurações de estoque, ele não armazenará em cache o DNS, para isso, é necessário configurá-lo explicitamente, conforme descrito neste artigo do Ubuntu .Se você quiser atualizar suas configurações, poderá desativar e, em seguida, ativar a rede ou executar
Isso reinicia
dnsmasq
porque está embutido nonetwork-manager
; verifique sesyslog
há evidências para isso.Se você estiver usando uma conexão com fio com o dhcp
network manager
, as configurações serão direcionadas diretamente do seu roteador e sua conexão será estabelecida automaticamente quando você fizer login no Ubuntu. Você pode verificar se as configurações estão corretas no seu roteador se puder acessá-lo através da interface da web e, talvez, reiniciá-lo, se necessário. Se houver um problema geral com o DNS, você pode tentar usar o Google DNS em vez do seu DNS ISP, e mais informações são detalhadas aqui .fonte
sudo service network-manager restart
fez o truque para mim com DebianObserve que o Ubuntu usa systemd-resolve a partir do 17.04 e, portanto, esta resposta não se aplica mais às versões recentes do Ubuntu. Consulte " liberar cache do DNS no Ubuntu 17.04 e superior (18.04) "
Por padrão, o DNS não é armazenado em cache no Ubuntu <17.04 (mas pode ser armazenado em cache na rede ou no aplicativo)
Para confirmar de uma forma ou de outra se
dnsmasq
está em cache, executeps ax | grep dnsmasq
e observe o comando running. Aqui está um detalhamento da minha máquina 13.10 padrão:/etc/NetworkManager/dnsmasq.d
está vazio por padrão. Portanto, não há substituições chegando e apenas verificar--cache-size=0
significa o que achamos que significa (em vez de um cache ilimitado ),man dnsmasq
mostra:Portanto, embora
dnsmasq
possa armazenar em cache o DNS, ele não está armazenando em cache a caixa. Você pode verificar sua máquina e vários diretórios de configuração para verificar se está na mesma página.Se você estiver com problemas de cache, isso provavelmente está acontecendo em um dos poucos locais:
Estou raspando o barril aqui, mas talvez você tenha instalado um servidor DNS não padrão no Ubuntu em vez de ativar o cache
dnsmasq
. Há muitos:nscd
, DJBDNSdnscache
(aka tinydns),pdns
,pdnsd
, Bind9 (e suas variantes), e mais não posso nem lembrar. Isso provavelmente será evidenciado em/etc/resolv.conf
(com a configuração em / etc / resolvconf / `para autogenizar esse arquivo). A seguir, é exibida uma consulta DNS interceptada localmente:Se você não está atingindo o 8.8.8.8 (ou o que você espera que seu servidor DNS), verifique o que está acessando. No meu caso, posso ver que isso está
dnsmasq
configurado apenas para espelhar as consultas DNS de volta para o LXC, mas no seu caso, pode estar fazendo coisas ruins em cache.Se você fez os caches listados, o processo para limpar cada um varia:
Em uma nota um pouco relacionada, consulte isso para ativar o armazenamento em cache
dnsmasq
.fonte
Para 12.04:
O Ubuntu 12.04 armazena em cache o DNS usando o dnsmasq (consulte
man dnsmasq
). Use o seguinte para limpar o cache:fonte
sudo killall -HUP dnsmasq
?pkill
vez dekill
epgrep
sudo /etc/init.d/nscd restart
http://www.ubuntugeek.com/howto-clearflush-dns-cache-in-ubuntu.html
Além disso, como nota, você pode verificar e ver se as alterações no seu DNS foram propagadas usando dig e procurando alguém que não seja o servidor DNS padrão. Neste caso, google DNS.
dig @8.8.8.8 example.com
fonte
Pessoalmente, eu usaria o OpenDNS e usaria a função de Verificação de cache para forçar uma atualização apenas para garantir que as alterações funcionem, mas você não pode garantir que elas serão atualizadas para seus usuários dentro de 48 horas.
O DNS é um animal lento. Paciência irá mantê-lo são.
fonte
Se você estiver usando o nscd:
Vale ressaltar que pode não ser o SO que está armazenando em cache. Todo mundo gosta de armazenar em cache o DNS ... Alguns testes:
Verifique se é o IP novo ou antigo. A maioria dos navegadores também armazena em cache o DNS; portanto, se você não reiniciou o Chromium ou o que quer que esteja, não deve estar vendo o mais recente.
Troque seu servidor de nomes local no /etc/resolv.conf para outro provedor, google ou level, exemplos:
E depois faça ping novamente.
Verifique se o seu roteador não está armazenando em cache o DNS de nenhuma forma. (Varia de acordo com o roteador / firmware / etc)
Finalmente, paciência. O DNS pode demorar um pouco para se propagar pela Internet.
fonte
Todas as respostas acima esqueceram uma coisa importante na resolução de nomes: geralmente os servidores DNS para os quais você solicita a resolução não são os que mantêm os registros (o servidor autoritativo). Como cada registro DNS vem com um valor de tempo de vida, que obrigará cada servidor DNS da cadeia de resolução a fazer cache durante o período de segundos mencionado por esse valor. Portanto, não apenas você pode armazenar em cache em sua máquina, mas CERTAMENTE o resultado da pesquisa de nome será armazenado em cache em algum lugar de um servidor que você não controla.
A única solução a ser notificada imediatamente sobre uma alteração no registro de nome é usar um valor TTL de 0 ao criar / atualizar a entrada no servidor de nomes autoritativo. Mas isso significa que, para cada resolução de nome, o servidor será atingido, geralmente isso não é permitido pelos registradores. Por exemplo, eles podem fornecer uma lista de valores TTL predefinidos nos quais você pode escolher.
Eu gerencio nomes de domínio diferentes e, para garantir que as alterações sejam bem aplicadas nos servidores de nomes autoritativos, estou usando uma ferramenta chamada
dnstracer
que pode mostrar o resultado da pesquisa em cada servidor a partir da raiz do DNS.Concluindo, mesmo sem nenhuma solução de cache DNS em vigor, ainda haverá um atraso entre o momento em que você altera os registros DNS e a alteração é vista em um PC. Esse atraso depende muito do TTL dos registros e do número de servidores DNS entre o PC e o servidor de nomes autorizado.
fonte
Para o ubuntu 14.04, recomendo este comando:
fonte
Eu usei o seguinte comando para liberar o cache do DNS na minha caixa do ubuntu 12.10 e funcionou fantástico.
Outro sinal útil é o SIGUSR1, que despeja um pouco de estatística no syslog ou como é observado em
man dnsmasq
:fonte
pkill
vez dekill
epgrep
No Ubuntu 16.04, eu não conseguia limpar o cache, a menos que:
fonte
Eu também encontrei contradições, mas isso: https://superuser.com/a/521562 woks para mim (Ubuntu 13.10 com atualizações mais recentes, nenhum pacote de rede especial instalado).
Em resumo, basta usar este
sudo /etc/init.d/dns-clean
fonte
Eu recomendo o openDNS, especialmente em servidores remotos do Ubuntu, aliviando muita dor ...
Como fazer isso? Bem...
insira isso ANTES da linha "request subnet-mask ..."
isso reiniciará a interface tão rapidamente que você nem perderá sua conexão SSH
verifique isto para ver se o seu novo openDNS está instalado corretamente
fonte