Mmm do you know Linux containers? Like Docker containers, for example?
You need to understand Linux namespace and Linux containers to understand this trick. It isn’t super advanced to be honest, just a Linux feature that is very useful.
It can be overwhelming if you haven’t worked with containers before: https://youtu.be/fTcit7F5Bcg?si=rQlq0mJyapIpOlx8
Basically you can have multiple “network stacks” in the same machine, and they are isolated. By network stacks I mean things like the netfilter rules and the routing rules.
So, if you deploy a VPN inside a network namespace that isn’t the host’s namespace, the host won’t route the traffic to the VPN by default. Only the processes that are attached to that network namespace will process the network packets with the netfilter and routing rules of that namespace. So, if you only attach the Firefox process to the network namespace of the VPN, only the traffic generated by that process will go through the tunnel.
I was about to say… Isn’t using public wifi’s extremely dangerous?