如何阻止主机文件中的特定域?

use*_*002 16 hosts

我知道阻止单个 tumblr 博客很热

127.0.1.1 something.tumblr.com
Run Code Online (Sandbox Code Playgroud)

但我想屏蔽整个 tumblr。我试过了,127.0.1.1 tumblr.com但它不起作用。

有没有办法做到这一点?

Ker*_*ick 24

安装dnsmasq

$ sudo apt-get install dnsmasq
Run Code Online (Sandbox Code Playgroud)

然后在/etc/dnsmasq.conf(您可能必须创建)中添加以下行:

address=/tumblr.com/127.0.0.1
Run Code Online (Sandbox Code Playgroud)

这将tumblr.com通过将其重定向到 localhost (127.0.0.1) 来阻止其所有子域。


笔记:

对于 Ubuntu Trusty 和其他已经有 NetworkManager 的默认使用 dnsmasq,您不需要安装任何东西。

只需创建一个文件/etc/NetworkManager/dnsmasq.d/local

address=/tumblr.com/127.0.0.1
Run Code Online (Sandbox Code Playgroud)

并重新启动或重新启动 NetworkManager

$ sudo service network-manager restart
Run Code Online (Sandbox Code Playgroud)

  • 请注意,除非您还将连接设置为使用 localhost/dnsmasq 进行名称解析,否则这不会做任何事情。 (2认同)
  • @user1079002 可以在此链接中找到连接设置 https://help.ubuntu.com/community/Dnsmasq (2认同)

ish*_*ish 5

/etc/hosts文件不支持通配符子域。也就是说,你不能说127.0.0.1 *.tumblr.com并让它阻止some.tumblr.com形式的所有 URL 。

如果您想在浏览器级别阻止这些内容,您可以使用插件或更好的过滤代理(例如 Privoxy)。

如果您想在网络级别阻止这些内容,以便该计算机上的任何人都无法访问这些站点,您需要一个简单的防火墙规则来阻止某些内容。tumblr.com的 IP 范围,乍一看似乎是50.97.143.0/24,即50.97.143.0-50.97.143.255。