tl;dr what are all the ways I can block a website on linux? Debian if it’s relevant.
I want to stop myself using certain sites. Since I’m reasonably techy and can work round all blocks I’ve come up with, I’ve found an effective approach is to apply as many hurdles as possible, so that visiting the website takes effort.
So far I’ve added the site to ublock’s block list, and redirected sites via /etc/hosts. What other options are there?
While I have admin access to the router, I’m not allowed to block sites there.
use the redirector addon to auto redirect somewhere else
You could try behavioral therapy. Doesn’t need to be psychiatrist (but does have to be professional).
You can use iptables to block connections, by example, using
ufwthe uncomplicated firewall:# apt install ufw bind9-dnsutils # Install ufw and nslookup # uIPs=$((nslookup reddit.com && \ nslookup www.reddit.com && \ nslookup redd.it && \ nslookup redditstatic.com && \ nslookup www.redditstatic.com) \ | awk '/^Address: / { print $2 }' | sort -u); \ for uip in ${uIPs}; do \ echo -n "${uip} " && \ ufw deny from "${uip}" comment 'deny reddit.com'; \ ufw deny out to "${uip}" from any comment 'deny reddit.com'; \ done; # ufw enable # ufw status numberedLeechBlock NG isn’t exactly what your’e looking for but it still may help. Of course, it’ll have no effect if UBO and the DNS already shut everything off.
I use NextDNS and it has feature to block domains. Unfortunately i often unblock it back.
Don’t look for a solution that is technical where the problem is mental.
It’s not a solution to a problem, it’s a mitigation option. There is a lot of evidence that it works. Even OP mentioned that it’s effective for them.
Private DNS service.
DNS level blocking is a massive pain to circumvent. Adguard DNS and NextDNS allow you to do this. Mullvad DNS allows you to block adult websites, gambling sites, and (optionally) social media without creating an account.
See a psychiatrist. You already have root on these systems… if you are truly a split personality then fences aren’t going to prevent your other self from doing whatever they want.
Maybe block on your router and save your router password such that you need to jump through several hoops to unlock it, eg password saved in one password manager DB whose master password is in another DB whose password is in another DB, etc. If you have to unlock like 10 password databases to get into your router, you’ll probably give up on whatever bad habit you were trying to do as it’s too much effort.
Roughly from high level to low level:
- uBlock custom filters
- Make pages unusable or less attractive by wonky per-site browser or extension settings
- IP and DNS blocks on your local machine
- Run a DNS proxy on your local machine and block domains with it
- Host a pihole server on a different machine, make it your DNS server and block domains there
- IP and DNS blocks in your router (if your current one has no option for this, consider buying another, preferably used)
Best apply the methods arbitrarily, so that you get even more confused about how you might restore access to a given website.
Options 5 and 6 may be the only viable ones for locking down certain smartphones or tablets.
DNS… set your system up to use an external DNS provider like OpenDNS where you can select categories to block.
I used this to block adult, gambling, malware, etc at the grandparent’s house when the kids were growing up and starting to search the internet for school homework, etc.
If it’s done in the router you’ll cover all devices and you give someone else the password, so you can’t change it.
Any of the adblockers can do this. Pihole, adguard home, technitium. Ublock origin to. You can probably do it pretty painstakingly through the hosts file as well.
If redirecting with /etc/hosts isn’t enough, you could set up a cron job (I guess as root?) to re-copy a hosts file back to /etc/hosts every half hour or something. That way even if you do manually change /etc/hosts for an quick peak of an illicit website, it’ll go back to being blocked in a short amount of time. This’ll add a bit of the “pain in the ass” factor.









