如何使用 Hosts 文件完全阻止域名

如何使用 Hosts 文件完全阻止域名

如果我想使用主机文件阻止域名(例如 foobar.com),我从另一个线程中了解到我不能使用通配符来覆盖域名的所有版本,而必须分别列出每个版本。

既然如此,为了完全阻止该域名,我必须列出所有可能的版本吗?例如:

http: 有/无www

www(无 http)

https:

http://foobar.com

FTP

ETC

最终的完整列表是什么?还需要涵盖哪些其他类型?列出的某些类型是否重复(就主机文件如何解释它们而言),例如 http: 带有www..... 和www......

(抱歉,出现了 doubleyou、doubleyou、doubleyou,但是如果我正常地输入它们,编辑器会坚持认为它们是实际的链接并且不允许使用它们,除非我“将它们包装在代码块中”不管它是什么)。

答案1

我假设您正在谈论的 hosts 文件是 /etc/hosts 或其特定于操作系统的等效文件,如果不是,我的回答就没有任何价值。

首先,你很幸运,因为它不关心(或者正确地说,知道)任何有关协议的信息。hosts 文件仅与主机名(或域)有关。

其次,你运气不好。没有办法检索特定域下的所有现有主机。事实上,名称甚至可以是动态的,并且在查询之前不需要存在。

要阻止 example.com 后面的任何内容,您有两个选择:

  1. 运行您自己的本地 DNS 服务器,并使用 *.foobar.com 的记录,并将其他所有内容递归到真实的 DNS。

  2. 嗅探 DNS 流量,grep foobar.com 的每个请求,并动态地将通过这种方式找到的所有标签添加到您的 hosts 文件中。这只会在一段时间后生效,因此它不是万无一失的,而且很难正确执行。

2.) 是胡说八道。

1.) 是做事的方法。这是每个有需要的人都会使用的方法。

运行自己的 DNS 并非难事,网络上有许多有用的资源。尝试在 Google 上搜索“bind howto”。

但是,请花一点时间重新考虑一下您的目标。

如果您想禁止某些程序拨打电话,适量的流量嗅探可能会揭示其使用的任何主机名,您可以手动将它们放入主机文件中。

另一方面,如果你想阻止用户(人类)观看 youporn,那就别费心了,他们可能比你聪明,并且会比你部署它们更快地规避你的操作。

答案2

您自己回答了。根据 hosts 文件规范,您不能使用通配符。

如果你真的需要完全阻止某个域。例如,您可能希望运行自己的 DNS 并正确应用过滤。

最便宜的方法是使用 Raspberry Pi 硬件安装 DNS 服务(确保在 Raspy 上运行 DHCP 或相应地设置您的家用路由器,或者使用静态 IP)。

答案3

这可能是一个老问题,但显然仍未得到解答。

简单的:

127.0.0.1 xyz //直接查找本地主机地址

这将阻止任何命名的域名。它很廉价,也很肮脏,但它可以工作,因为你告诉你的计算机这个域名位于你的“本地 IP”,因此它除了超时之外什么也不做。

我使用这种方法来杀死大多数广告拦截软件都无法阻止的严重可疑的弹出网站。

相关内容