[GH-ISSUE #3427] Recommendations for 4G connected peers / data usage on metered networks #7315

Closed
opened 2026-08-05 01:12:26 -04:00 by saavagebueno · 11 comments
Owner

Originally created by @rgdev on GitHub (Mar 3, 2025).
Original GitHub issue: https://github.com/netbirdio/netbird/issues/3427

Originally assigned to: @nazarewk on GitHub.

Hello,

We've deployed Netbird (0.37.1) on a few 4G connected devices as a possible replacement for an older OpenVPN-based solution.

Right off the bat we've noticed a significant increase in data usage we can attribute to obvious things such as the different mesh network architecture, control plane communications and additional features (updates of routes & peers; key exchange; signal relay functionality etc). While OpenVPN typically use a megabyte a day, Netbird will use around 20 MBs.

Our use case is exclusively to enable remote access into those devices so 99% of the time the VPN link doesn't not carry much data (nearly all outgoing traffic goes through the ISP's network, not Netbird or OpenVPN).

We've implemented some generous read, write and idle timeouts on the infra side (Self Hosted Netbird) to ensure Netbird clients don't produce excessive reconnects. We've also tried setting NB_FORCED_RELAY=true (I don't think this is documented yet?) since we rely on Netbird Relay servers to carry the connections as direct P2P connections are difficult on mobile networks.

Do you have tips or recommendations for running Netbird on metered networks to keep the data usage as low as possible ?

Thanks.

Originally created by @rgdev on GitHub (Mar 3, 2025). Original GitHub issue: https://github.com/netbirdio/netbird/issues/3427 Originally assigned to: @nazarewk on GitHub. Hello, We've deployed Netbird (0.37.1) on a few 4G connected devices as a possible replacement for an older OpenVPN-based solution. Right off the bat we've noticed a significant increase in data usage we can attribute to obvious things such as the different mesh network architecture, control plane communications and additional features (updates of routes & peers; key exchange; signal relay functionality etc). While OpenVPN typically use a megabyte a day, Netbird will use around 20 MBs. Our use case is exclusively to enable remote access into those devices so 99% of the time the VPN link doesn't not carry much data (nearly all outgoing traffic goes through the ISP's network, not Netbird or OpenVPN). We've implemented some generous read, write and idle timeouts on the infra side (Self Hosted Netbird) to ensure Netbird clients don't produce excessive reconnects. We've also tried setting NB_FORCED_RELAY=true (I don't think this is documented yet?) since we rely on Netbird Relay servers to carry the connections as direct P2P connections are difficult on mobile networks. Do you have tips or recommendations for running Netbird on metered networks to keep the data usage as low as possible ? Thanks.
saavagebueno added the mobiledata-usage labels 2026-08-05 01:12:26 -04:00
Author
Owner

@1nerdyguy commented on GitHub (Mar 3, 2025):

I'm curious as to the answers you end up with here, so following for that.

However, I do feel you may be running into a scope issue. to 99.9% of the target audience for netbird, 20 MB a day is literally nothing. While I get that's not your case here, you can see why extreme bandwidth limitations aren't so much on the roadmap at this time?

<!-- gh-comment-id:2695706159 --> @1nerdyguy commented on GitHub (Mar 3, 2025): I'm curious as to the answers you end up with here, so following for that. However, I do feel you may be running into a scope issue. to 99.9% of the target audience for netbird, 20 MB a day is literally nothing. While I get that's not your case here, you can see why extreme bandwidth limitations aren't so much on the roadmap at this time?
Author
Owner

@micael-pn commented on GitHub (Mar 5, 2025):

Hello,

I am also interested in this use case.

We manage thousands of IoT devices connected via 3G and 4G/LTE networks, where bandwidth and data usage are limited.

Currently, we use OpenVPN for remote maintenance access, but we are evaluating Netbird as a potential replacement. Since cellular data is billed per MB, minimizing data consumption is a key factor in our decision.

