Mobile Clients and Local Network access

Hi, I’m using a self-hosted Netbird instance. The overall setup is:

  • VM with netbird installation, public IP, domain etc…
  • Various Android Apps on family devices
  • Some laptops
  • Local network with:
    • Home Assistant with Netbird client
    • TrueNAS NAS with Netbird client
  • Netbird is configured with mobile devices, laptops and Home Assistant and TrueNAS as peers
  • Local Network is exposed with Home Assistant and TrueNAS as routing peers
  • Local DNS (Router) is expose as DNS for local network

I use Netbird in this case for the following aspects as “always on” VPN for mobile:

  • Presence (Home Assistant apps sends location to Server via Netbird tunnel)
  • Calendar synchronisation
  • Photo backup (Immich)
  • Access to some Apps on TrueNAS directly or via caddy proxy for HTTPS (possibly only on demand)

Especially for the first 3 cases I have IMHO two options:

  • Access home assistant and truenas via Netbird Hostname and deactivate full network access on client (And optionally using capabilities of apps to switch URLs for local and remote access)
  • Access home assistant and truenas via local network name and enable local network access on client for this

I’m aware that Netbird increases battery usage on mobile devices if activated. I fear, that family acceptance is low, if battery usage decreases too much.

Questions:

  • Are both options conceptionally equal in their usage of battery, or is one approach better than the other and thus should possibly preferred?
  • Are the potential optimizations not yet applied that would change the situation?
  • Are there this I should check, because battery usage should not be as measurable as it is now?
  • Does the number of policies influence battery usage (is a ALL policy better in this regard than a more differentiated policy as I implemented it now).
  • Is there a checklist I can try, to see if my setup is optimal in this regard?

Side question:

  • I enabled lazy connections on the Netbird host.
  • I assume that lazy connections would have positive influence on batter usage.
  • I see that sometimes connections are idle on the Android client, but most of the time they are not - though none of the apps using VPN should require a permanent connection, but will regularly access the local network.
  • Are there any settings and logs that allow me to finetune the idle behavior? Do I need to do optimization on mobile client, the routing clients or on the host?
  • Hint: I can influence polling intervals also for calendar or home assistant presence/location sync, too.

Side note:

  • I’m only interested in mobile client (especially Android) optimizations. I’m happy with the client setup on laptops or servers in the local network :slight_smile:

Any hints are welcome!

I assume detailed response would/could be helpful for a number of other users, too :slight_smile: