Headscale
An open-source, self-hosted implementation of the control server for Tailscale. It manages users, nodes, and routes for your private network (tailnet).
See Headscale Control Server Setup Guide for setting up the control server itself.
Users
Nodes
A node is any device (client or server) registered to the tailnet.
Listing nodes
Shows every registered node together with its ID, name, and IP address.
headscale nodes list
Listing routes
Lists the routes advertised by nodes, such as subnet routes or an exit node (0.0.0.0/0).
Note the ID of the node whose routes you want to approve.
headscale nodes list-routes
Approving routes
Advertised routes are not used until they are approved.
Use the node ID from headscale nodes list-routes and pass the routes to approve.
headscale nodes approve-routes --identifier <NODE_ID> --routes <ROUTES>
For example, approving an exit node:
headscale nodes approve-routes --identifier <NODE_ID> --routes 0.0.0.0/0