Compared to OpenVPN, how does Netbird handle data usage? Are there specific configurations to optimize and reduce cellular consumption as much as possible (both on client and server side)?

Thanks in advance for your insights!

<!-- gh-comment-id:2700483120 --> @micael-pn commented on GitHub (Mar 5, 2025): Hello, I am also interested in this use case. We manage thousands of IoT devices connected via 3G and 4G/LTE networks, where bandwidth and data usage are limited. Currently, we use OpenVPN for remote maintenance access, but we are evaluating Netbird as a potential replacement. Since cellular data is billed per MB, minimizing data consumption is a key factor in our decision. Compared to OpenVPN, how does Netbird handle data usage? Are there specific configurations to optimize and reduce cellular consumption as much as possible (both on client and server side)? Thanks in advance for your insights!
Author
Owner

@ohmer1 commented on GitHub (Mar 10, 2025):

I'm curious as to the answers you end up with here, so following for that.

However, I do feel you may be running into a scope issue. to 99.9% of the target audience for netbird, 20 MB a day is literally nothing. While I get that's not your case here, you can see why extreme bandwidth limitations aren't so much on the roadmap at this time?

If the client is really using 20MB/day by itself, this mean 600MB/month. IMO, this is huge for a mobile device with limited 3G/LTE quota.

<!-- gh-comment-id:2711588431 --> @ohmer1 commented on GitHub (Mar 10, 2025): > I'm curious as to the answers you end up with here, so following for that. > > However, I do feel you may be running into a scope issue. to 99.9% of the target audience for netbird, 20 MB a day is literally nothing. While I get that's not your case here, you can see why extreme bandwidth limitations aren't so much on the roadmap at this time? If the client is really using 20MB/day by itself, this mean 600MB/month. IMO, this is huge for a mobile device with limited 3G/LTE quota.
Author
Owner

@1nerdyguy commented on GitHub (Mar 10, 2025):

I'm curious as to the answers you end up with here, so following for that.
However, I do feel you may be running into a scope issue. to 99.9% of the target audience for netbird, 20 MB a day is literally nothing. While I get that's not your case here, you can see why extreme bandwidth limitations aren't so much on the roadmap at this time?

If the client is really using 20MB/day by itself, this mean 600MB/month. IMO, this is huge for a mobile device with limited 3G/LTE quota.

Agreed, however I am stating again that those who are on mobiles with limited 3g/LTE quotas represent a fraction of the users for Netbird. Not that the concern isn't valid, it's just a priority thing.

<!-- gh-comment-id:2711618348 --> @1nerdyguy commented on GitHub (Mar 10, 2025): > > I'm curious as to the answers you end up with here, so following for that. > > However, I do feel you may be running into a scope issue. to 99.9% of the target audience for netbird, 20 MB a day is literally nothing. While I get that's not your case here, you can see why extreme bandwidth limitations aren't so much on the roadmap at this time? > > If the client is really using 20MB/day by itself, this mean 600MB/month. IMO, this is huge for a mobile device with limited 3G/LTE quota. Agreed, however I am stating again that those who are on mobiles with limited 3g/LTE quotas represent a fraction of the users for Netbird. Not that the concern isn't valid, it's just a priority thing.
Author
Owner

@nazarewk commented on GitHub (Mar 11, 2025):

I will be picking up this topic and trying to provide you with more details as the IoT/data constrained use cases seem to pop up here and there.

For now I established that:

  1. High data usage can occur in cases where there are a lot of offline peers in the network due to connection retries,
  2. Every P2P connection is expected to consume ~140 bytes initially and ~90 bytes every few seconds for liveness checks (backing UDP in itself has no concept of connection being alive, so data needs to be sent back and forth to confirm)

I will ask the developers about what can be done to reduce the data usage and get back to you with more details.

