Por que o Chromium está ignorando / etc / hosts e dnsmasq?

51

Estou usando o hostsblock junto com o dnsmasq no Arch Linux para bloquear alguns sites, um deles é facebook.come www.facebook.com.

Eu sei que tudo está funcionando corretamente porque um simples ping para facebook.com(ou www.facebook.com) retorna 127.0.0.1. Além disso, se eu acessar esses sites a partir do Midori, uma página em branco será retornada (esse é um comportamento esperado, pois estou usando o daemon kwakd para retornar as páginas em branco no host local).

Apenas o Chromium parece ignorar minha lista de bloqueio. O acesso ao facebook.com me faz ir direto para a página inicial do facebook.

Depois de limpar tudo (Ctrl + Shift + Delete) desde o início e reiniciar o Chromium, recebo o comportamento desejado (= não consigo acessar o Facebook).

Embora, depois de um tempo (não sei exatamente o que causa isso), o Chromium ignora novamente meu DNS dnsmasq local e acessa com êxito a página inicial do facebook.

Li algo sobre o cache e a pré-busca de consultas DNS do Chromium, mas não sei como desabilitá-lo.

A pergunta é: por que o Chromium está ignorando meu DNS local e o que posso fazer para interrompê-lo?

Thiago Perrotta
fonte
2
você está usando um proxy? Quando você usa um proxy, as solicitações de DNS são executadas no proxy.
precisa
Não, não estou usando nenhum proxy, o hostsblock não exige um.
Thiago Perrotta
Tentei os métodos das respostas abaixo, mas de alguma forma o Chromium ainda está obtendo os endereços IP ... Existem alguns endereços conectados no Chromium?
Geremia 16/08

Respostas:

41

A maioria das referências sobre esse assunto é antiga. Se você possui uma versão antiga do Chromium, siga a resposta edvinas.me .

Para versões atuais do Chromium (no momento em que esta postagem foi escrita: 33º), eis o que você deve fazer:

  1. Vamos para chrome://settings
  2. Clique em "Mostrar configurações avançadas ..."
  3. Desmarque a caixa Prever ações da rede para melhorar o desempenho do carregamento da página .
  4. Verifique se a pré-busca do DNS está realmente desativada, indo para chrome://dns. Você deve ver algo como pré-resolução de DNS e pré-conexão TCP está desativada. Se a pré-busca não estiver desativada, você verá algumas tabelas lá.

Atualizar

Para versões mais recentes do Chrome (no momento desta atualização: 55), o terceiro item está redigido como: Use um serviço de previsão para carregar páginas mais rapidamente .

Referência

Thiago Perrotta
fonte
27

Resposta atualizada

Certifique-se de limpar o cache do Chrome. Digite isso na barra de endereço:

chrome://net-internals/#dns

Depois clique no Clear host cachebotão

Resposta antiga

O Chromium está usando o DNS interno do Google por padrão (8.8.8.8 e 8.8.4.4)

Para desativá-lo:

  1. Clique no menu Ferramentas (um pequeno ícone de chave inglesa) e vá para Opções.

  2. Clique na guia Under the Hood.

    3) Na seção "Privacidade", desmarque a caixa de seleção Usar a pré-busca de DNS para melhorar o desempenho do carregamento da página.

    4) Clique no botão Fechar.

    5) Atualize para recarregar a página da web.

phoops
fonte
1
O que você disse se aplicaria apenas às versões antigas do Chromium / Google Chrome. As versões mais recentes não têm mais essa configuração (nem "Under the Hood"). Talvez a nova configuração seja "Prever ações da rede para melhorar o desempenho do carregamento da página"? Infelizmente, isso não menciona nenhum DNS, então não tenho certeza.
Thiago Perrotta
Atualizei uma resposta sobre como limpar o cache DNS do Chromium. Por favor, dê uma olhada, espero que ajude.
Phoops # 2/14
Obrigado! Sua nova resposta é a melhor maneira de limpar um DNS gravado (em vez de limpar tudo como em Ctrl + Shift + Delete). Mas, para me livrar do problema permanentemente , acho que minha própria resposta se encaixa melhor (ainda preciso testar um pouco mais só para ter certeza).
Thiago Perrotta
Bem, se você simplesmente desabilitar isso sem limpar o cache - ele não funcionará até o cache expirar. Após a limpeza do cache, não acho que o Chromium possa, de alguma forma, buscar previamente os IPs reais. Mesmo se a pré-busca estiver ativada, os valores bloqueados serão pré-buscados. Enfim, pelo menos parece que você resolveu o problema.
phoops
2
"chrome: // net-internals / # dns" -> clear, não está funcionando.
Totty.js
2

Outra possibilidade obscura é que seu sistema esteja configurado para usar um arquivo proxy * .pac automático. Normalmente, esse seria o caso se você recebesse um computador em um ambiente corporativo e o arquivo * .pac estivesse dizendo ao navegador para passar por um proxy para resolver a URL. Isso tem prioridade sobre o arquivo / etc / hosts e se o arquivo * .pac tiver uma regra para retornar PROXY se nada corresponder, então o Chrome não estará honrando o / etc / hosts. Normalmente, este será o caso se sua linha de comando estiver funcionando conforme o esperado, por exemplo, dig, ping etc.

Se você tentou as outras soluções e elas não funcionam, verifique se você não possui uma configuração de proxy automático que o Chrome está usando.

Elijah Lynn
fonte
1
Isso funcionou para mim!
MediumOne 20/08/19
-2

Se você estiver usando alguma extensão de proxy VPN para o Google Chrome (como o Betternet ), é provável que encontre esse problema. Desativar a extensão resolve o problema.

bantya
fonte