Is there a good way to prevent apps/programs from accessing the internet, or restrict it to VPNs only?
I'm asking for Android specifically, but I'm curious what else is out there.
For example, some apps work without internet but may use it if it's available. I might want to block that without having to turn off wifi, force stopping it, and wiping the cache/data.
Similarly, maybe I only want to use the app over a VPN and want to prevent accidentally opening it without first turning the VPN on.
You should be able to kind of do both through android settings
Settings -> Apps -> YourApp -> Mobile data usage -> Allow Network access and Mobile Data
For VPN you'll need to add a VPN and then Settings -> Network and Internet -> VPN -> YourVPN -> Always on VPN and Block Connections without VPN. This blocks all apps. There is 2 issues with this though, Blocking connections will block split tunneling connections set up through VPNs and also potentially this depending on the apps you're using https://mullvad.net/en/blog/dns-traffic-can-leak-outside-the-vpn-tunnel-on-android