On this page
Tailscale Operations Manual
Tailscale is a mesh VPN based on WireGuard. Core concepts: tailnet (your private network), node (each device), DERP (relay server, used when direct connection is not possible), MagicDNS (automatic .ts.net domain names), ACL (access control).
Status Check
|
Basic Operations
# Start/Stop
# Common 'up' parameters
# Switch accounts
# Re-authenticate (after key expiration)
Subnet Router
# On the node acting as the gateway:
# Approve routes in the Admin Console (one-time):
# Machines → Find the node → Edit route settings → Check subnets and Approve
# Enable on client:
# View currently accepted routes
|
Exit Node
# On the exit node (usually a VPS or host with public internet access):
# After approval in the Admin Console, on the client:
# Temporarily switch exit node
DERP Servers
# View current DERP usage
# Self-hosted DERP (derper)
# Start: derper -hostname derp.liz6.com -certmode manual -certdir /etc/ssl/
# Ports: 8443 (TLS, exposed to public internet), 3478 (STUN, UDP)
# Add custom DERP map in Tailscale Admin Console → Access Controls:
# "derpMap": { "Regions": { "901": { ... } } }
# DERP debugging
# If traffic goes through DERP (not direct), latency will be significantly higher
ACL Management (Admin Console)
# ACLs are managed in the Access Controls page of the admin console (JSON)
# Core concepts:
# - acls: who can access whom/what port
# - groups: user groups
# - hosts: restrict which sources a node accepts
# - derpMap: custom DERP servers
# Example ACL:
# "acls": [
# {"action": "accept", "src": ["group:admin"], "dst": ["*:*"]},
# {"action": "accept", "src": ["group:dev"], "dst": ["tag:server:22,443"]},
# ]
# Test when ACL is not taking effect:
Troubleshooting
# 1. Check service status
# 2. Check connectivity
# If it shows "via DERP(...)", it is using the relay, resulting in high latency
# 3. WireGuard level
# 4. Firewall
# Tailscale uses STUN (UDP 3478) and DERP (TCP 443/8443) for hole punching
# If direct connection fails, check if UDP is blocked
# 5. NAT issues
# "hard NAT" is the hardest to connect to directly; may require DERP or manual hole punching
# 6. Reset
# 7. MagicDNS not working
# Check if enabled: tailscale debug prefs | grep -i dns
# MagicDNS base domain: <hostname>.<tailnet>.ts.net