如何在hosts文件中屏蔽特定域名?

我知道如何屏蔽单个Tumblr博客。
127.0.1.1 something.tumblr.com

但是我想要屏蔽整个Tumblr。我尝试了127.0.1.1 tumblr.com,但没有起作用。
有没有办法实现这个?
3个回答

从Ubuntu 14.04 LTS(Trusty Tahr)及以上版本开始,默认已经安装了NetworkManager并使用dnsmasq,您无需再进行安装。

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

address=/tumblr.com/127.0.0.1

重新启动或重启NetworkManager

$ sudo service network-manager restart

这将通过将其重定向到本地主机(127.0.0.1)来阻止及其所有子域名。
请注意,除非您还设置连接以使用localhost/dnsmasq进行名称解析,否则此操作不会产生任何效果。
在早于Trusty版本的系统上安装dnsmasq:
$ sudo apt-get install dnsmasq

然后在/etc/dnsmasq.conf中(您可能需要创建)添加以下行:
address=/tumblr.com/127.0.0.1

聪明而简单的方式。 - Luis Alvarado
3请注意,除非您还设置了连接以使用localhost/dnsmasq进行名称解析,否则此操作不会起任何作用。 - ish
1你要如何设置连接以使用dnsmasq?有没有相关链接可以提供? - user1079002
2@user1079002 连接设置可以在此链接中找到:https://help.ubuntu.com/community/Dnsmasq - RAM
1@RAM你能详细解释一下吗?那个链接说要安装dnsmasq然后编辑一个特定的文件。在那个文件中应该做什么样的修改呢?它有将近700行,对我来说并不明显哪一行表示“打开dnsmasq”。 - Tyler
@Tyler的回答已经被编辑以回答你关于编辑文件的问题,一旦社区批准了这个编辑后的回答,它将对大家可见。 - RAM

/etc/hosts文件不支持通配符子域名。也就是说,你不能使用127.0.0.1 *.tumblr.com来阻止所有形式为something.tumblr.com的URL。
如果你想在浏览器级别上阻止这些网站,你可以使用插件或者更好的选择是使用像Privoxy这样的过滤代理。
如果你想在网络级别上阻止这些网站,以便该计算机上的任何人都无法访问这些网站,你需要一个简单的防火墙规则来阻止something.tumblr.com的IP范围,初步看起来是50.97.143.0/24,即50.97.143.0-50.97.143.255。

看著你輸入的IP地址,你把它當作字面上解讀了,但其實是輸錯了。應該是 127.0.0.1 而不是 127.0.1.1。

3所有在 127.x.x.x 内的地址都是环回地址。 - Skylar Ittner