Рейтинг:0

как мгновенно активировать новый /etc/hosts

флаг au

Я использую команду терминала для замены файла /etc/hosts -.

псевдоним nonews="sudo -S chattr -i /etc/hosts < /etc/файл_пароля && sudo -S cp /etc/hosts_all_blocked /etc/hosts < /etc/файл_пароля && sudo -S chattr +i /etc/hosts < / и т.д./файл_пароля"

Где hosts_all_blocked — это файл, с помощью которого блокируются отвлекающие веб-страницы. А файл /etc/password_file содержит sudo-пароль.

Поэтому после использования я хочу, чтобы соответствующие страницы были немедленно заблокированы. Я попробовал команду, и иногда она работает сразу, как хотелось бы, но иногда, даже если файл изменился, это не влияет на возможность открытия веб-страниц.

Как я могу гарантировать, что изменения в файле /etc/hosts вступят в силу немедленно?

Кстати: для разблокировки я использую 20-минутную задержку:

псевдоним getnews="sleep 1200 && sudo -S chattr -i /etc/hosts < /etc/файл_пароля && sudo -S cp /etc/hosts_all_allowed /etc/hosts < /etc/файл_пароля && sudo -S chattr +i /etc/ hosts < /etc/файл_пароля"
флаг in
Если браузер уже открыт на сайтах, очень велика вероятность, что он использует собственный внутренний кеш DNS. Вам также придется очистить кеш браузера (ов)
Thomas R avatar
флаг au
@matigo Я только что проверил вашу подсказку с добавленной веб-страницей. Никакого эффекта после изменения файла. Тогда у меня был мгновенный эффект после удаления кеша. Большое спасибо. Если вы размещаете свой комментарий как ответ, я выберу его как правильный ответ.
Рейтинг:1
флаг in

Браузеры часто сохраняют локальную копию поиска DNS в своем кеше, чтобы сэкономить немного времени при загрузке сайтов. Это означает, что вам нужно будет очистить кеш браузера, чтобы изменения в /и т.д./хосты файл, который будет виден для уже загруженных сайтов (включая те, которые могли быть загружены в ранее закрытых вкладках).

Имея это в виду, вы можете расширить свой псевдоним до сценария оболочки, который также удаляет кеш браузера (но оставляет файлы cookie нетронутыми ... если только вы не хотите начать с «свежего» браузера, который ничего не знает о вашем прошлом использовании каждый и каждый раз).

Если вы используете Firefox в качестве основного браузера, вы можете очистить кэш с помощью сценария оболочки с помощью этой команды:

rm -r ~/.cache/mozilla/firefox/*.default*/*

Если вы используете Google Chrome в качестве основного браузера, вы можете очистить кеш следующим образом:

гм ~/.кэш/гугл-хром

Для других браузеров вам нужно будет покопаться в ~/.кэш каталог, чтобы найти, где они хранят свои временные ресурсы.

Обратите внимание, что эти команды следует запускать как пользователь, не с судо.

Thomas R avatar
флаг au
спасибо за ваш ответ, а также за дополнительную информацию о том, как удалить кеш с помощью команды терминала. Я еще не тестировал терминальную часть. Но поскольку на вопрос уже дан ответ без этой части, я просто принял ваш ответ. Ты обалденный!
Thomas R avatar
флаг au
Кстати: иногда также необходим перезапуск браузера, чтобы убедиться, что изменения учтены.

Ответить или комментировать

Большинство людей не понимают, что склонность к познанию нового открывает путь к обучению и улучшает межличностные связи. В исследованиях Элисон, например, хотя люди могли точно вспомнить, сколько вопросов было задано в их разговорах, они не чувствовали интуитивно связи между вопросами и симпатиями. В четырех исследованиях, в которых участники сами участвовали в разговорах или читали стенограммы чужих разговоров, люди, как правило, не осознавали, что задаваемый вопрос повлияет — или повлиял — на уровень дружбы между собеседниками.