====== Headscale ======
Implementación de código abierto y autoalojable del servidor de control de [[informatica:software:internet:tailscale|Tailscale]].
* [[https://github.com/juanfont/headscale|Repositorio de código]]
* [[https://headscale.net/|Documentación oficial]]
===== Instalación =====
==== Docker ====
==== Debian ====
* [[https://earvingad.github.io/posts/headscale/|Instalación y uso de Headscale en Debian/Ubuntu]]
===== Configuración =====
==== Añadir nodos ====
Todo dispositivo que queramos que forme parte de la red será un nodo.
Para ver los nodos que tenemos en la red:
headscale nodes list
Creamos un usuario:
headscale user create NOMBRE_USUARIO
==== Registrar un nodo ====
headless nodes register --user USUARIO --key CLAVE
==== Registrar un nodo con clave preautenticada ====
En el servidor Headscale:
headscale --user USUARIO preauthkeys create --expiration 1h
A partir de entonces, tendremos 1 hora para indicar esa clave en el dispositivo que queremos registrar
==== Habilitar rutas ====
Para listar las rutas:
headscale routes list
Ejemplo de salida:
ID | Machine | Prefix | Advertised | Enabled | Primary
1 | headtailscale | 0.0.0.0/0 | true | false | -
2 | headtailscale | 0.0.0.0/0 | true | false | -
3 | headtailscale | ::/0 | true | false | -
4 | headtailscale | ::/0 | true | false | -
5 | headtailscale | 192.168.0.0/24 | true | false | false
6 | headtailscale | 192.168.0.0/24 | true | false | false
7 | google-pixel-6a | 0.0.0.0/0 | true | false | -
8 | google-pixel-6a | ::/0 | true | false | -
Para habilitarlas:
headscale routes enable -r 1
headscale routes enable -r 7
Resultado:
ID | Machine | Prefix | Advertised | Enabled | Primary
1 | headtailscale | 0.0.0.0/0 | true | true | -
2 | headtailscale | 0.0.0.0/0 | true | false | -
3 | headtailscale | ::/0 | true | true | -
4 | headtailscale | ::/0 | true | false | -
5 | headtailscale | 192.168.0.0/24 | true | false | false
6 | headtailscale | 192.168.0.0/24 | true | false | false
7 | google-pixel-6a | 0.0.0.0/0 | true | true | -
8 | google-pixel-6a | ::/0 | true | true | -