Dlaczego Chromium omija / etc / hosts i dnsmasq?

51

Używam hostsblock razem z dnsmasq na Arch Linux do blokowania niektórych stron internetowych, jedną z nich jest facebook.comi www.facebook.com.

Wiem, że wszystko działa poprawnie, ponieważ proste polecenie ping do facebook.com(lub www.facebook.com) zwraca wartość 127.0.0.1. Ponadto, jeśli uzyskuję dostęp do tych stron internetowych z Midori, zwracana jest pusta strona (jest to oczekiwane zachowanie, ponieważ używam demona kwakd do zwracania pustych stron na localhost).

Tylko Chromium zdaje się ominąć moją listę bloków. Dostęp do niego z facebook.com sprawia, że ​​od razu przechodzę do strony głównej Facebooka.

Po wyczyszczeniu wszystkiego (Ctrl + Shift + Delete) od początku czasu i ponownym uruchomieniu Chromium otrzymuję pożądane zachowanie (= nie mogę uzyskać dostępu do Facebooka).

Chociaż po pewnym czasie (nie jestem do końca pewien, co to powoduje) Chromium ponownie ignoruje mój lokalny DNS DNS dnsmasq i pomyślnie uzyskuje dostęp do strony głównej Facebooka.

Przeczytałem coś o buforowaniu i pobieraniu zapytań DNS Chromium, ale nie jestem pewien, jak to wyłączyć.

Pytanie brzmi: dlaczego Chromium omija mój lokalny DNS i co mogę zrobić, aby go zatrzymać?

thiagowfx
źródło
2
Czy korzystasz z serwera proxy? Podczas korzystania z serwera proxy żądania DNS są wykonywane na serwerze proxy.
Zoredache
Nie, nie używam żadnego proxy, Hostblock go nie wymaga.
thiagowfx
Wypróbowałem metody z poniższych odpowiedzi, ale w jakiś sposób Chromium nadal uzyskuje adresy IP… Czy w Chromium są jakieś adresy przewodowe?
Geremia

Odpowiedzi:

41

Większość referencji na ten temat jest stara. Jeśli masz starą wersję Chromium, postępuj zgodnie z odpowiedzią edvinas.me .

W przypadku bieżących wersji Chromium (w momencie pisania tego postu: 33), oto, co powinieneś zrobić:

  1. Iść do chrome://settings
  2. Kliknij „Pokaż ustawienia zaawansowane ...”
  3. Odznacz pole Przewiduj działania sieciowe, aby poprawić wydajność ładowania strony .
  4. Sprawdź, czy pobieranie DNS jest naprawdę wyłączone, przechodząc do chrome://dns. Powinieneś zobaczyć coś w rodzaju wstępnej rozdzielczości DNS i wstępne połączenie TCP jest wyłączone. Jeśli pobieranie wstępne nie jest wyłączone, zobaczysz tam kilka tabel.

Aktualizacja

W przypadku nowszych wersji Chrome (w momencie aktualizacji: 55.) trzeci element ma brzmienie: Użyj usługi prognozowania, aby szybciej ładować strony .

Odniesienie

thiagowfx
źródło
27

Zaktualizowana odpowiedź

Pamiętaj, aby wyczyścić pamięć podręczną Chrome. Wpisz to w pasku adresu:

chrome://net-internals/#dns

Następnie kliknij Clear host cacheprzycisk.

Stara odpowiedź

Chromium domyślnie korzysta z wewnętrznego DNS Google (8.8.8.8 i 8.8.4.4)

Aby to wyłączyć:

  1. Kliknij menu Narzędzia (mała ikona klucza), a następnie przejdź do Opcje.

  2. Kliknij kartę Pod maską.

    3) W sekcji „Prywatność” usuń zaznaczenie pola wyboru Użyj pobierania wstępnego DNS, aby poprawić wydajność ładowania strony.

    4 Kliknij przycisk Zamknij.

    5 Odśwież, aby ponownie załadować stronę internetową.

phoops
źródło
1
To, co powiedziałeś, dotyczyłoby tylko starszych wersji Chromium / Google Chrome. Nowsze wersje nie mają już tego ustawienia (ani „Pod maską”). Może nowym ustawieniem jest „Przewidywanie działań sieciowych w celu poprawy wydajności ładowania strony”? Niestety nie wspomina o żadnym DNS, więc nie jestem pewien.
thiagowfx
Zaktualizowałem odpowiedź na temat czyszczenia pamięci podręcznej DNS Chromium. Proszę spojrzeć, mam nadzieję, że to pomoże.
phoops,
Dzięki! Twoja nowa odpowiedź jest najlepszym sposobem na wyczyszczenie zarejestrowanego DNS (zamiast czyszczenia wszystkiego jak w Ctrl + Shift + Delete). Ale aby pozbyć się problemu na stałe , myślę, że moja własna odpowiedź pasuje lepiej (wciąż muszę przetestować trochę więcej, aby się upewnić).
thiagowfx
Cóż, jeśli po prostu wyłączysz to bez czyszczenia pamięci podręcznej - nie będzie działać, dopóki pamięć podręczna nie wygaśnie. Po wyczyszczeniu pamięci podręcznej nie sądzę, aby Chromium mógł jakoś wstępnie pobrać rzeczywiste adresy IP. Nawet jeśli wstępne pobieranie jest włączone, pobierze wstępnie zablokowane wartości. W każdym razie wydaje się, że to załatwiłeś.
phoops
2
„chrome: // net-internals / # dns” -> wyczyść, nie działa.
Totty.js,
2

Inną niejasną możliwością jest to, że system jest skonfigurowany do korzystania z automatycznego pliku proxy * .pac. Zwykle dzieje się tak, jeśli komputer został uruchomiony w środowisku firmowym, a plik * .pac informuje przeglądarkę, że musi przejść przez serwer proxy w celu rozwiązania adresu URL. Ma to pierwszeństwo przed plikiem / etc / hosts i jeśli plik * .pac zawiera regułę zwracającą PROXY, jeśli nic nie pasuje, to wygląda na to, że Chrome nie honoruje / etc / hosts. Zwykle dzieje się tak, jeśli linia poleceń działa zgodnie z oczekiwaniami, np. Dig, ping itp.

Jeśli wypróbowałeś inne rozwiązania, ale one nie działają, sprawdź, czy nie masz automatycznej konfiguracji proxy, której używa Chrome.

Elijah Lynn
źródło
1
To zadziałało dla mnie!
MediumOne
-2

Jeśli używasz rozszerzeń proxy VPN dla Google Chrome (np. Betternet ), prawdopodobnie możesz napotkać ten problem. Wyłączenie rozszerzenia rozwiązuje problem.

bantya
źródło