Headscale
https://github.com/juanfont/headscale/
https://headscale.net
Пример headscale для docker swarm stack c доступом через traefik и ограничением по IP:
Команды
Сервер
Создать API ключ для ступа к headscale, например через UI:
headscale apikeys create
Создать пользователя:
headscale users create user1
Создать многоразовый ключ пользователю истекающий через 24ч (для подключения нод):
headscale preauthkeys --user user1 create --reusable --expiration 24h
Зарегистрировать ноду на сервере, после получения ключа ноды:
headscale nodes register --user user1 --key W4D7f0Um2pJl2r0TX0FrFJ09
DERP
https://headscale.net/development/ref/derp/
Включить свой сервер DERP:
Клиент
Запросить ключ ноды для регистрации на сервере:
tailscale up --login-server=https://DOMAIN.COM --accept-dns=false --accept-routes
или сразу зарегистрировать клиента с указанем ключа пользователя:
tailscale up --login-server=https://DOMAIN.COM --auth-key=dc0018d10c5ec398a972cf060603be276fc602c9861850de --accept-dns=false --accept-routes
Показать маршруты:
ip route show table all oif tailscale0 #или ip route show table 52
Отключить SNAT на клиенте предоставляющего подсети (только для linux):
tailscale up --snat-subnet-routes=false
ACL
UI
https://headscale.net/stable/ref/integration/web-ui/
https://github.com/GoodiesHQ/headscale-admin
https://github.com/gurucomputing/headscale-ui
https://github.com/tale/headplane
Ссылки
https://tailscale.com/download - загрузить ноду (клиент)
https://lanrat.github.io/openwrt-tailscale-repo/ - клиент для OpenWrt 19.07
