
YOUR HOME network, from anywhere.
tailscale upwhy your router setup is probably a mess right now
if you've ever tried to remote into your home nas or check your security camera feed from work, you know the pain. port forwarding, dynamic dns, hoping your isp didn't change your ip again, and praying you didn't leave port 22 wide open to the entire internet. that's the old way. tailscale fixes this by creating a private network that follows your devices around instead of making you chase ip addresses.
what tailscale actually does under the hood
tailscale is built on wireguard, which is a modern vpn protocol that's fast and doesn't need a phd to configure. instead of exposing your devices to the internet, tailscale creates what's called a mesh vpn. every device you enroll gets a stable private ip (something like 100.x.x.x) that stays the same no matter where that device physically is. your laptop at a coffee shop and your raspberry pi at home can talk directly to each other like they're on the same lan, because as far as the network is concerned, they are.
breaking down the command
tailscale up
this one command is doing more than it looks like. when you run it:
it authenticates the device against your tailscale account, usually through a browser login the first time.
it generates a wireguard keypair on the device itself. the private key never leaves the machine, which matters a lot for security since nobody, not even tailscale, can see your traffic.
it joins your "tailnet," which is just the name for your private mesh network of devices.
it negotiates direct connections when possible, using nat traversal tricks, or falls back to relaying through tailscale's servers (encrypted, they can't read it) when a direct connection isn't possible.
you can add flags too. for example:
tailscale up --ssh
this turns on tailscale's built in ssh server, letting you ssh into that machine using your tailscale identity instead of managing separate ssh keys. handy, but know that it's happening.
the part everyone skips: access control
here's where a lot of homelab folks get lazy. by default, once a device joins your tailnet, it can often see and reach every other device on that tailnet. that's fine if it's just you and your partner's laptop. it's not fine if you've added a friend's device to share a plex server and now they can also poke at your nas admin panel.
tailscale has a feature called acls (access control lists) that let you define exactly which devices can talk to which. go into your tailscale admin console and look at the acl policy file. a basic locked down setup looks like restricting tags so your "guest" devices can only hit the specific port your media server uses, nothing else.
if you've never touched your acls, that's your homework after reading this.
things to actually check on your own network
run tailscale status on any device and look at what's currently in your tailnet. do you recognize every single device listed? old test vms, a friend's phone from two years ago, a laptop you sold, these are all doors left unlocked.
check whether you have "key expiry" disabled on any devices. tailscale rotates keys periodically by default for security, but you can disable that for servers that need to stay always-on. if you disabled it and forgot why, that's a stale credential sitting around.
look at whether magicdns is on and whether that's exposing hostnames in ways you didn't expect. it's convenient, but convenience and exposure are cousins.
and if you exposed anything through tailscale funnel (which lets you share a service publicly through tailscale), double check what's actually public. funnel is powerful and easy to forget you turned on.
the takeaway
tailscale is a genuinely good tool for defenders because it replaces "expose a port to the whole internet and hope" with "only devices i explicitly trust can reach in." but the security only holds if you actually manage your tailnet like it's a real network, because it is one. audit your device list, set up acls instead of leaving everything flat, and don't disable key rotation just because it's annoying to re-auth once in a while. the tool removes the port forwarding headache. it doesn't remove your responsibility to know what's on your own network.