使用 /etc/hosts 阻止网站

Ran*_*son 3 networking internet

因此,出于显而易见的原因,我尝试阻止某些网站,但即使我“据称”阻止了它们,我仍然可以继续访问这些网站。

我已经编辑了/etc/hosts文件,所以它看起来像这样(例如 Facebook)

0.0.0.0       https://www.facebook.com
0.0.0.0       facebook.com
0.0.0.0       www.facebook.com
Run Code Online (Sandbox Code Playgroud)

但我仍然可以访问 Facebook。我究竟做错了什么?

编辑:似乎只有 Chrome 屏蔽了该网站,但我仍然可以通过 Safari 和 Firefox 访问它。

我正在运行 OS X Yosemite

moo*_*int 5

请改用以下内容:

127.0.0.1      facebook.com
127.0.0.1      www.facebook.com
Run Code Online (Sandbox Code Playgroud)

IP 地址 127.0.0.1 是localhost,又名本地环回,是您系统的地址。通过使用 127.0.0.1,你告诉你的系统 facebook.com 的 IP 地址是你系统本身的地址,有效地使 FaceBook 无法访问,因为系统将从主机文件中获取站点的 IP 地址,而不是执行DNS抬头。您放入文件中的第一个条目https://www.facebook.com不属于那里。该文件提供了将完全限定域名 (FQDN)转换为 IP 地址的静态机制,因此应仅包含 FQDN 或具有关联 IP 地址的主机名,而不是那些以协议为前缀的,例如 HTTP、HTTPS、FTP 等.

  • 127.0.0.1 是无意义的,不如 0.0.0.0 (3认同)
  • @RandomPerson,[Firefox 有自己的 DNS 缓存](http://ccm.net/faq/555-disabling-the-dns-cache-in-mozilla-firefox)。清除 Firefox 缓存并重试。Safari 也可能使用缓存的 DNS 条目。重新启动可能会清除任何缓存的条目。 (2认同)