Pourquoi Chromium contourne-t-il / etc / hosts et Dnsmasq?

51

J'utilise hostsblock avec dnsmasq sur Arch Linux pour bloquer certains sites, l' un d'entre eux est facebook.comet www.facebook.com.

Je sais que tout fonctionne correctement car une simple requête ping à facebook.com(ou www.facebook.com) renvoie 127.0.0.1. De plus, si j'accède à ces sites depuis Midori, une page vierge est renvoyée (il s'agit d'un comportement attendu, car j'utilise toujours le démon kwakd pour renvoyer des pages vierges sur localhost).

Seul le chrome semble contourner ma liste de blocage. Accéder à facebook.com à partir de ce site me fait aller directement à la page d'accueil de facebook.

Après avoir tout nettoyé (Ctrl + Maj + Suppr) depuis le début du temps et redémarré Chromium, j'obtiens le comportement souhaité (= impossible d'accéder à Facebook).

Bien que, après un certain temps (je ne suis pas tout à fait sûr de ce qui cause cela), Chromium ignore à nouveau mon DNS local Dnsmasq et accède avec succès à la page d'accueil de Facebook.

J'ai lu quelque chose sur la mise en cache et la pré-extraction de requêtes DNS de Chromium, mais je ne sais pas comment le désactiver.

La question est: pourquoi Chromium contourne-t-il mon DNS local et que puis-je faire pour l'arrêter?

thiagowfx
la source
2
Utilisez-vous un proxy? Lorsque vous utilisez un proxy, les demandes DNS sont effectuées sur le proxy.
Zoredache
Non, je n'utilise aucun proxy, hostsblock n'en nécessite pas.
thiagowfx
J'ai essayé les méthodes des réponses ci-dessous, mais d'une certaine manière, Chromium obtient toujours les adresses IP… Existe-t-il des adresses câblées dans Chromium?
Geremia

Réponses:

41

La majorité des références sur ce sujet sont anciennes. Si vous avez une ancienne version de Chromium, suivez la réponse sur edvinas.me .

Pour les versions actuelles de Chromium (au moment où cet article a été écrit: 33ème), voici ce que vous devez faire:

  1. Aller à chrome://settings
  2. Cliquez sur "Afficher les paramètres avancés ..."
  3. Désélectionnez les actions réseau de Predict pour améliorer les performances de chargement de page .
  4. Vérifiez si le prefetching DNS est vraiment désactivé en allant à chrome://dns. Vous devriez voir quelque chose comme la pré-résolution DNS et la pré-connexion TCP est désactivée. Si le prélecture n'est pas désactivé, vous verrez quelques tables à cet endroit.

Mise à jour

Pour les versions plus récentes de Chrome (au moment de cette mise à jour: 55ème), le troisième élément est libellé comme suit: Utilisez un service de prédiction pour charger les pages plus rapidement .

Référence

thiagowfx
la source
27

Réponse mise à jour

Assurez-vous de nettoyer le cache de Chrome. Tapez ceci dans la barre d'adresse:

chrome://net-internals/#dns

Puis cliquez sur le Clear host cachebouton.

Ancienne réponse

Chromium utilise le DNS interne de Google par défaut (8.8.8.8 et 8.8.4.4)

Pour le désactiver:

  1. Cliquez sur le menu Outils (une petite icône représentant une clé), puis allez dans Options.

  2. Cliquez sur l'onglet Sous le capot.

    3 Dans la section «Confidentialité», décochez la case Utiliser le prélecture DNS pour améliorer les performances de chargement de page.

    4 Cliquez sur le bouton Fermer.

    5 Actualisez pour recharger la page Web.

phoops
la source
1
Ce que vous avez dit ne s'appliquerait qu'aux anciennes versions de Chromium / Google Chrome. Les versions plus récentes ne disposent plus de ce paramètre (ni "Under the Hood"). Peut-être que le nouveau paramètre est "Prédire les actions réseau pour améliorer les performances de chargement de page"? Malheureusement, cela ne mentionne aucun DNS, alors je ne suis pas sûr.
thiagowfx
J'ai mis à jour une réponse sur la façon d'effacer le cache DNS de Chromium. S'il vous plaît jeter un oeil, j'espère que cela aide.
phoops
Merci! Votre nouvelle réponse est le meilleur moyen d'effacer un DNS enregistré (au lieu de tout nettoyer comme dans Ctrl + Maj + Suppr). Mais pour éliminer définitivement le problème , je pense que ma propre réponse est plus appropriée (je dois encore en tester un peu plus pour être sûr).
thiagowfx
Eh bien, si vous désactivez simplement cela sans vider le cache, cela ne fonctionnera pas tant que le cache n’est pas expiré. Une fois le cache effacé, je ne pense pas que Chromium devrait être capable de pré-extraire les adresses IP réelles. Même si la prélecture est activée, elle prélèvera les valeurs bloquées. Quoi qu'il en soit, au moins il semble que vous ayez réglé le problème.
phoops
2
"chrome: // net-internals / # dns" -> clear, ne fonctionne pas.
Totty.js
2

Une autre possibilité obscure est que votre système est configuré pour utiliser un fichier proxy * .pac automatique. Ce serait normalement le cas si vous aviez un ordinateur dans un environnement d'entreprise et que le fichier * .pac indique à votre navigateur de passer par un proxy pour résoudre l'URL. Ceci a priorité sur votre fichier / etc / hosts et si le fichier * .pac contient une règle pour renvoyer PROXY si rien ne correspond, il apparaîtra que Chrome ne respecte pas le fichier / etc / hosts. Ce sera normalement le cas si votre ligne de commande fonctionne comme prévu, par exemple dig, ping, etc.

Si vous avez essayé les autres solutions et qu'elles ne fonctionnent pas, vérifiez que vous ne disposez pas d'une configuration de proxy automatique utilisée par Chrome.

Elijah Lynn
la source
1
Cela a fonctionné pour moi!
MediumOne
-2

Si vous utilisez des extensions de proxy VPN pour Google Chrome (telles que Betternet ), vous pouvez probablement rencontrer ce problème. La désactivation de l'extension résout le problème.

Bantya
la source