Tailscale
Tailscale
Overview
Tailscale is is a VPN based on Wireguard and allows you to connect your devices in a wireguard mesh network.
Installation
1
curl -fsSL https://tailscale.com/install.sh | sh
Usage
1
tailscale up
Flags
--ssh
- Enable the Tailscale SSH server to eliminate the need for managing SSH keys manually.--advertise-routes=192.0.2.0/24
- Advertise routes so you can access devices over Tailscale where it cant be installed directly.--accept-routes
- Accept routes to other Tailscale nodes.--exit-node
- Use a specific node as the exit node for all traffic.--qr
- show a QR code to complete the login via phone.
If you use routes or exit nodes you need to confirm this in the route settings of the device in the tailscale admin console.
Full documentation can be found here.
IP6 Subnet Routing
Step 1: Generate IPv6 Subnet Route
- Command: Generate an IPv6 route for the IPv4 subnet with a unique site ID (0–65535).
1
tailscale debug via <site-id> <ipv4-subnet>
Example: For
192.168.178.0/24
with site ID0
:1
tailscale debug via 0 192.168.178.0/24
Output:
fd7a:115c:a1e0:b1a::c0a8:b200/120
fd7a:115c:a1e0:b1a
: Fixed 64-bit Tailscale prefix.::
: Site ID0
(empty translator identifier).c0a8:b200
: Hex for192.168.178.0
./120
: Subnet mask for/24
.
Step 2: Advertise the Route
- Command: Advertise the IPv6 route on the subnet router.
1
tailscale set --advertise-routes=<ipv6-route>
Example:
1
tailscale set --advertise-routes=fd7a:115c:a1e0:b1a::c0a8:b200/120
- Approve Route: In the Tailscale admin console (https://login.tailscale.com/admin), go to Machines, find the subnet router, and approve the route.
Step 3: Get IPv6 Address for a Device
- Convert IPv4 to IPv6:
- For
192.168.178.1
, convert to hex:192=c0
,168=a8
,178=b2
,1=01
→c0a8:b201
. - Append to prefix and site ID:
fd7a:115c:a1e0:b1a::c0a8:b201
.
- For
- MagicDNS Name (if enabled):
<Q-R-S-T>-via-<site-id>
- Example:
192-168-178-1-via-0
.
- Example:
Step 4: Access Web UI
- Using IPv6:
- HTTP (port 80):
http://[fd7a:115c:a1e0:b1a::c0a8:b201]
- HTTPS (port 443):
https://[fd7a:115c:a1e0:b1a::c0a8:b201]
- Non-standard port (e.g., 8080):
http://[fd7a:115c:a1e0:b1a::c0a8:b201]:8080
- HTTP (port 80):
- Using MagicDNS (if enabled):
- HTTP:
http://192-168-178-1-via-0
- HTTPS:
https://192-168-178-1-via-0
- Non-standard port:
http://192-168-178-1-via-0:8080
- HTTP:
Step 5: Test Connectivity
- Ping Test:
1
ping fd7a:115c:a1e0:b1a::c0a8:b201
or
1
ping 192-168-178-1-via-0
- Check Admin Console: Verify the route appears under the subnet router.
This post is licensed under CC BY 4.0 by the author.