guest@tailnet:~/setup$ cat guide.md
// put a linux host on your tailnet as a subnet-router + exit-node — then reach it, and the whole LAN behind it, from any device, anywhere.
Look at the network on your main interface, then use that CIDR in step 03.
$ ip -4 route | grep -v default
# e.g.: 192.168.1.0/24 dev eth0 ... -> the CIDR is 192.168.1.0/24
Get-NetRoute -AddressFamily IPv4 | Select-Object DestinationPrefix
# find your LAN row, e.g. 192.168.1.0/24 (ipconfig also shows IP + mask)
ifconfig | grep "inet "
# inet 192.168.1.42 netmask 0xffffff00 ... -> 0xffffff00 = /24, CIDR 192.168.1.0/24
$ curl -fsSL https://tailscale.com/install.sh | sh
$ sudo systemctl enable --now tailscaled
$ sudo tailscale up --ssh
$ echo 'net.ipv4.ip_forward = 1' | sudo tee -a /etc/sysctl.d/99-tailscale.conf
$ echo 'net.ipv6.conf.all.forwarding = 1' | sudo tee -a /etc/sysctl.d/99-tailscale.conf
$ sudo sysctl -p /etc/sysctl.d/99-tailscale.conf
$ sudo tailscale set --hostname=example-server # pick any name you like
$ sudo tailscale set --advertise-routes=192.168.1.0/24 --advertise-exit-node
# 192.168.1.0/24 is only an example — use your own CIDR from step 02
$ tailscale ip -4 # example output -> 100.101.102.103
Download the client from tailscale.com/download, install it, and sign in with your account.
tailscale set --advertise-routes=192.168.1.0/24 --advertise-exit-node
# 192.168.1.0/24 is only an example — find yours with: ipconfig
No IP-forwarding / sysctl step here — that's Linux-only. Exit node can also be toggled from the tray icon → Exit Node.
tailscale set --hostname=example-server
tailscale ip -4
Install from tailscale.com/download or the App Store, then sign in.
Enable the CLI first: Tailscale menu → Settings → turn on CLI. Then:
tailscale set --advertise-routes=192.168.1.0/24
# 192.168.1.0/24 is only an example — find yours with: ifconfig
tailscale ip -4
tailscaled variant instead? Follow the Linux tab.Whichever OS you pick, still approve the routes and exit node in the admin console — that's step 04.
Install Tailscale and log in with the same account. On Windows / macOS / iOS / Android the Use subnets and Exit Node toggles live in the app's menu — and advertised routes are accepted by default there.
$ tailscale status # who's on the network, direct/relay, exit node
$ tailscale ip -4
$ curl ifconfig.me # through the exit node -> the host's public IP