Lazy Connections

NetBird now includes an experimental lazy connection feature designed to improve performance and reduce resource usage by connecting to peers only when needed. Instead of maintaining always-on connections, NetBird activates them on-demand based on activity or signaling.

This guide walks you through enabling and configuring this feature in your NetBird client.

What Are Lazy Connections?

When enabled, lazy connections allow the NetBird agent to:

  • Establish peer-to-peer connections only when needed (e.g., when pinging a remote peer).
  • Monitor peer activity and automatically disconnect peers that remain inactive and unreachable for a specified time.
  • Keep critical peers (such as routers or excluded peers) always connected to ensure uninterrupted communication.

This feature is especially useful in large-scale deployments or resource-constrained environments, where maintaining full-mesh, permanent connections to all peers is unnecessary and inefficient.

How Automatic Disconnection Works

Once a connection between two peers is established, it will remain open as long as the remote peer is reachable. The connection is not closed just because there is no data transfer.

In other words, the inactivity timer only triggers a disconnect if the peer is both inactive and unreachable for the full duration of the threshold.

Additionally, the disconnection logic is being improved and will be enhanced in future releases to better support mobile devices—providing more intelligent reconnection behavior and improved handling of intermittent connectivity.

Enabling Lazy Connections on agent

Lazy connections are disabled by default. You can enable Lazy Connections using the following environment variable:

export NB_ENABLE_EXPERIMENTAL_LAZY_CONN=true

Or pass the flag directly via the CLI when running the agent:

netbird up --enable-lazy-connection

Enabling Lazy Connections in the NetBird Dashboard

The lazy connection feature can also be configured through the NetBird Dashboard. Here’s how it works once the setting is updated:

Setting enabled:

  • The client’s lazy connection manager is now active. Existing peer connections and ongoing connection attempts will remain unchanged for one hour. After that, any connection that couldn't be established due to unavailable remote peers will transition to an idle state.

Setting disabled:

  • The lazy connection manager is now disabled. The client will immediately attempt to establish connections with all remote peers.

Get started