使用/ 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,并且ping操作www.example.com正常,但实际上浏览器并未阻止该网站!我仍然可以在Firefox 28和Chromium中访问它。

问题

  • 这是怎么回事?
  • 如何使用系统级工具而不是浏览器扩展来阻止此站点?

在浏览器中,您键入了http://www.example.com(应该被阻止)还是键入了http://example.com(没有被阻止)?
John1024

@ John1024我修改了我的问题以解决您的问题。在浏览器中,example.comhttp://example.com被阻止,但www.example.comhttp://www.example.com未被阻止。
Newb 2014年

1
@Newb:您使用什么Linux发行版?
cuonglm

看看hostsblock:它为您实现了自动化并运行出色……
jasonwryan 2014年

我在家庭DNS服务器上配置了DNS级别的阻止。对于那些技术能力较弱的人,pi-hole是一个有趣的项目。 pi-hole.net
Rui F Ribeiro

Answers:


10

而不是使用使这个块/etc/hosts我使用的浏览器插件提示/插件,像这样的一个命名为:BlockSite为Firefox或StayFocusd为Chrome。

BlockSite

  SS#1

保持关注

                    SS#2

但我想真正使用/ etc / hosts文件

如果必须采用这种方式,则可以尝试添加如下条目:

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

除主机名外,您永远不要在此文件中添加条目。因此,请勿在其中放置任何包含前缀(例如http://etc)的条目。


10
OP确实明确要求不涉及浏览器插件/扩展程序的解决方案...
jasonwryan 2014年

1
@jasonwryan -感谢,错过了在问:最后一句
SLM

2
您的答案的最后一部分是正确的---我的错误是我写的http://www.example.com不是www.example.com。现在该站点已被阻止。
Newb 2014年

这很有用,而chrome和firefox都有一个扩展名为block site,都很棒。
Eric Wang

las,我需要一个插件,该插件将忽略到当前站点以外其他站点的所有链接,并将其激活到我自己选择的站点。
Rui F Ribeiro

4

您需要刷新DNS缓存。根据本文的介绍,您可以通过重新启动以下服务来做到这一点:

  • nscd
  • dnsmasq
  • named

该文章来自2008年,似乎已经过时。我的Linux Mint安装没有nscd或rndc。
本·克罗威尔

这意味着您没有启用dns缓存。因此,您不必处理op遇到的类似问题。如果您的问题是dns缓存,则可能是网络上的任何其他计算机都缓存了名称服务器和响应查询,而不是实际的动态名称服务器。
totten
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.