So I’m just being introduced to the concept of using a VPN or something like Tailscale to access one’s services, instead of opening the services directly to the web, but I’m thinking for streaming purposes or just accessing your services on the run, isn’t it an annoyance having to connect to your home network all the time? Or do you keep the VPN running on your phone for example? What if you use a VPN provider for privacy purposes, wouldn’t one need to then switch VPN connection?
isn’t it an annoyance having to connect to your home network all the time?
It’s less annoying than the gnawing fear that my network might be an easy target for attackers.
I keep it running always. Partly to access stuff at home, and party to get the ad-blocking from pihole.
Do not expose stuff unless you fully understand the security risks
How’s the power draw on mobile devices?
Not noticeable with always-on Tailscale with the default split-tunnel mode. That is when Tailscale is only used to access Tailscale machines and everything else is routed via the default route.
For the last 10 days tailscale clocked 1% battery on my phone. I honestly didn’t even consider turning it off for battery savings.
I think the part you’re missing (and others haven’t addressed) is that you don’t send 100% of your traffic to one endpoint (much like how most use VPNs). You can route different things to different places.
For example, I’m in the US and have two Tailscale exit nodes. Both are located on VPS machines in the US, but one sends traffic down a double-hop VPN back out into the US, the other does the same but to Switzerland. My “default” route is through Switzerland (better privacy laws) but I am forced to route some things through the US exit node due to websites that won’t work outside the US. For my personal devices, traffic routes directly to them via WireGuard tunnels.
In addition, my wife doesn’t care about blocking everything that I do (social media, tracking) but her phone still needs to update sensors in Home Assistant. She can choose not to use the exit nodes but can still communicate with our nodes on Tailscale. She also uses it to print documents at home from her laptop while she’s at work.
Recently I was waiting in a hospital with public (unsafe) WiFi that blocked UDP traffic, but Tailscale does some magic that will relay traffic via TLS. I was able to access services at home with a 20ms latency. The tech is very, very nice to have.
If you have an iPhone, it’s a pain over Tailscale because Tailscale frequently likes to disconnect for various reasons and this isn’t something Tailscale can fix, it’s something with the way Apple manages background processes.
If you’d like an alternative, you can host your services directly to the internet via a reverse proxy like Caddy or Nginx, and then use mTLS to secure that access with a certificate you load only onto your devices.
Sucks a high hard one if you plan for others to use your services too. If it’s just you it’s not that annoying
For an external VPN like mullvad, I run my own proxy. Again it’s only available from my VPN or inside my network.
It uses socks5 and gluetun docket containers and in apps that support proxies, I can add my proxy to it and it’ll route that traffic through the paid VPN.
Or, a work profile (see shelter) or androids new private spaces. If you have private spaces, it uses a seperate network. So if you have a VPN installed outside the private space, it won’t work on apps inside the space. So, what you could do is have a paid VPN inside private spaces, and use it and a web browser or whatever there, and use your server’s VPN outside the private space.
Lmk if you want any of my docker composes
This sounds very interesting. I always wondered if I could use a paid VPN together with Tailscale or Netbird. But I’m not sure I understood how you set this up. And what are Android private spaces?
I have gluetun+socks5 containea running, then in an app, I put in
localip:port
into a proxy field. Then that app will use that connection for internet. Browsers on desktop also support proxies. So if you want a specific browser to always use the VPN, this is a very simple way to do that.https://source.android.com/docs/security/features/private-space
Thank you for pushing me into the rabbit hole. But gluetun already has a socks proxy server built in, if I read that correctly on their github.
Oh fascinating. I’ll have to look into that