• pazukaza@lemmy.ml
    link
    fedilink
    arrow-up
    1
    ·
    1 year ago

    I usually have a VPN client running in a container and then attach the browser instance to the network namespace of the container.

      • pazukaza@lemmy.ml
        link
        fedilink
        arrow-up
        1
        ·
        1 year ago

        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.