Чому хром обходить / etc / hosts та dnsmasq?


51

Я використовую hostsblock разом з dnsmasq в Arch Linux для блокування деяких веб-сайтів, одним з них є facebook.comі www.facebook.com.

Я знаю, що все працює належним чином, оскільки простий ping facebook.com(або www.facebook.com) повертає 127.0.0.1. Крім того, якщо я отримую доступ до цих веб-сайтів від Midori, повертається порожня сторінка (це очікувана поведінка, оскільки я альго використовую демон kwakd для повернення порожніх сторінок на localhost).

Здається, лише Chromium обійшов мій список блоку. Доступ до facebook.com з нього змушує мене перейти безпосередньо на головну сторінку facebook.

Очистивши все (Ctrl + Shift + Delete) з початку часу та перезапустивши Chromium, я отримую потрібну поведінку (= не можу отримати доступ до Facebook).

Хоча через деякий час (я не зовсім впевнений, що це спричиняє), Chromium знову ігнорує мій локальний DNSmasq DNS і успішно отримує доступ до домашньої сторінки facebook.

Я прочитав щось про кешування та попереднє завантаження DNS-запитів Chromium, але не знаю, як його відключити.

Питання: чому Chromium обходить мій локальний DNS і що я можу зробити, щоб зупинити його?


2
Ви використовуєте проксі? Коли ви використовуєте проксі, запити DNS виконуються на проксі.
Зоредаче

Ні, я не використовую жодного проксі, хост-блок не вимагає цього.
thiagowfx

Я спробував способи відповідей нижче, але якимось чином Chromium все ще отримує IP-адреси ... Чи є кілька провідних адрес у Chromium?
Геремія

Відповіді:


41

Більшість посилань на цю тему є старими. Якщо у вас є стара версія Chromium, дотримуйтесь відповіді edvinas.me .

Для поточних версій Chromium (на той час було написано це повідомлення: 33-й), ось що вам потрібно зробити:

  1. Йти до chrome://settings
  2. Натисніть "Показати розширені налаштування ..."
  3. Зніміть позначку для прогнозування мережевих дій, щоб поліпшити поле завантаження сторінки .
  4. Перевірте, чи дійсно попереднє завантаження DNS вимкнено chrome://dns. Ви повинні побачити щось на зразок попередньої роздільної здатності DNS, а попереднє з'єднання TCP відключено. Якщо попереднє завантаження не вимкнено, ви побачите там деякі таблиці.

Оновлення

Для новіших версій Chrome (на момент оновлення: 55-й) третій елемент формулюється як: Використовуйте службу передбачення, щоб швидше завантажувати сторінки .

Довідково


27

Оновлений відповідь

Обов’язково очистіть кеш Chrome. Введіть це в адресний рядок:

chrome://net-internals/#dns

Потім натисніть Clear host cacheкнопку.

Стара відповідь

Chromium використовує внутрішній DNS Google за замовчуванням (8.8.8.8 та 8.8.4.4)

Щоб вимкнути це:

  1. Клацніть на меню Інструменти (невеликий значок гайкового ключа), потім перейдіть до Опції.

  2. Перейдіть на вкладку Під капотом.

    3. У розділі «Конфіденційність» зніміть прапорець прапорець Використовувати попередній вибір DNS для покращення продуктивності завантаження сторінки.

    4. Натисніть кнопку Закрити.

    5. Оновіть, щоб перезавантажити веб-сторінку.


1
Те, що ви сказали, стосуватиметься лише старих версій Chromium / Google Chrome. Новіші версії вже не мають цього налаштування (ні "Під капотом"). Можливо, нове налаштування - "Передбачити дії в мережі для покращення продуктивності завантаження сторінки"? На жаль, це не згадує жодного DNS, тому я не впевнений.
thiagowfx

Я оновив відповідь про те, як очистити кеш-пам'ять DNS Chromium. Погляньте, будь ласка, сподіваюся, що це допоможе.
foops

Дякую! Ваша нова відповідь - найкращий спосіб очистити записаний DNS (замість того, щоб очистити все, як у Ctrl + Shift + Delete). Але щоб назавжди позбутися проблеми , я вважаю, що моя власна відповідь підходить краще (мені ще доведеться перевірити трохи більше, щоб бути впевненим).
thiagowfx

Добре, якщо ви просто відключите це, не очищаючи кеш - він не працюватиме, поки кеш не закінчиться. Після очищення кеша я не думаю, що Chromium повинен якось попередньо отримати реальні IP-адреси. Навіть якщо попередній збір включений, він попередньо вибере заблоковані значення. У всякому разі, принаймні, здається, ти це розібрав.
phoops

2
"chrome: // net-Internals / # dns" -> ясно, не працює.
Totty.js

2

Ще одна незрозуміла можливість полягає в тому, що ваша система налаштована на використання автоматичного проксі * .pac-файлу. Як правило, це стосується випадку, якщо вам видали комп'ютер у корпоративному середовищі, а файл * .pac повідомляє вашому браузеру пройти проксі-сервер для вирішення URL-адреси. Це має пріоритет над вашим файлом / etc / hosts, і якщо у файлу * .pac в ньому є правило повертати PROXY, якщо нічого не відповідає, виявиться, що Chrome не шанує / etc / hosts. Це, як правило, у випадку, якщо ваш командний рядок працює так, як очікувалося, наприклад, викопати, ping тощо.

Якщо ви спробували інші рішення, і вони не працюють, перевірте, чи немає у вас налаштування автоматичного проксі, який використовує Chrome.


1
Це працювало для мене!
MediumOne

-2

Якщо ви використовуєте будь-які розширення VPN-проксі для Google Chrome (наприклад, Betternet ), можливо, ви зіткнетеся з цією проблемою. Вимкнення розширення вирішує проблему.

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.