juanfont / headscale

An open source, self-hosted implementation of the Tailscale control server
BSD 3-Clause "New" or "Revised" License
23.48k stars 1.29k forks source link

Can mobile clients use the WireGuard app? #296

Closed kennyparsons closed 2 years ago

kennyparsons commented 2 years ago

I really love Tailscale, except that the control server is not open source and that the iOS app is a huge battery drain. It does not implement on demand capabilities.

Is it possible for a solution like this to generate the proper WireGuard config file to use with the WireGuard native iOS app?

So I have a finite amount of clients, say 10. I only have 2-3 that are truly mobile. Is a control server "check in" required to make it work? I'm unfamiliar with exactly how the mesh overlay is created and continuously updated for all other clients. I'm assuming a static WireGuard config would not be able to know if/when another client changes networks (dynamic ip, roaming, etc.)

As a consolation, I wonder if a static WireGuard config file could be downloaded, but options added to just connect to one "relay" server all the time and get its "mesh connectivity" from the relay, since it won't have constant updates from the control plane.

kennyparsons commented 2 years ago

Sorry for the bug label. I meant this only as a question of capabilities.

madjam002 commented 2 years ago

Relay servers in Tailscale are implemented as DERP servers which are over TCP, plus there is a question of network policies, NAT traversal/magicsock, MagicDNS, the list grows longer with every Tailscale feature release.

So it's unlikely this is possible but I might be wrong.

If you've only got 10 clients I'd recommend just sticking with vanilla Wireguard to be honest as once you strip out all of the above that's basically what you're left with in terms of feature set.