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.

Tags:

Hosts