Блокировка сайтов с помощью / etc / hosts

17

Есть веб-сайт, www.example.com, к которому я пытался заблокировать доступ, потому что это тратит слишком много моего времени. Поэтому я настроил свой /etc/hostsфайл. Я добавил следующие строки, чтобы заблокировать сайт на IPv4 и IPv6:

127.0.0.1 www.example.com
::1 www.example.com
127.0.0.1 http://www.example.com
::1 http://www.example.com
127.0.0.1 example.com
::1 example.com

Я перезагрузил компьютер, и я не могу wget www.example.com, и пинг www.example.comработает, как ожидалось, но сайт фактически не заблокирован в моем браузере! Я все еще могу получить к нему доступ в Firefox 28 и Chromium.

Вопросов

  • В чем дело?
  • Как заблокировать этот сайт с помощью инструментов системного уровня вместо расширений браузера?
Newb
источник
В своем браузере вы печатали http://www.example.com(что должно быть заблокировано) или вы печатали http://example.com(что не заблокировано)?
Джон1024,
@ John1024 Я изменил свой вопрос, чтобы ответить на ваш. В браузере example.comи http://example.comзаблокированы, но www.example.comи http://www.example.comне заблокированы.
Новичок
1
@Newb: Какой дистрибутив Linux вы используете?
cuonglm
Взгляните на хост-блок : он автоматизирует это для вас и работает великолепно ...
jasonwryan
Я настроил блокировку уровня DNS на своем домашнем DNS-сервере. Для тех, у кого меньше технических способностей, pi-hole - интересный проект. pi-hole.net
Руи Ф. Рибейро

Ответы:

10

Вместо этого сделайте этот блок, используя предложенный /etc/hostsмной плагин / плагин для браузера, например, с именем BlockSite для Firefox или StayFocusd для Chrome.

BlockSite

  сс # 1

StayFocusd

                    сс # 2

Но я действительно хочу использовать файл / etc / hosts

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

0.0.0.0   www.example.com
0.0.0.0   example.com
::0       www.example.com
::0       example.com

Вы никогда не должны добавлять записи в этот файл, кроме имен хостов. Так что не помещайте туда никаких записей, которые включают префиксы, такие как http://и т. Д.

SLM
источник
10
ОП явно просит решения, которые не включают в себя плагины / расширения для браузера ...
jasonwryan
1
@jasonwryan - спасибо, пропустил последнее предложение в Q.
slm
2
Последняя часть вашего ответа была правильной - моя ошибка заключалась в том, что я написал http://www.example.comвместо www.example.com. Сейчас сайт заблокирован.
Новичок
Это полезно, и у обоих chrome и firefox есть расширение block site, которое отлично подходит .
Эрик Ван
Увы, мне нужен был плагин, который игнорировал бы все ссылки на другие сайты, кроме текущего, и был бы активирован на сайты по моему выбору.
Руи Ф Рибейру
4

Вам необходимо очистить кэш DNS. Согласно этой статье , вы можете сделать это, перезапустив следующие службы:

  • nscd
  • dnsmasq
  • named
Тоттен
источник
Статья с 2008 года и, кажется, устарела. В моей установке Linux Mint нет nscd или rndc.
Бен Кроуэлл
это означает, что у вас не включено DNS-кэширование. так что вы не имеете дела с подобной проблемой Если ваша проблема связана с кэшированием DNS, это может быть следствием того, что любой другой компьютер в вашей сети кэширует серверы имен и отвечает на запросы вместо фактического динамического сервера имен.
17