
я используюhostsblockвместе сdnsmasqв Arch Linux для блокировки некоторых веб-сайтов, один из них — facebook.com
и www.facebook.com
.
Я знаю, что все работает правильно, потому что простой пинг на facebook.com
(или www.facebook.com
) возвращает 127.0.0.1. Кроме того, если я захожу на эти веб-сайты из Midori, возвращается пустая страница (это ожидаемое поведение, так как я использую алгоритмквакддемон для возврата пустых страниц на локальном хосте).
Похоже, только Chromium обходит мой черный список. При доступе к facebook.com из него я сразу попадаю на домашнюю страницу facebook.
После очистки всего (Ctrl+Shift+Delete) с начала времен и перезапуска Chromium я получаю желаемое поведение (= не могу получить доступ к Facebook).
Хотя через некоторое время (я не совсем уверен, что является причиной этого) Chromium снова игнорирует мой локальный DNS dnsmasq и успешно получает доступ к домашней странице Facebook.
Я что-то читал о кэшировании и предварительной загрузке DNS-запросов Chromium, но не уверен, как это отключить.
Вопрос:почему Chromium обходит мой локальный DNS и что я могу сделать, чтобы остановить это?
решение1
Большинство ссылок на эту тему старые. Если у вас старая версия Chromium, следуйтеedvinas.meотвечать.
Для текущих версий Chromium (на момент написания этого поста: 33-я) вот что вам следует сделать:
- Идти к
chrome://settings
- Нажмите «Показать дополнительные настройки...»
- Снимите отметкуПрогнозируйте действия сети для повышения производительности загрузки страницкоробка.
- Проверьте, действительно ли отключена предварительная выборка DNS, перейдя по ссылке
chrome://dns
. Вы должны увидеть там что-то вродеПредварительное разрешение DNS и предварительное TCP-соединение отключены.Если предварительная выборка не отключена, вы увидите там несколько таблиц.
Обновлять
Для более новых версий Chrome (на момент обновления: 55-я) третий пункт формулируется так:Используйте службу прогнозирования для более быстрой загрузки страниц.
Ссылка
решение2
Обновленный ответ
Убедитесь, что вы очистите кэш Chrome. Введите это в адресную строку:
chrome://net-internals/#dns
Затем нажмите Clear host cache
кнопку.
Старый ответ
Chromium по умолчанию использует внутренний DNS Google (8.8.8.8 и 8.8.4.4)
Чтобы отключить его:
Нажмите на меню «Инструменты» (маленький значок гаечного ключа), затем перейдите в «Параметры».
Нажмите на вкладку «Под капотом».
3. В разделе «Конфиденциальность» снимите флажок Использовать предварительную загрузку DNS для повышения производительности загрузки страницы.
4. Нажмите кнопку «Закрыть».
5. Обновите, чтобы перезагрузить веб-страницу.
решение3
Еще одна неясная возможность заключается в том, что ваша система настроена на использование автоматического прокси-файла *.pac. Обычно это происходит, если вам выдали компьютер в корпоративной среде, а файл *.pac сообщает вашему браузеру, что нужно пройти через прокси-сервер для разрешения URL. Это имеет приоритет над вашим файлом /etc/hosts, и если в файле *.pac есть правило возвращать PROXY, если ничего не совпадает, то будет казаться, что Chrome не учитывает /etc/hosts. Обычно это происходит, если ваша командная строка работает так, как и ожидалось, например, dig, ping и т. д.
Если вы попробовали другие решения и они не сработали, проверьте, не используется ли в Chrome автоматическая настройка прокси-сервера.
решение4
Если вы используете какой-либоРасширения VPN-проксидля Google Chrome (напримерБеттернет), вы, вероятно, столкнетесь с этой проблемой. Отключение расширения решает проблему.