One mesh network to rule them all—and why I can’t imagine going back.
I didn’t set out to become a Tailscale evangelist. It started as “try this WireGuard-based thing so I can reach my homelab from the road,” and turned into the backbone of how I think about connectivity, access, and security. This is a love letter to Tailscale: all the ways I use it, and why it’s made everything more powerful and more secure without the usual VPN pain.
The Old World (and Why I Wanted Out)
Before Tailscale, “remote access” meant one or more of:
- Port forwarding — open a hole in the router, hope nothing bad finds it, remember which port goes to which machine.
- Bastion hosts — SSH to a jump box, then SSH again, with keys and configs scattered everywhere.
- Traditional VPNs — install clients, fight with split tunneling, deal with “the VPN is down” and “I can’t reach the printer.”
- Dynamic DNS — point a hostname at a changing home IP and cross your fingers.
It was brittle, visible to the internet, and a constant balance of “can I actually get in?” vs “did I just make my network easier to attack?”
Tailscale changed the equation: my devices and servers join a single, identity-based mesh. No open ports. No manual IP management. No “which key was for which server?” I get power and safety in one system.
1. “My Homelab, From Anywhere” — The Gateway Drug
The first thing I did was join my home machines to Tailscale. A Raspberry Pi, a NAS, a small server in the closet—all got the client. Suddenly:
- SSH by name:
ssh pi@mypiorssh nas.tail1234.ts.netfrom a coffee shop, no port 22 exposed to the world. - Web UIs: Proxmox, TrueNAS, Home Assistant, Pi-hole—all reachable at
http://hostname:portas if I were on the LAN. - File access: SMB/NFS over Tailscale so I can grab files or run backups from anywhere.
No firewall changes. No “turn on the VPN” step—Tailscale is always on. The homelab became a remote homelab without becoming a public one.
2. My Router, From Anywhere — Full Security, Higher Stability
One of the most underrated wins: reaching my router’s admin UI from anywhere over Tailscale. No port forwarding. No “router admin on the internet.” Just the same secure, stable mesh.
How it works: Either the router itself runs Tailscale (if it’s something like OpenWrt, or a vendor that supports it), or a small always-on device on the LAN—a Pi, a NAS, or the same box that does subnet routing—runs Tailscale and can reach the router at its LAN IP. From my phone or laptop, I open https://router (or the router’s Tailscale hostname) and I’m in. The traffic never touches the public internet; it’s encrypted end-to-end over the mesh.
Full security: The router’s admin interface is never exposed to the internet. There’s no open port 80/443 or 8080 for the world to probe. Only devices that are on my tailnet and allowed by my ACLs can even try to connect. I get the same identity-based, zero-trust treatment as everything else—no “hope the admin password is strong enough” as my only defense.
Higher stability: I’m not depending on dynamic DNS, my home IP staying the same, or my ISP’s port-forwarding quirks. Tailscale’s coordination servers handle discovery and NAT traversal; the actual data is peer-to-peer where possible. So the connection is more reliable than “point a hostname at my house and hope nothing changed.” Same story from a hotel, a different country, or a cellular connection—if Tailscale is up, I can reach the router. That’s stability I never had when the only option was “expose the router and cross my fingers.”
So: Tailscale to my router from anywhere, with full security and higher stability. It’s one of those things that feels small until you need it—then it’s indispensable.
3. Exit Nodes: “My Internet, My Rules”
I run Tailscale exit nodes (I even automate them with Ansible—one playbook, and a machine becomes a secure outbound gateway). When I’m on untrusted Wi‑Fi—airport, hotel, conference—I route all my traffic through a node I control.
- Privacy: Traffic leaves from my own IP, not the coffee shop’s.
- Safety: No one on the same Wi‑Fi can easily snoop or redirect me; everything is encrypted to my exit node.
- Consistency: Same “home” IP for services that care (e.g. allowlists, 2FA “known device”).
I pick the exit node in the Tailscale client (or by policy). No extra VPN app, no separate “security VPN” subscription—it’s built in. That’s power and security in one place.
4. Tailscale SSH: No More Key Sprawl
Tailscale SSH uses the same identity layer as the rest of the network. I don’t push SSH keys to every server; I authorize my Tailscale identity. The first time I SSH’d to a machine and it “just worked” without touching ~/.ssh/authorized_keys, I was sold.
- One identity: My Tailscale account (and MFA there) controls SSH access.
- Session recording (on paid tiers): Optional audit trail of who ran what.
- No key rotation hell: Revoke a device or user in the admin console; SSH access follows.
So: fewer keys, clearer accountability, and access that stays in sync with the rest of my Tailscale world.
5. MagicDNS: Names, Not Numbers
MagicDNS gives every node a stable name (e.g. nas.tail1234.ts.net or a custom name). I never have to remember “was the Pi .17 or .23?” or update scripts when an IP changes.
- Stable: Same name whether the machine gets a new DHCP lease or moves.
- Automatic: New devices show up with names; no manual DNS records.
- Scoped: Only my Tailscale network sees these names.
Scripts, bookmarks, and muscle memory all use names. That’s less cognitive load and fewer “why can’t I connect?” moments.
6. Subnet Routing & Site-to-Site Without the Pain
I don’t just connect individual machines; I can advertise subnets from a Tailscale node. One machine at home (or in a colo) can announce “I can reach 192.168.1.0/24.” Every other Tailscale device then reaches that LAN as if it were local.
- Site-to-site: Home, office, cloud VPC—all feel like one network.
- No dedicated VPN appliance: A small Linux box or a single VM can be the bridge.
- Replacing legacy VPNs: No more fighting with IPSec or vendor-specific “site-to-site” wizards.
So: one mesh, many physical locations, one mental model.
7. Servers, Containers, and Kubernetes
Tailscale isn’t just for laptops and Pis. I use it for:
- Cloud VMs: Every droplet, EC2, or OVH box that matters gets Tailscale. They all see each other and my devices by name; no peering or security groups for “my” access.
- Containers: Tailscale in a container (or as a sidecar) so that service gets a stable identity and can talk to the rest of the mesh.
- Kubernetes: The Tailscale Kubernetes operator gives pods or services Tailscale IPs and DNS. Internal tools, DBs, and admin UIs stay off the public internet but are reachable from my laptop or CI.
So: one network for “me” and “my stuff,” whether it’s a laptop, a VM, or a pod.
8. CI/CD and Automation
I don’t want CI runners or automation boxes on the public internet. With Tailscale:
- GitHub Actions / GitLab CI / Jenkins: A runner joins the mesh with an auth key (often ephemeral or tag-based). Pipelines can hit internal APIs, DBs, or staging environments by Tailscale hostname.
- Deployments: Push from CI to servers over Tailscale; no open SSH or custom deploy ports.
- Secrets and config: Fetch from an internal vault or config server over Tailscale instead of exposing it.
CI gets the same “inside the network” experience I have, without punching holes in the firewall.
9. Zero Trust Without the Theater
“Zero trust” often means a pile of products and policies. With Tailscale, the basics are built in:
- Identity-based: Access is tied to Tailscale identity (and optional MFA), not “anyone on the LAN.”
- Encrypted: WireGuard under the hood; everything between my devices is encrypted and authenticated.
- Least privilege: ACLs and tags (on paid tiers) limit who can reach which subnets or nodes. I can say “this service account only talks to this one host.”
- No implicit trust: A device has to be on the mesh and allowed by policy; there’s no “we’re inside the firewall so we’re safe.”
So: real zero-trust-style access, without a separate zero-trust platform.
10. Sharing Access Without Sharing Keys
I can give a colleague or a contractor access to one machine or one port without handing over SSH keys or VPN configs:
- Invite them to the tailnet (or use a tagged auth key with limited scope).
- ACLs restrict what they can reach.
- When the project ends, I remove them; their access goes away everywhere.
No more “which key did I give them?” or “did we ever revoke that account?”—it’s all in the admin console.
11. Personal Use: The Same Stack, Everywhere
Across homelab, side projects, and work:
- Same client: One app on my phone and laptop for “my” network.
- Same mental model: Names, exit nodes, SSH, subnets—it all works the same whether I’m at home or in a hotel.
- Same security: Encrypted mesh, no random ports open, identity in one place.
Tailscale is the one thing that makes “my infrastructure” feel like a single, manageable surface—more power, less chaos, and way more security than I had before.
How This All Adds Up: Power and Security
Power — I can:
- Reach every important machine and service by name, from anywhere—including my router’s admin UI, with full security and higher stability than port forwarding or dynamic DNS ever gave me.
- Run exit nodes so my traffic leaves from infrastructure I control.
- Wire together home, cloud, and office without site-to-site VPN drama.
- Give CI and automation secure access to internal systems.
- Share access in a controlled way and revoke it in one place.
Security — I get:
- No need to expose SSH, admin UIs, or APIs to the internet.
- One identity layer (with MFA) for access and SSH.
- Encryption everywhere, by default.
- Fine-grained control over who can reach what (ACLs, tags).
- Audit and session recording options where I need them.
I didn’t have to choose between “powerful” and “secure.” Tailscale gives me both: one mesh, one place to manage it, and a model that scales from a single Pi to many machines and locations. That’s why I love Tailscale—and why I keep finding new ways to use it.
If you’re curious, I run Tailscale on everything from Raspberry Pis to cloud VMs, with exit nodes automated via Ansible so I can spin them up and tear them down without thinking about it. The rest is just joining the mesh and reaping the benefits.


