Warum umgeht Chromium / etc / hosts und dnsmasq?

51

Ich verwende hostsblock zusammen mit dnsmasq unter Arch Linux, um einige Websites zu blockieren. Eine davon ist facebook.comund www.facebook.com.

Ich weiß, dass alles richtig funktioniert, da ein einfacher Ping an facebook.com(oder www.facebook.com) 127.0.0.1 zurückgibt. Wenn ich von Midori aus auf diese Websites zugreife, wird eine leere Seite zurückgegeben (dies ist ein erwartetes Verhalten, da ich den kwakd- Daemon verwende, um leere Seiten auf localhost zurückzugeben).

Nur Chromium scheint meine Sperrliste zu umgehen. Wenn ich von dort auf facebook.com zugreife, gehe ich direkt zur Facebook-Startseite.

Nachdem ich seit dem Start von Chromium alles bereinigt (Strg + Umschalt + Entf) und neu gestartet habe, erhalte ich das gewünschte Verhalten (= kann nicht auf Facebook zugreifen).

Obwohl Chromium nach einer Weile (ich bin mir nicht sicher, was dies verursacht) mein lokales DNSmasq-DNS wieder ignoriert und erfolgreich auf die Facebook-Homepage zugreift.

Ich habe etwas über das Zwischenspeichern und Vorabholen von DNS-Abfragen von Chromium gelesen, bin mir aber nicht sicher, wie ich sie deaktivieren soll.

Die Frage ist: Warum umgeht Chromium mein lokales DNS und was kann ich tun, um es zu stoppen?

thiagowfx
quelle
2
Benutzt du einen Proxy? Wenn Sie einen Proxy verwenden, werden die DNS-Anforderungen auf dem Proxy ausgeführt.
Zoredache
Nein, ich verwende keinen Proxy, hostsblock benötigt keinen.
Thiagowfx
Ich habe die Methoden der folgenden Antworten ausprobiert, aber irgendwie erhält Chromium immer noch die IP-Adressen ... Gibt es einige festverdrahtete Adressen in Chromium?
Geremia

Antworten:

41

Die meisten Referenzen zu diesem Thema sind alt. Wenn Sie eine alte Version von Chromium haben, folgen Sie der Antwort von edvinas.me .

Für aktuelle Versionen von Chromium (zu der Zeit, als dieser Beitrag geschrieben wurde: 33.), ist hier, was Sie tun sollten:

  1. Gehe zu chrome://settings
  2. Klicken Sie auf "Erweiterte Einstellungen anzeigen ..."
  3. Deaktivieren Sie das Kontrollkästchen Netzwerkaktionen vorhersagen, um die Leistung beim Laden von Seiten zu verbessern .
  4. Überprüfen Sie unter, ob der DNS-Prefetch wirklich deaktiviert ist chrome://dns. Sie sollten dort so etwas wie eine DNS-Vorauflösung sehen und die TCP-Vorverbindung ist deaktiviert. Wenn das Prefetching nicht deaktiviert ist, werden dort einige Tabellen angezeigt.

Aktualisieren

Bei neueren Chrome-Versionen (zum Zeitpunkt dieses Updates: 55.) lautet das dritte Element wie folgt: Verwenden Sie einen Vorhersagedienst, um Seiten schneller zu laden .

Referenz

thiagowfx
quelle
27

Aktualisierte Antwort

Stellen Sie sicher, dass Sie den Cache von Chrome leeren. Geben Sie dies in die Adressleiste ein:

chrome://net-internals/#dns

Klicken Sie dann auf die Clear host cacheSchaltfläche.

Alte Antwort

Chromium verwendet standardmäßig das interne DNS von Google (8.8.8.8 und 8.8.4.4).

So deaktivieren Sie es:

  1. Klicken Sie auf das Menü Extras (ein kleines Schraubenschlüsselsymbol) und gehen Sie zu Optionen.

  2. Klicken Sie auf die Registerkarte Unter der Haube.

    3. Deaktivieren Sie im Abschnitt "Datenschutz" das Kontrollkästchen "DNS-Vorabruf verwenden", um die Leistung beim Laden von Seiten zu verbessern.

    4. Klicken Sie auf die Schaltfläche Schließen.

    5. Aktualisieren Sie, um die Webseite neu zu laden.

phoops
quelle
1
Was Sie sagten, galt nur für alte Versionen von Chromium / Google Chrome. Neuere Versionen haben diese Einstellung nicht mehr (weder "Under the Hood"). Vielleicht lautet die neue Einstellung "Netzwerkaktionen vorhersagen, um die Leistung beim Laden von Seiten zu verbessern"? Leider wird hier kein DNS erwähnt, daher bin ich mir nicht sicher.
Thiagowfx
Ich habe eine Antwort zum Löschen des DNS-Cache von Chromium aktualisiert. Bitte schauen Sie, ich hoffe es hilft.
Phoops
Vielen Dank! Ihre neue Antwort ist der beste Weg, um einen aufgezeichneten DNS zu löschen (anstatt alles zu bereinigen, wie in Strg + Umschalt + Entf). Aber um das Problem dauerhaft zu beseitigen , finde ich, dass meine eigene Antwort besser passt (ich muss noch ein bisschen mehr testen, nur um sicherzugehen).
Thiagowfx
Nun, wenn Sie dies einfach deaktivieren, ohne den Cache zu leeren, wird es erst funktionieren, wenn der Cache abläuft. Nachdem der Cache geleert wurde, sollte Chromium meines Erachtens nicht in der Lage sein, die realen IPs vorab abzurufen. Auch wenn der Vorabruf aktiviert ist, werden die gesperrten Werte vorab abgerufen. Jedenfalls scheint es so, als hättest du es geklärt.
Phoops
2
"chrome: // net-internals / # dns" -> klar, funktioniert nicht.
Totty.js
2

Eine andere undurchsichtige Möglichkeit ist, dass Ihr System für die Verwendung einer automatischen Proxy * .pac-Datei eingerichtet ist. Dies ist normalerweise der Fall, wenn Sie einen Computer in einer Unternehmensumgebung erhalten haben und die * .pac-Datei Ihren Browser auffordert, einen Proxy zu verwenden, um die URL aufzulösen. Dies hat Vorrang vor Ihrer / etc / hosts-Datei. Wenn in der * .pac-Datei die Regel enthalten ist, dass PROXY zurückgegeben wird, wenn nichts übereinstimmt, scheint Chrome die Datei / etc / hosts nicht zu berücksichtigen. Dies ist normalerweise der Fall, wenn Ihre Befehlszeile wie erwartet funktioniert, z. B. dig, ping usw.

Wenn Sie andere Lösungen ausprobiert haben und diese nicht funktionieren, stellen Sie sicher, dass Sie kein von Chrome verwendetes Auto-Proxy-Setup haben.

Elijah Lynn
quelle
1
Das hat bei mir funktioniert!
MediumOne
-2

Wenn Sie VPN-Proxy-Erweiterungen für Google Chrome verwenden (z. B. Betternet ), tritt dieses Problem möglicherweise auf. Durch Deaktivieren der Erweiterung wird das Problem behoben.

bantya
quelle