Using the hostsfile.mine.nu approach to blocking adverts is nothing new, but sometimes in the course of testing something, I do actually need to see if adverts and ad pop-ups are working correctly. So I do this…
Download the hosts file and unzip it somewhere suitable
Copy the current /etc/hosts file
Use a script to flip between the two
wget http://hostsfile.mine.nu/Hosts.zip unzip Hosts.zip sudo chown root:root Hosts sudo chmod 644 Hosts sudo mv Hosts /usr/local/etc/hosts.block rm Hosts.zip sudo cp /etc/hosts /usr/local/etc/hosts.base sudo vi /usr/local/bin/hosts #!/bin/bash # Simple script to replace /etc/hosts with either a list of blocked # hosts, or a simple list case $1 in block) sudo rm /etc/hosts sudo cp /usr/local/etc/hosts.base /etc/hosts sudo sh -c 'cat /usr/local/etc/hosts.block >> /etc/hosts' ;; noblock) sudo rm /etc/hosts sudo cp /usr/local/etc/hosts.base /etc/hosts ;; *) echo "Usage: hosts block|noblock" ;; esac sudo chmod +x /usr/local/bin/hosts
If those permissions work as intended, you should be able to switch between blocking and non-blocking mode with ‘sudo hosts block’ and ‘sudo hosts noblock’.
The only issue seems to be that you have to copy /etc/hosts over /usr/local/etc/hosts.base if you make any changes to it. But for most people that doesn’t happen very regularly. Probably just regularly enough to forget to copy it over to the base file and lose the new entries…
Hope it helps someone, with its flaws.