![向 hosts 文件添加 ip/web 地址如何阻止流量?](https://linux22.com/image/1497517/%E5%90%91%20hosts%20%E6%96%87%E4%BB%B6%E6%B7%BB%E5%8A%A0%20ip%2Fweb%20%E5%9C%B0%E5%9D%80%E5%A6%82%E4%BD%95%E9%98%BB%E6%AD%A2%E6%B5%81%E9%87%8F%EF%BC%9F.png)
有人讨论过如何使用 hosts 文件来阻止对网站的访问(尽管我在 Windows 和 Linux 机器上尝试过几次,但都没有成功),但据我所知,该文件的目的是将主机名映射到地址。为什么添加 ip 和 web 地址就可以阻止对网站的访问?
答案1
您不能使用 hosts 文件来阻止 IP 地址。您可以使用它来阻止域名 - 您不是阻止它,而是重定向它。这就像更改手机联系人列表。当您输入 000000 作为您妈妈的电话号码时,当您通过联系人列表给她打电话时,您会收到一个不存在号码的警告。
如果您知道她的电话号码(IP 地址),您可以直接输入,这仍然有效。这可能适用于网站,但对许多网站来说,它不起作用。有时 IP 地址链接到同一台机器上托管的许多不同网站。那么不清楚要显示哪个网站,它会显示默认网站,可能不是您想要的网站。有时网站需要域名才能工作,而仅 IP 地址会导致错误。
您可以使用 hosts 文件将域名映射到 IP 地址。您可以使用它来执行以下操作:
- 将 nytimes.com(或任何其他网站)映射到 127.0.0.1,这是您计算机的本地地址。现在 nytimes.com 将不再起作用,或者它将显示您的本地网络服务器显示的内容。
- 将 yournewwebsite.net 映射到 12.34.56.78(或其他任何地址)。您有一个新网站,尚未公开,并且您希望看到它使用新域名运行。您尚未为域名设置 DNS,或者它仍映射到旧网站。这样您就可以测试域名,并且只有在您的笔记本电脑上才能看到新网站。有时网站需要真实的域名才能运行,在开发和测试期间,这是一种在不干扰生产网站的情况下尝试此方法的好方法。
- 使用不存在的域,例如 test.local,并将其映射到本地网络服务器或其他 IP。
因此,在 hosts 文件中添加条目不会阻止任何内容,它只会将其定向到其他内容,可能只是一个空白页。这是一种阻止方式。您也可以在路由器中执行此操作。
注意:您的计算机有两个 IP 地址,一个是本地 IP 地址 - 127.0.0.1,另一个是公共 IP 地址,当位于路由器后面时,通常为 192.168.1.10。公共 IP 地址是指相对于所连接的网络而言的。路由器具有真正的公共地址。
答案2
您的操作系统将首先查看 hosts 文件,然后再尝试在其他地方查找名称解析。hosts 文件比查询网络要快得多,因此如果操作系统可以在那里找到答案,那么在其他地方进行的查询就会少一个。
hosts 文件不会“阻止”流量,它只会对查找提供答案,从而提供更快的答案,而不必将请求发送到其他地方,因为其他地方可能需要更长的时间才能提供所需的答案。
类似地,SSHD 会将最常访问的数据存储在 SSD 上(因为访问速度要快得多),而不是 SSHD 的机械部分(访问速度要慢得多)。