如何在 OS X 上使用通配符重定向/阻止域名?

如何在 OS X 上使用通配符重定向/阻止域名?

我试过了dnsmasqsquid这个 DNS 代理但是,它们都没有达到我想要的效果。我想做这样的事情:

127.0.0.1 *facebook.com
127.0.0.1 *imgur.com

每个匹配的 URL 都会重定向到127.0.0.1,或者直接被阻止。(无论是在命令行、应用程序还是浏览器上,只是模拟了一些功能,/etc/hosts但带有通配符)。

尽管如果什么都不起作用,那么通过浏览器是最重要的。

答案1

正如 Jeremy W. Sherman 所说,您应该考虑设置本地化的 DNS 服务器,因为该etc/hosts文件无法支持通配符。

考虑安装一个名为DNSMasq,它允许您创建一种通配符:

address=/facebook.com/127.0.0.1
address=/imgur.com/127.0.0.1

这会将所有包含imgur.comfacebook.com的域重新路由至127.0.0.1

阅读这篇博客文章/etc/hosts 错误和 DNS 解析或者这篇更新的博客文章:如何在 Mac OS X 10.10 Yosemite 上通过 5 个简单步骤获取 .dev 地址有关如何安装以及为什么会发生这种情况的更多信息。

答案2

浏览器:

  • 安装类似请求策略(据我所知,RequestPolicy 仅适用于 Firefox。我相信 uBlock 或 uMatrix 可能能够为 Chrome 做类似的事情。)
  • 打开管理策略。
  • 添加阻止策略:
    • 将原点字段留空。(这隐式匹配所有原点。)
    • 在目标字段中,将主机设置为通配符,如*.facebook.com
    • 点击“添加规则”按钮。

屏幕截图:配置 RequestPolicy 继续阻止对 Facebook 的请求

DNS:

  • 您需要运行一个完整的 DNS 服务器(如 named 或 unbound),并配置系统偏好设置以将其用作系统的 DNS 服务器。
  • 您应该能够将其配置为假装对整个 facebook.com 区域具有权威性,然后在区域配置中设置通配符。
  • 对于您不想阻止的内容,您可以将其配置为某些上游 DNS 服务器的本地缓存。
  • 此配置暗示在未绑定的文档local-data配置节为:

    如果你需要更复杂的权威数据,并附有推荐, 通配符,CNAME/DNAME 支持,或 DNSSEC 权威服务,为其设置一个存根区域,如下面的存根区域部分所述。(重点添加)

运行您自己的 DNS 服务器可能会涉及其中。以下是为类似目的设置命名的演练。

答案3

运行sudo nano -e /etc/hosts打开hosts文件并输入

127.0.0.1 *.domain-name.com #Block subdomains
127.0.0.1 domain-name.com #Block domain

您应该将两者都放上去以封锁该网站。

相关内容