Sua experiência de navegação na Internet está lenta no seu dispositivo Linux, ou os sites que você está visitando completamente ou o site errado? Vamos discutir a descarga do cache do DNS no Linux e como saber se você realmente precisa.
O que são caches DNS?
Seu computador está usando um cache DNS local?
Revisando seu cache DNS
Como limpar o cache do DNS no Linux
Como lavar o cache Dnsmasq no Linux
Corado, com sucesso
O que são caches DNS?
O Serviço de nome de domínio é o pouco de mágica que converte nomes em números. É necessário nomes de rede de dispositivos e nomes de sites e procuram seus endereços IP. A rede pode usar o endereço IP para rotear corretamente o tráfego para esses dispositivos ou sites.
Essas pesquisas, conhecidas como solicitações de , Assim, Não acontece instantaneamente . Há um pequeno período de tempo finito envolvido. As solicitações de DNS da Internet podem exigir servidores DNS precursores de consulta, servidores de nomes root, servidores de domínio de nível superior e servidores de nome autorizados. As solicitações de DNS são rápidas, mas para torná -las mais rápidas, as respostas para solicitações recentes de DNS são armazenadas em cache nos servidores precursores do DNS.
Se a resposta para uma solicitação DNS for encontrada no cache do servidor precursor, nenhum servidor adicional precisará ser contatado. A resposta é enviada de volta do cache do servidor precursor. Da mesma forma, um pequeno cache é mantido pelo seu roteador de banda larga em casa. Se você solicitar um dispositivo de rede local usando o nome do dispositivo de rede, seu roteador fornecerá o endereço IP. Também pode cache as respostas que recebeu de servidores DNS externos.
Geralmente, redes e computadores Linux são configurados para usar serviços DNS externos, fornecidos pelo seu provedor de serviços de Internet ou por um serviço gratuito, como Opendns ou Google DNS . Existem boas razões para Algumas pessoas administram seu próprio servidor DNS , mas a maioria de nós não. No entanto, seu computador Linux - mesmo que não esteja executando um servidor DNS -, opcionalmente, pode cache os resultados do DNS.
O problema com o uso de dados em cache é que tudo se baseia na suposição de que nenhum dos detalhes em cache foi alterado desde que foram armazenados em cache. Se os detalhes foram alterados, as informações que você receberão estarão desatualizadas.
Se uma entrada de cache ou todo o cache se tornarem corruptos, você receberá um desempenho esquisito, na melhor das hipóteses, e as vulnerabilidades de segurança na pior das hipóteses. É aí que você deseja investigar "Flushing" ou limpar o cache do DNS.
Seu computador está usando um cache DNS local?
Alguns de nossos computadores de teste tiveram os caches DNS locais ligados e outros o desligou. Estava fora do nosso Manjaro 21 computador, mas foi ativado por padrão em Fedora 37 e Ubuntu 22.10 .
Para determinar se o seu computador Linux está em cache de solicitações DNS, use o
está ativo
opção do
SystemCtl
comando. O daemon que gerencia o cache do DNS é o gerenciador de resolução de nomes de rede do Systemd, conhecido como
Systemd resolvido
.
Se a resposta estiver "ativa", o cache do DNS estará ocorrendo. Se a resposta estiver "inativa", não é. Neste computador em particular, ele está ativo. Podemos usar o
Resolvectl
Comando com a opção de estatística para ver quantos registros estão no cache.
Podemos ver que existem 330 entradas no cache DNS deste computador.
Revisando seu cache DNS
Revendo as entradas de cache do DNS não é um pré -requisito para lavar o cache e, se você não tem interesse em fazê -lo, pode pule este passo inteiro . Às vezes, porém, pode ser informativo. Você pode ver entradas embaralhadas que indicam corrupção ou podem ver mensagens de erro relacionadas aos problemas de abordagem do dispositivo em sua rede.
Agora, não há uma maneira direta de ver essas entradas. Podemos fazer isso, mas precisamos ser um pouco criativos.
USR1
, ou
sinal definido pelo usuário número um
, é um
sinal
que pode ser enviado pelo
matar
e
Mate todos
comandos. Este sinal não tem significado predefinido. Os aplicativos são gratuitos para ignorar esse sinal ou reagir da maneira que os desenvolvedores implementaram.
O
Systemd resolvido
Daemon reage a
USR1
escrevendo seu cache para os logs do sistema. Podemos então usar o
JournalCtl
comando para filtrar as entradas do DNS.
Vamos usar o
Mate todos
comando com
USR1
Para enviar o sinal para o
Systemd resolvido
Daemon. Observe que, embora estejamos usando o
Mate todos
comando, o
Systemd resolvido
Daemon continua a correr. Este não é um sinal de rescisão que estamos enviando.
Agora vamos usar o
JournalCtl
comando com o
-você
(filtrar por
Systemd
opção) opção para extrair as entradas de log que foram geradas por
Systemd resolvido
. Vamos redirecionar essa saída para um arquivo de texto chamado "dns.txt".
Vamos usar
o
menos
Visualizador de arquivo
Para visualizar o conteúdo do arquivo.
Você poderá encontrar os mapeamentos em cache entre os nomes de domínio e Endereços IP rolando e pesquisando o texto.
Podemos ver uma entrada para o Google que possui um endereço IP de 216.58.212.196. Você pode verificar isso colocando o endereço IP em um navegador da Web. Você deve ver a página inicial da pesquisa do Google.
Como limpar o cache do DNS no Linux
A lavagem do cache remove todas as entradas e inicia o processo de coleta mais uma vez. Se houver algum, isso remove à força entradas incorretas e corruptas do cache.
O comando é simples; nós usamos
Resolvectl
com o
Caches de descarga
opção.
Retornamos silenciosamente à linha de comando. Para confirmar que algo realmente aconteceu, verificaremos as estatísticas do cache do DNS novamente.
Podemos ver que o tamanho do cache é derrubado para zero. Aumentará com o tempo ao acumular novas entradas.
Como lavar o cache Dnsmasq no Linux
O
Dnsmasq
O aplicativo fornece um cache DNS e um servidor DHCP. É popular entre os usuários que desejam executar seu próprio servidor DNS, especialmente em
Instalações não-sistemas
.
Lavando o
Dnsmasq
O cache DNS é fácil. Precisamos enviar o
Sighup
sinal, que diz ao
Dnsmasq
Daemon para reinicializar efetivamente. Fazer isso limpa seu cache DNS. Para enviar o sinal, usamos o
Mate todos
comando com o
-Hup
bandeira e o nome do aplicativo.
Corado, com sucesso
Obviamente, se o seu computador não estiver em cache, não há nada que você precise verificar.
Se estiver em cache de solicitações DNS, mas tudo está funcionando bem, você também pode ignorá -lo. Mas se você estiver experimentando atualizações de página lenta ou esporádica quando está navegando na Web ou vendo as páginas da Web erradas, provavelmente é um bom momento para limpar seu cache do DNS.