Update (July 2017): I have stopped using the Drony proxy as it seemed to slow down Internet access on my phone quite noticeably, and tends to crash occasionally. I no longer recommend this solution, but I’d be keen to hear about other approaches!
Update (July 2019): BlockSite is the only thing you need!
I recently came to a realisation: I spend too much time browsing useless websites on my phone. After spending a full hour scrolling through funny pictures, I decided I’d better do something about it.
I searched for “how to block websites on android” on Google, but every solution I could find required either a) switching from Chrome to a different browser or b) rooting your phone.
a) didn’t sound like a great option. I tried switching to Firefox before, and while I enjoyed the ability to install extensions, the app just isn’t as snappy as Chrome.
b) wasn’t my cup of tea either. Rooting your phone can be fairly involved, will likely void your warranty, and means you won’t receive official updates anymore.
Using a proxy
After a few days searching for solutions, I stumbled upon Drony. It’s an Android app that creates a local proxy on your phone.
What’s a proxy? Think of a bridge between your device and the Internet. You may have previously needed to set up a proxy to access the Internet from a corporate network.
Why would you use Drony? Because it lets you set up filters. For example, you can choose to block out Facebook entirely.
Before I show you how to set it up, be aware that using Drony as your proxy isn’t without risks. It will, after all, intercept all Internet traffic on your phone.
I chose to trust the maker of Drony. They made the effort of publishing its code open-source, and from our few email exchanges, they seem benevolent.
As long as I visit sensitive websites over HTTPS, I’m protected anyway. For example, if I connect to https://mail.google.com, Drony will know that I made a connection to Gmail, but it will not be able to read the encrypted content or manipulate it in any way (unless I click through a scary warning in Chrome beforehand).
Security experts, please correct me if anything I said above is wrong!
Setting up Drony
OK, now let’s set up Drony. There are a few steps involved.
1. Install Drony
Easy. Install it from the Play Store here. No need to root your phone.
2. Turn it on
- Open Drony
- Tap “Off”, to switch it to “On”
- Tap “OK” on the confirmation dialog warning about VPN
While Drony’s proxy is now on, we still need to tell our phone to route the Internet traffic through it. Apparently, the VPN isn’t sufficient for all use cases.
3. Set up the proxy for your Wi-Fi network
- Open your Wi-Fi settings
- Long press on your Wi-Fi network
- Choose “Advanced options”
- Select “Manual” in the “Proxy” dropdown
- Choose “localhost” as the proxy hostname and “8020” as the proxy port
Note that you may need to reproduce these steps for each Wi-Fi network that you connect to. There may be a more efficient way to set it up, but I haven’t found it yet :)
4. Set up the proxy for your mobile network
- Open your access point settings
- Proxy: “localhost”
- Port: “8020”
- Make sure to hit “Save” in the options menu
This will make sure that when you’re on-the-go, your mobile traffic also goes through Drony.
5. Add blocked websites
- Open Drony
- Swipe across the screen to access the “Settings” tab
- Tap the “+” in the top right corner
- Type the name of the website you’d like to block (e.g. “facebook.com”)
- Optionally, choose a specific app for which to block it (e.g. Chrome)
You should be all set now. Let me know if these instructions worked for you!
It doesn’t work on my iPhone
Drony only works on Android.
I cannot access the Internet anymore after rebooting my phone
Drony may not restart automatically. Open Drony and make sure it’s on (step 1 above).
I can still access blocked websites
- Make sure that your proxy is correctly set up, for both your Wi-Fi network and your cellular network
- Otherwise, try restarting your phone, force-refresh or just wait a little while (it’s possible your phone has cached the website’s DNS settings)
I see an error about incorrect proxy settings
Make sure you’ve followed steps 2 and 3 above.
Abort! I want to reset everything
- Uninstall Drony
- Clear the proxy settings for your Wi-Fi network
- Clear the proxy settings for your mobile network
Do raise any issues you run into in the comments, and I’ll try to add them to the troubleshooting section. Thanks!