46

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

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

Кажется, только Chromium обходит мой блок-лист. Доступ к facebook.com с него заставляет меня перейти прямо на главную страницу Facebook.

После очистки всего (Ctrl+Shift+Delete) с начала времени и перезапуска Chromium, я получаю желаемое поведение (= не могу получить доступ к Facebook).

Хотя через некоторое время (я не совсем уверен, что вызывает это), Chromium снова игнорирует мой локальный DNS dnsmasq и успешно получает доступ к домашней странице Facebook.

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

Вопрос: почему Chromium обходит мой локальный DNS и что я могу сделать, чтобы остановить его?

4 ответа4

40

Большинство ссылок на эту тему старые. Если у вас старая версия Chromium, следуйте ответу edvinas.me .

Для текущих версий Chromium (на момент написания этого поста: 33-я), вот что вы должны сделать:

  1. Зайдите в chrome://settings
  2. Нажмите «Показать дополнительные настройки ...»
  3. Снимите флажок Предсказывать сетевые действия, чтобы повысить производительность загрузки страницы .
  4. Проверьте, действительно ли предварительная выборка DNS отключена, перейдя в chrome://dns . Там вы должны увидеть что-то вроде предварительного разрешения DNS, а предварительное подключение TCP отключено. Если предварительная выборка не отключена, вы увидите там несколько таблиц.

Обновить

Для более новых версий Chrome (на момент этого обновления: 55-е) третий пункт сформулирован так: Используйте службу прогнозирования для более быстрой загрузки страниц.

Ссылка

25

Обновленный ответ

Убедитесь, что вы очистили кеш 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.Обновить, чтобы перезагрузить веб-страницу.

2

Еще одна неясная возможность заключается в том, что ваша система настроена на использование автоматического файла прокси * .pac. Обычно это происходит в том случае, если вы получили компьютер в корпоративной среде, а файл * .pac сообщает вашему браузеру, что нужно разрешить URL-адрес через прокси-сервер. Это имеет приоритет над вашим файлом /etc /hosts, и если в файле * .pac есть правило возврата PROXY, если ничего не совпадает, то окажется, что Chrome не поддерживает /etc /hosts. Обычно это будет иметь место, если ваша командная строка работает должным образом, например, dig, ping и т.д.

Если вы пробовали другие решения, но они не работают, проверьте, не установлена ли у вас настройка автоматического прокси-сервера, которую использует Chrome.

-2

Если вы используете какие-либо расширения VPN-прокси для Google Chrome (например, Betternet), вы, вероятно, столкнетесь с этой проблемой. Отключение расширения решает проблему.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .