What is everyone else using for VPN solutions and what are the trade offs?

I want a VPN to access all my personal devices and use services like Syncthing. I use it on my phone so it can’t use ungodly amounts of idle data.

I looked at Netbird but found the idle data usage almost 1GB per few days using JetBird with Lazy connections. I tried the default app but it makes me SSO login every day or two, it wouldn’t stay connected, and it still used a reasonable amount of idle data.

I looked at Tailscale but I’m not going to lock access to all my devices behind a Google account login or some other third party service login for no reason. It seems like hosting my own auth server is too much additional risk as well. I tried self hosting headscale which worked well except that I have no decent front end to easily add devices. I have to log into a terminal, then execute docker commands which was a huge pain in the ass. I didn’t even touch on any of the firewalling or routing that can be done because it was so much more complex in headscale then in a web interface. I tried hosting two or three headscale front ends but couldn’t get one working that supported most of the available feature set. Usually I was given generic connection errors with no clear way to diagnose or clear troubleshooting steps so after a few hours I moved on.

Edit 2026-05-10:
Thank you for all the feedback.

Will try disabling expiry on SSO login for my phone via Netbird official app.
Will look into Pangolin.
May try Headplane UI for Headscale again though lower priority than Netbird because it’s fully open source.

    • normonator@lemmy.ml
      link
      fedilink
      English
      arrow-up
      2
      ·
      18 hours ago

      NP, you have to do it on the web interface, not in the app. You can also decrease the frequency if you don’t want it to last forever.

      • eightys3v3n@lemmy.caOP
        link
        fedilink
        English
        arrow-up
        1
        ·
        16 hours ago

        Yeah I hadn’t even thought of doing that in the interface. I assumed it would be in the client settings or connection setup. I have turned it on now. Here’s hoping it works fine from here on out.

        ❤️