<!-- gh-comment-id:2714516089 --> @nazarewk commented on GitHub (Mar 11, 2025): I will be picking up this topic and trying to provide you with more details as the IoT/data constrained use cases seem to pop up here and there. For now I established that: 1. High data usage can occur in cases where there are a lot of *offline* peers in the network due to connection retries, 2. Every P2P connection is expected to consume ~140 bytes initially and ~90 bytes every few seconds for liveness checks (backing UDP in itself has no concept of connection being alive, so data needs to be sent back and forth to confirm) I will ask the developers about what can be done to reduce the data usage and get back to you with more details.
Author
Owner

@Yxnt commented on GitHub (Mar 12, 2025):

I will be picking up this topic and trying to provide you with more details as the IoT/data constrained use cases seem to pop up here and there.

For now I established that:

  1. High data usage can occur in cases where there are a lot of offline peers in the network due to connection retries,
  2. Every P2P connection is expected to consume ~140 bytes initially and ~90 bytes every few seconds for liveness checks (backing UDP in itself has no concept of connection being alive, so data needs to be sent back and forth to confirm)

I will ask the developers about what can be done to reduce the data usage and get back to you with more details.

@nazarewk Many thx, Although the primary user scenario for Netbird is currently on the PC/Server side, I am presently working at a robotics company. Over the past few years, we have been experimenting with various SDN software (ZeroTier, Tailscale, Nebula) to manage the private networks of our devices. The solution we are currently using is Nebula, but it requires us to manually manage certificates. As a result, I’ve been attempting to integrate our thousands of devices into Netbird. Three months ago, we connected 400 devices to Netbird for the first time and found that the bandwidth of the server hosting Netbird’s Signal and Coturn components was fully saturated. This server, which has only 10M bandwidth, remained under full load for an extended period. At the same time, we observed that the 4G data usage on the robot side exceeded 3GB that day (with each of the 400 robots consuming over 3GB). In an IoT scenario, the cost of 4G network data is quite high. Consequently, we abandoned this approach and continued using Nebula to ensure functionality without incurring additional data costs. However, we kept around four robotic devices running Netbird. Yesterday, after analyzing the data, I discovered that over the past two weeks, the total data usage for some devices reached 13GB. At that point, our Netbird server had a total of 103 devices connected, with 30 to 40 devices active during the day and possibly only about 10 devices active 24/7.

<!-- gh-comment-id:2716383182 --> @Yxnt commented on GitHub (Mar 12, 2025): > I will be picking up this topic and trying to provide you with more details as the IoT/data constrained use cases seem to pop up here and there. > > For now I established that: > > 1. High data usage can occur in cases where there are a lot of _offline_ peers in the network due to connection retries, > 2. Every P2P connection is expected to consume ~140 bytes initially and ~90 bytes every few seconds for liveness checks (backing UDP in itself has no concept of connection being alive, so data needs to be sent back and forth to confirm) > > I will ask the developers about what can be done to reduce the data usage and get back to you with more details. @nazarewk Many thx, Although the primary user scenario for Netbird is currently on the PC/Server side, I am presently working at a robotics company. Over the past few years, we have been experimenting with various SDN software (ZeroTier, Tailscale, Nebula) to manage the private networks of our devices. The solution we are currently using is Nebula, but it requires us to manually manage certificates. As a result, I’ve been attempting to integrate our thousands of devices into Netbird. Three months ago, we connected 400 devices to Netbird for the first time and found that the bandwidth of the server hosting Netbird’s Signal and Coturn components was fully saturated. This server, which has only 10M bandwidth, remained under full load for an extended period. At the same time, we observed that the 4G data usage on the robot side exceeded 3GB that day (with each of the 400 robots consuming over 3GB). In an IoT scenario, the cost of 4G network data is quite high. Consequently, we abandoned this approach and continued using Nebula to ensure functionality without incurring additional data costs. However, we kept around four robotic devices running Netbird. Yesterday, after analyzing the data, I discovered that over the past two weeks, the total data usage for some devices reached 13GB. At that point, our Netbird server had a total of 103 devices connected, with 30 to 40 devices active during the day and possibly only about 10 devices active 24/7.
Author
Owner

