我想在/etc/hosts
文件中屏蔽一些主机。为此,我需要定义一个 DNS 查询解析到的虚假 IP 地址。
到目前为止,我看到的大多数教程都提到了127.0.0.1
这个问题的解决方案。但我想知道是否有更好的或其他地址,可能已经提前丢弃了连接。
所以我考虑0.0.0.0
在我的文件中使用。你认为这和用来阻止某些主机的hosts
效果一样吗?127.0.0.1
答案1
在 Windows 上是区别在于:发送到的数据包127.0.0.1
最终会轰炸你计算机上运行的任何服务器(并且你可能在不知情的情况下运行服务器),而尝试发送数据包0.0.0.0
将立即返回错误代码1214
(错误_无效_NETNAME)。
TL;DR:使用0.0.0.0
答案2
它们(通常)相同,数据包最终也相同:用请求轰炸您自己的主机,并浪费一些时间和流量(在本地接口上),浪费少量资源。(127.0.0.0/8 中的任何地址也是如此,例如 127.2.3.4。)
顺便说一句,只有当您的主机没有运行您想要阻止的服务时,它才会有效(例如,当您的主机确实有 Web 服务器时,使用它来阻止 Web 服务器),否则您将从自己的服务器获得回复。使用绝对不存在的地址(例如,192.168.255.254)可以防止这种情况,但会因无法访问主机而导致连接延迟。
防火墙阻止通常效果更好。:-)