为什么 hosts 文件中的此行无法阻止对该站点的访问?

为什么 hosts 文件中的此行无法阻止对该站点的访问?

我已尝试将以下行添加到我的hosts文件中Windows 7

127.0.0.1 nytimes.com

hosts文件位于:

C:\Windows\System32\drivers\etc\

其目的是阻止访问《纽约时报》网站(及其他网站)。

即使重新启动机器,也不会阻止对该站点的访问。为什么呢?

答案1

该站点是www.nytimes.com,它是一个不同的主机名。

答案2

如果浏览器配置为使用代理,那么 HOSTS 文件中的内容可能并不重要。

答案3

通常不需要重新启动即可使本地 HOSTS 文件的更改生效。

如果您同时包含两个主机名(您可以在一行中放置多个主机名,或者在多行中输入同一个 IP 地址的多个条目),您的阻止技术可能会更好地发挥作用,一个带有“www.”前缀,一个不带有(就像我在这里展示的那样,除了我使用的是“example.com”以外):

127.0.0.1 example.com www.example.com

阻止无法按预期进行的原因在于 HOSTS 文件处理事物的方式非常字面化,并且您可能使用了主机名的“www.”前缀变体,我还假设您没有定义它 [因为您的示例仅显示一个没有“www.”前缀的主机名]。

如果您使用的是 DNS 服务器,则可以为“example.com”设置一个区域,并且“www.example.com”将自动包含在内(这是由于 DNS 的层次结构特性)。另一方面,HOSTS 文件将允许您覆盖 IP 地址仅有的对于您在其中指定的主机名。

在将主机名解析为 IP 地址时,您的计算机通常首先查阅本地 HOSTS 文件,然后查阅任何本地缓存,然后查询 DNS。这样做是为了节省带宽,而且非常有效。

对于少数计算机来说,本地 HOSTS 文件可能很容易管理,但是对于大量计算机来说,设置 DNS 服务器(将要阻止的区域添加到解析为无,或 127.0.0.1,甚至是内联网服务器)并配置所有计算机以使用它通常更容易。

答案4

IP 和主机名之间不应该有空格,而应该有一个制表符:

127.0.0.1->example.com

相关内容