使用 /etc/hosts 阻止网站

New*_*ewb 25 networking dns internet hosts

有一个网站 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
Run Code Online (Sandbox Code Playgroud)

我重新启动了我的电脑,但我不能wget www.example.com,pingwww.example.com工作正常,但我的浏览器实际上并没有阻止该网站!我仍然可以在 Firefox 28 和 Chromium 中访问它。

问题

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

slm*_*slm 14

而不是使用/etc/hosts我建议使用浏览器插件/插件来制作这个块,例如名为:BlockSite for Firefox 或StayFocusd for Chrome。

块站点

  党卫军#1

保持焦点

                    党卫军#2

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

如果您必须这样做,您可以尝试添加这样的条目:

0.0.0.0   www.example.com
0.0.0.0   example.com
::0       www.example.com
::0       example.com
Run Code Online (Sandbox Code Playgroud)

除了主机名之外,您永远不应该向该文件添加条目。因此,不要在其中放置任何包含前缀等的条目http://。

  • OP 确实明确要求不涉及浏览器插件/扩展的解决方案...... (13认同)
  • 你答案的最后一部分是正确的——我的错误是我写了 `http://www.example.com` 而不是 `www.example.com`。现在该网站被封锁。 (2认同)

小智 5

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

  • nscd
  • dnsmasq
  • named