@nazarewk commented on GitHub (Mar 17, 2025):

Just to let you know we are working on a "lazy connections" feature which should positively affect both data and battery usage issues.

https://github.com/netbirdio/netbird/pull/3379

<!-- gh-comment-id:2729451815 --> @nazarewk commented on GitHub (Mar 17, 2025): Just to let you know we are working on a "lazy connections" feature which should positively affect both data and battery usage issues. https://github.com/netbirdio/netbird/pull/3379
Author
Owner

@Yxnt commented on GitHub (May 27, 2025):

Hi@nazarewk
It looks like #3379 has been merged. Can I now try updating to v0.45.0 or higher to test this feature? How much will it reduce traffic optimization?

<!-- gh-comment-id:2914717135 --> @Yxnt commented on GitHub (May 27, 2025): Hi@nazarewk It looks like #3379 has been merged. Can I now try updating to v0.45.0 or higher to test this feature? How much will it reduce traffic optimization?
Author
Owner

@bySimpson commented on GitHub (Aug 30, 2025):

Image
Anyone figured something out in this regard? Currently I'm facing the issue that 4 clients create roughly 90GB of egress traffic per day (traffic almost split evenly between nodes; not a metered network, however it's speed limited which causes latency issues for other clients in the same network due to low maximum upload on the connection). Lazy connections does not really seem to change anything. Network consists of 14 peers where ~4 are almost always offline. Most of the traffic goes directly to the netbird server.

<!-- gh-comment-id:3239006775 --> @bySimpson commented on GitHub (Aug 30, 2025): ![Image](https://github.com/user-attachments/assets/87816b49-ba88-492e-882a-8fbe395d983e) Anyone figured something out in this regard? Currently I'm facing the issue that 4 clients create roughly 90GB of egress traffic per day (traffic almost split evenly between nodes; not a metered network, however it's speed limited which causes latency issues for other clients in the same network due to low maximum upload on the connection). Lazy connections does not really seem to change anything. Network consists of 14 peers where ~4 are almost always offline. Most of the traffic goes directly to the netbird server.
Author
Owner

@rgdev commented on GitHub (Sep 22, 2025):

Closing as we could not fit Netbird in our data-limited environment and went for an in-house solution instead.

Since our testing was done on a pretty old build (0.37.x) I recommend opening a new issue if the problem still occurs in more recent versions of Netbird.

<!-- gh-comment-id:3321339733 --> @rgdev commented on GitHub (Sep 22, 2025): Closing as we could not fit Netbird in our data-limited environment and went for an in-house solution instead. Since our testing was done on a pretty old build (0.37.x) I recommend opening a new issue if the problem still occurs in more recent versions of Netbird.
Author
Owner

@ITCMD commented on GitHub (Jun 25, 2026):

Wanted to add that we seem to be hitting a similar issue. We've got IOT networks in the field and have netbird sitting idle ready for us to hop on when we need to. They don't have much for peers. Lazy connections are on. They're hitting upwards of 2 gigs a month of idle netbird usage. This results in hundreds of $ of charge. We really need to be able to put nodes in some sort of a sleep mode that can be woken from the server... ie an ultra lazy mode or something.

Otherwise, netbird is perfect and a huge upgrade from tailscale.

<!-- gh-comment-id:4804042440 --> @ITCMD commented on GitHub (Jun 25, 2026): Wanted to add that we seem to be hitting a similar issue. We've got IOT networks in the field and have netbird sitting idle ready for us to hop on when we need to. They don't have much for peers. Lazy connections are on. They're hitting upwards of 2 gigs a month of idle netbird usage. This results in hundreds of $ of charge. We really need to be able to put nodes in some sort of a sleep mode that can be woken from the server... ie an ultra lazy mode or something. Otherwise, netbird is perfect and a huge upgrade from tailscale.
Sign in to join this conversation.
No Label data-usage mobile
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: DYNR/netbird#7315