how to block specific domains in hosts file?
Install dnsmasq
:
$ sudo apt-get install dnsmasq
Then in /etc/dnsmasq.conf
(which you may have to create) add the line:
address=/tumblr.com/127.0.0.1
This will block tumblr.com
and all of its subdomains by redirecting it to localhost (127.0.0.1).
Note:
For Ubuntu Trusty and others which already have NetworkManager use dnsmasq by default you don't need to install anything.
Just create a file /etc/NetworkManager/dnsmasq.d/local
:
address=/tumblr.com/127.0.0.1
and reboot or restart NetworkManager
$ sudo service network-manager restart
The /etc/hosts
file does NOT support wildcard subdomains. i.e. you can't say 127.0.0.1 *.tumblr.com
and have it block all URLs of the form something.tumblr.com.
If you want to block these at the browser level, you can either use a plugin or better, a filtering proxy like Privoxy.
If you want to block these at the network level, so that no one on that computer can access the sites, you need a simple firewall rule to block something.tumblr.com's IP range, which at first glance appears to be 50.97.143.0/24
, i.e. 50.97.143.0-50.97.143.255.