tailscale
SKILL.md
Tailscale Network Management
Quick Start
# Install (Linux)
curl -fsSL https://tailscale.com/install.sh | sh
# Install (macOS)
brew install tailscale
# Connect and authenticate
sudo tailscale up
# Check status
tailscale status
# Get your Tailscale IP
tailscale ip -4
Common Operations
Connection Management
tailscale up # Connect
tailscale down # Disconnect (daemon stays running)
tailscale status # View peers
tailscale status --json | jq # Detailed network map
tailscale ping machine-name # Test connectivity (ignores ACLs)
tailscale ping --icmp machine-name # Test with ACLs
tailscale set --exit-node=name # Use exit node
tailscale set --exit-node= # Stop using exit node
Use tailscale set to change settings without reconnecting. Use tailscale up for initial setup.
Subnet Router Setup
Run scripts/setup_subnet_router.sh <subnet_cidr> [auth_key] for automated setup.
Manual steps:
- Enable IP forwarding on the router device
sudo tailscale up --advertise-routes=192.168.1.0/24- Approve routes in admin console (Machines > device > Edit route settings)
- Linux clients:
sudo tailscale up --accept-routes
Exit Node Setup
Run scripts/setup_exit_node.sh [auth_key] for automated setup.
Manual steps:
- Enable IP forwarding on the exit node
sudo tailscale up --advertise-exit-node- Approve in admin console (Machines > device > Edit route settings > Use as exit node)
- Clients:
tailscale set --exit-node=node-name --exit-node-allow-lan-access
Tailscale SSH
# Enable on server
sudo tailscale set --ssh
# Connect from client (no special setup needed)
ssh machine-name
Requires both network access grant and SSH ACL rule. See acl-examples.md for SSH ACL patterns.
Serve and Funnel
# Serve locally to tailnet
tailscale serve 3000
# Expose to public internet (ports 443, 8443, or 10000 only)
tailscale funnel 3000
# TCP forwarding with TLS termination
tailscale serve --tls-terminated-tcp=5432 localhost:5432
# Check status / turn off
tailscale serve status
tailscale serve off
Access Control
Use Grants (modern, recommended) over ACLs (legacy). Both work, but Grants support application-layer capabilities.
{
"groups": {
"group:engineering": ["alice@example.com"]
},
"tagOwners": {
"tag:server": ["group:engineering"]
},
"grants": [
{
"src": ["group:engineering"],
"dst": ["tag:server"],
"ip": ["22", "443"]
}
]
}
Key patterns: Use groups for people, tags for machines. Always include both network grants and SSH rules for SSH access.
For detailed ACL scenarios, SSH access patterns, posture checks, auto-approvers, GitOps integration, and common mistakes, see acl-examples.md.
Reference Files
- cli-reference.md - Complete CLI command reference with all flags, target formats, and platform-specific notes
- acl-examples.md - Detailed ACL/grants configuration: team-based access, dev/staging/prod isolation, SSH patterns, posture checks, auto-approvers, GitOps, migration from ACLs to Grants
- api-usage.md - REST API, Terraform provider, Python SDK, webhooks, automation examples
- troubleshooting.md - Connectivity diagnostics, subnet router issues, exit node issues, SSH problems, MagicDNS, performance tuning, common error messages
- production-setup.md - Architecture patterns, HA setup, security hardening, IaC (Terraform/Ansible/K8s), monitoring, DR, operational procedures
Scripts
scripts/setup_subnet_router.sh <subnet_cidr> [auth_key]- Automated subnet router setup (installs Tailscale, enables IP forwarding, configures routes)scripts/setup_exit_node.sh [auth_key]- Automated exit node setup (installs Tailscale, enables IP forwarding, advertises as exit node)
Weekly Installs
89
Repository
el-feo/ai-contextGitHub Stars
5
First Seen
Jan 24, 2026
Security Audits
Installed on
opencode77
codex77
gemini-cli75
github-copilot69
cursor63
claude-code60