On linux, this is trivial. I have my private subnet over Wireguard and hosts with static IPs all on the 10.79.x.y subnet. All other traffic goes through my commercial VPN provider.
Problem is, ya cain’t do that on Android, as it supports exactly one VPN connection at a time. The best you can do is white/blacklist traffic to either go through the VPN, or not.
Do how do I achieve this? My commercial VPN provider will not nest and route on their end; I could route all traffic through my VPS servers, but that’s a lot of traffic for my little VMs. It may, however, be my only option:
- Phone is connected to my VPS over WG VPN
- VPS is connected to internet via commercial WG VPN
- Routing tables on VPS send 10.79.x.y to destinations over the private VPS
- Public destinations get sent over commercial VPS
Am I missing an easier, more efficient work-around for Android’s utterly stupid networking limitations?
Personally never used WG;
But I had to use I2P + Tor + Firewall on my droid, but as all these require a VPN on non rooted phone, and Android support just one VPN at a time, I am now using Invizible pro which let me do this all from one app and then setup VPN from this app.
Point is find (or create) and app which can access all protocols you are trying to connect.