mirror of
https://github.com/netbirdio/netbird.git
synced 2026-05-17 21:52:24 -04:00
High battery usage #531
Open
opened 2025-11-20 05:13:09 -05:00 by saavagebueno
·
27 comments
No Branch/Tag Specified
main
embedded-vnc
fix-dns-fallback-self-loop
claude/webtransport-relay-wasm-mUjY9
claude/vnc-udp-feasibility-6KB1U
readme-cleanup
client/capture-dns-forwarder-port
fix-ssh-authorized-users-multi-rule
fix/wireguard-port-zero
windows-dns-firewall
ui-refactor
fix/wgport-config
feature/refactor-clusters
fix/rosenpass
drop-candidateviaroutes-filter
e2e-windows-dns-combined
refactor-combined
wasm-websocket-dial
feature/affected-peers
dependabot/go_modules/github.com/Azure/go-ntlmssp-0.1.1
debug-logs
reduce-embed-wg-pool
dependabot/go_modules/github.com/jackc/pgx/v5-5.9.2
fix/login-cmd-root-flags
feat/reseller-openapi-spec
github-issue-resolver
add-steamos-support
fix-darwin-uninstaller
flutter-test
dependabot/npm_and_yarn/proxy/web/postcss-8.5.12
ci/freebsd-pkg-bootstrap
cached-serial-check-on-sync
fix-mgmt-cache-bypass-overlay
revert-easyjson-5938
revert-ice-5820
revert-firewalld-5928
refactor/permissions-manager
wasm-js-func-release
revert-dns-5935-systemd-resolved
revert-dns-5935-5945
revert-dns-5945-mgmt-cache
feature/log-most-busy-peers
prototype/ui-wails
coderabbitai/utg/8ae8f20
feature/use-peer-fqdn-on-https
dependabot/go_modules/golang.org/x/image-0.38.0
feature/metrics-push-management-control
release/0.68.3
dependabot/go_modules/github.com/aws/aws-sdk-go-v2/aws/protocol/eventstream-1.7.8
dependabot/go_modules/github.com/aws/aws-sdk-go-v2/service/s3-1.97.3
add-slack-channel
claude/rdp-token-passthrough-eNcqW
transparent-proxy
fix/macos-stale-route-eexist
crowdsec-selfhosted
fix/remove-otel-units
entire/checkpoints/v1
dependabot/go_modules/github.com/go-jose/go-jose/v4-4.1.4
fix/getting-started
feat/static-connectors-combined-server
feature/use-local-keys-embedded
feature/fleetdm
set-env-only-if-not-fork
feature/expose-has-channel
fix/connection-status-race
fix/filter-cgnat-cni-ice-candidates
feature/check-cert-locker-before-acme
test/proxy-fixes
test/proxy-mtu
prototype/ui-tauri
test/proxy-speed
fix-reused-ports
feat/migrate-to-embedded-idp
feature/add-serial-to-proxy-merged
deploy/proxy-serial
test/connection
feature/disable-legacy-port
feature/flag-to-disable-legacy-port
test/perftest
dependabot/go_modules/github.com/pion/dtls/v3-3.0.11
fix/http-redirect
poc-token-command
dn-reverse-proxy
prototype/reverse-proxy-rename
prototype/reverse-proxy-logs-pagination
feature/client-metrics
prototype/reverse-proxy-clusters
debug-dns-route
fix/win-dns-batch
add-extra-route-logs
job-stream-notify-disconnection-eof
deploy/secrets-manager
trigger-proxy-update
bug/update-ios-client-code-build-tags
sync-client-netmap-serial
log/conn-disconn
nmap/compaction-deploy
ci-win-test
feature/disk-encryption-check
wasm-debug
swap-dns-prio
fix/dex-config
feature/migrate-auto-groups-to-table
dependabot/go_modules/github.com/quic-go/quic-go-0.57.0
nmap/compaction
dex-nocgo-stub
feature/exclude-terraform-from-rate-limiting
test-freebsd
retries-refactor
coderabbitai/docstrings/b7e98ac
feat/integrate-zitadel
bug/ios-hanging-reconection
zitadel-idp
feat/network-map-serial
refactor/get-account-no-users
feat/auto-upgrade
feature/report-high-pat-id
feature/temporary-access-for-resource
fix/nmap-fwrules
dont-restart-dns
prototype/ui
update-gomobile
go-dns-for-ice
wasm-ldflags
test-ldflags
wasmbuild-test
feature/networks-s2s
vk/compare-nmaps
dbg/bothmaps
feature/changeset
reorder-dns-shutdown
fix/relay-reconnection-race
fix/nmap-exitnodes
vk/debug/nmap-both
move-licensed-code
feat/better-daemon-connection-lost-message
feat/auto-update-2
test/timings
refactor/getaccount-raw
tests/nmap-getaccount
refactor/nmap
refactor/nmap-limit-buffer
feature/detect-mac-wakeup
feature/extract-modules
quick-setings
feat/sync-limiter
feature/store-cache-impl
fix-install-version
feature/store-metrics
feature/metrics-on-store
feature/use-gorm-cache
loadtest-signal
unsymmetrical-squash
refactor/reducate-signaling
test/update-reduce
feature/store-cache
feature/remote-debug
cli-ws-proxy-backend-addr
feat/mgmt-map-serial
snyk-fix-d9d0081a4c7f9137bdb59d0d50a141a2
snyk-fix-7415cea5a11acd66753540ca2c598c63
job-yml-update
feature/android-allow-selecting-routes
fix/up-sequence
fix/dns-hash-update
snyk-fix-967adae9863f17f108ce8948d9117b8d
log/getaccount-by-peer
signal-suppressor
dns-exit-node
feature/auto-updates
feature/cache-srv-key
merged-fixes
fix/missed-offers-and-debug
debug-and-fixes
poc-wasm-clean-backend-s2s
test/remote-debug
debug-api
dependabot/go_modules/github.com/docker/docker-28.0.0incompatible
fix/remove-gpo-if-empty
fix/test-freebsd
fix/mysql-setup
fix/remove-logout-btn
handle-existing-domain-user
chore/unify-domain-validation
snyk-fix-c5fafc8a50ce1f29046e25a1fc346185
feat/profile-edit-btn
snyk-fix-a54966211e18d4cf67e5a2757cc006d1
log-short-id
feat/logout-ephemeral
log-checks
batch-wg-ops
nb-interface-default
feat/aws-integration
add/race-test
feature/relay-feature-versioning
fix/systemd-service-logs
poc/preprocessed-map
add-account-onboarding
bind-ipv6
fix/merge-main
logs/peerlogs-addpeer
feature/net-297-network-migration
feature/support-skip-auto-apply-exit-node-routes
set-cmd
set-command-with-cursor
feature/limit-update-channel
stop-using-locking-share
feature/poc-lazy-detection
feature/net-248-removal-of-sync-mutex-locks
test/multiple-peer-logging
preresolve
add-ns-punnycode-support
apply-routes-early
windows-search-domains
fix/connecting-route-filter
feature/management/rest-client/impersonate
debug-local-records
resource-fields-snake-case
test/grpc-rate-limit
traffic-correlation-policy
feature/rest-client-options
feat/events-metrics
feature/buf-cli
test/add-ratelimiter
test/remove-write-lock-on-add-peer
fix/add-peer-semaphore
feature/users-roles-endpoint
mlsmaycon-patch-1
debug-user-role
chore/primary-key-on-networks
feature/update-account-peers-buffer-startup
remove-ubuntu2004-runners
refactor/permissions-no-pat-allowed
ref/logrus-factory
use-conntrack-zone
deploy/permissions-account
feature/lazy-connection-idle
ref/improve-test-cov
restore-pr-3440
test/increase-grpc-timeouts
feat/buffer-account-peers-update
test/networkmapgeneration-changes
feature/base-manager
feature/flow-receiver
chore/benchmark-with-large-runner
refactor/handshake-initiator
client/ui-update-systray-icons
userspace-router
wgwatcher-test
output-if-key-already-exists
fix/relay-reconnection
feature/port-forwarding-client-codecleaning
detached2
test/callbacks-nil-iceconninfo
refactor/optimize-peer-expiration
enable-udp-port-for-docker-template
fix/relay-update
feature/apply-posture-netmap
fix/group-update-existing-resource
conntrack-stats
upgrade-okta-sdk
multi-price
test/conn-stat
set-min-parallel-tests-for-management
dns-interceptor
debug-dns
router-dns
add-static-system-info
debug-0.29.4
debug-0.33.0
account-refactoring
relay/2800_quic
route-get-account-refactoring
test/seed-random-routes
feature/get-account-refactoring
test/reconnect-race-condition
refactor/get-account-usage
feature/add-session-id-to-update-channel
improve-ipv4conn
fix/async-pion-event-handling
debug
add-offload
feature/validate-group-association-debug
fix/limit-conn-for-sqlite
test/engine-iface
test/transaction-for-jwt-sync
fix/engine-stop-in-foreground
feature/add-mysql-support
test-migration
refactor/header-size-values
relay/eliminate-gob
test/signal-dispatcher-with-relay
relay/debug
validate-icon
feature/ipv6-support
use-pre-expanded-peers-map
feature/use-signal-dispatcher
validate/peer-status
add-read-write-times
fix/sync-peer-race
feature/relay-status
netmap
evaluate/network-map-hash
fix/lower-dns-resolve-interval-on-fail
feature/relay
fix/go-mod-version
upgrade-nftables
synology-userspace-mode
fix/use-ip-for-default-routes-on-darwin
fix/proxy_close
enable-release-workflow-on-pr
deploy/peer-performance
feature/permanent-turn
feature/permanent-turn-proxy
deploy/posture-check-sqlite
feature/optimize_sqlite_save
debug-ios-behavior
fix/delete-route-only-after-adding
tshoot/windows-logger
remove-new-routing
refactor/eliminate-repo-dependency
add-arm-to-ci
refactor-demo-account-object
test/abc2
test/abc
send-ssh-rosenpass-config-meta
refactor-demo
ensure-schedule-never-runs-non-positive
feature/peer-validator-groupmgm
feature/peer-validator-fix
fix/include-active-dashboard-users
fix/handle-canceling-schedule
fix/geo-download
debug-google-workspace
yury/resolve-ip-to-location
feature/extend-sysinfo
sqlite-async-peer-status
yury/add-postgresql-store
fix/route
test-build
posture-checks-poc
debug-keycloak-idp
poc/netstack
for-pascal-tmp
peer-logout-management
manual-peer-logout
detached
chore/refactor-management
test/dns-bind
fix/enforce-acl-for-containers
yury/use-sync-map-in-updatechannel
fix/events-key-handling
filter-cache-on-load-account
fix/user-expiration
handle-user-context-cancellation
nb-client-k8s-statefulset
fake-addr
fix/iptables_in_docker
ebpf-debug
update-getting-started-flow-use-postgres
fix/peer_list_notification
feature/device-authentication-with-client-secret
feature/keep_alive
feat-groups-from-jwt
separate_proxy_from_wgconfig
fix/wg_conn
wg_conn_fix
wg_bind_parallel_processing
fix-rollback-get-acls
proxy_cfg_cleanup
performance-improvement-rego
update-lock-log-level
feat-client-side-acl
refactor/move_grpcserver_logic_to_account_manager
feature/event-storage
feature/update-idp-redeeming-invite
feature/api-peer-info
return-groupminimum-setupkey
feature/interface-bind
documentation_enhancement
fix-peer-registration
ssh
users_cache
pass-client-caller
client_caller_type
revert-283-feat-fix-windows-installer
periodic-peer-updates
ebpf
braginini/wasm
v0.71.2
v0.71.1
v0.71.0
v0.70.5
v0.70.4
v0.70.3
v0.70.2
v0.70.1
v0.70.0
v0.69.0
v0.68.3
v0.68.2
v0.68.1
v0.68.0
v0.67.4
v0.67.3
v0.67.2
v0.67.1
v0.67.0
v0.66.4
v0.66.3
v0.66.2
v0.66.1
v0.66.0
v0.65.3
v0.65.2
v0.65.1
v0.65.0
v0.64.6
v0.64.5
v0.64.4
v0.64.3
v0.64.2
v0.64.1
v0.64.0
v0.63.0
v0.62.3
v0.62.2
v0.62.1
v0.62.0
v0.61.2
v0.61.1
v0.61.0
v0.60.9
v0.60.8
v0.60.7
v0.60.6
v0.60.5
v0.60.4
v0.60.3
v0.60.2
v0.60.1
v0.60.0
v0.59.13
v0.59.12
v0.59.11
v0.59.10
v0.59.9
v0.59.8
v0.59.7
v0.59.6
v0.59.5
v0.59.4
v0.59.3
v0.59.2
v0.59.1
v0.59.0
v0.58.2
v0.58.1
v0.58.0
v0.57.1
v0.57.0
v0.56.1
v0.56.0
v0.55.1
v0.55.0
v0.54.2
v0.54.1
v0.54.0
v0.53.0
v0.52.2
v0.52.1
v0.52.0
v0.51.2
v0.51.1
v0.51.0
v0.50.3
v0.50.2
v0.50.1
v0.50.0
v0.49.0
v0.48.0-dev2
v0.48.0
v0.47.2
v0.47.1
v0.47.0
v0.46.0
v0.45.3
v0.45.2
v0.45.1
v0.45.0
v0.44.0
v0.43.3
v0.43.2
v0.43.1
v0.43.0
v0.42.0
v0.41.3
v0.41.2
v0.41.1
v0.41.0
v0.40.1
v0.40.0
v0.39.2
v0.39.1
v0.39.0
v0.38.2
v0.38.1
v0.38.0
v0.37.2
v0.37.1
v0.37.0
v0.36.7
v0.36.6
v0.36.5
v0.36.4
v0.36.3
v0.36.2
v0.36.1
v0.36.0
v0.35.2
v0.35.1
v0.35.0
v0.34.1
v0.34.0
v0.33.0
v0.32.0
v0.31.1
v0.31.0
v0.30.3
v0.30.2
v0.30.1
v0.30.0
v0.29.4
v0.29.3
0.29.3
v0.29.2
v0.29.1
v0.29.0
v0.28.9
v0.28.8
v0.28.7
v0.28.6
v0.28.5
v0.28.4
v0.28.3
v0.28.2
v0.28.1
v0.28.0
v0.27.10
v0.27.9
v0.27.8
v0.27.7
v0.27.6
v0.27.5
v0.27.4
v0.27.3
v0.27.2
v0.27.1
v0.27.0
v0.26.7
v0.26.6
v0.26.5
v0.26.4
v0.26.3
v0.26.2
v0.26.1
v0.26.0
v0.25.9
v0.25.8
v0.25.7
v0.25.6
v0.25.5
v0.25.4
v0.25.3
v0.25.2
v0.25.1
v0.25.0
v0.24.4
v0.24.3
v0.24.2
v0.24.1
v0.24.0
v0.23.9
v0.23.8
v0.23.7
v0.23.6
v0.23.5
v0.23.4
v0.23.3
v0.23.2
v0.23.1
v0.23.0
v0.22.7
v0.22.6
v0.22.5
v0.22.4
v0.22.3
v0.22.2
v0.22.1
v0.22.0
v0.21.11
v0.21.10
v0.21.9
v0.21.8
v0.21.7
v0.21.6
v0.21.5
v0.21.4
v0.21.3
v0.21.2
v0.21.1
v0.21.0
v0.20.8
v0.20.7
v0.20.6
v0.20.5
v0.20.4
v0.20.3
v0.20.2
v0.20.1
v0.20.0
v0.19.0
v0.18.1
v0.18.0
v0.17.0
v0.16.0
v0.15.3
v0.15.2
v0.15.1
v0.15.0
v0.14.6
v0.14.5
v0.14.4
v0.14.3
v0.14.2
v0.14.1
v0.14.0
v0.13.0
v0.12.0
v0.11.6
v0.11.5
v0.11.4
v0.11.3
v0.11.2
v0.11.1
v0.11.0
v0.10.10
v0.10.9
v0.10.8
v0.10.7
v0.10.6
v0.10.5
v0.10.4
v0.10.3
v0.10.2
v0.10.1
v0.10.0
v0.9.8
v0.9.7
v0.9.6
v0.9.5
v0.9.4
v0.9.3
v0.9.2
v0.9.1
v0.9.0
v0.8.12
v0.8.11
v0.8.10
v0.8.9
v0.8.8
v0.8.7
v0.8.6
v0.8.5
v0.8.4
v0.8.3
v0.8.2
v0.8.1
v0.8.0
v0.7.1
v0.7.0
v0.6.4
v0.6.3
v0.6.2
v0.6.1
v0.6.0
v0.5.11
v0.5.10
v0.5.1
v0.5.0
v0.4.0
v0.3.5
v0.3.4
v0.3.3
v0.3.2
v0.3.1
v0.3.0
v0.2.3
v0.2.2-beta.1
v0.2.1-beta.5
v0.2.0-beta.5
v0.2.0-beta.4
v0.2.0-beta.3
v0.2.0-beta.2
v0.2.0-beta.1
v0.1.0-beta.3
v0.1.0-beta.2
v0.1.0-beta.1
v0.1.0-rc.2
v0.1.0-rc-1
v0.0.8-hotfix-1
v0.0.8
v0.0.7
v0.0.6
v0.0.5
v0.0.4
v0.0.3
v0.0.2
v0.0.1
v0.0.0
Labels
Clear labels
2021 Q4
2022 Q1
2022 Q1
accessibility
acl
agent
agent
Android
Android
api
authentik
automation
azure
battery-usage
bug
cache
client
client-ui
cloud
cloud-only
cloudflare
community
compatibility
config-idp
config-issue
connection
contribution
coturn
cross-vpn
dashboard
data-usage
distribution
dns
docker
documentation
duplicate
enhancement
enhancement
event-stream
feature-request
freebsd
getting-started
go
good first issue
gui
help wanted
home-assistant
idp
inconsistency
integration
integrations
ios
ipv6
jwt
k8s
keycloak
linux
login
macos
management-service
missing-docs
mobile
moved-internal
needs-review
netbird-ui
networking
new-platform
nginx
notification
okta
openwrt
packaging
peer-management
peer-management
peer-management
performance
postgres
posture-checks
psk
pull-request
question
refactor
relay
release
rfc
routes
security
security-related
self-hosting
server
signal
sleep-issue
ssh
ssl
status
store
synology
system-compatibility-issue
test-suite
third-party-integration
triage
triage-needed
troubleshooting
UX
waiting-feedback
windows
wontfix
zitadel
Mirrored from GitHub Pull Request
Milestone
No items
No Milestone
Projects
Clear projects
No project
Assignees
saavagebueno
Clear assignees
No Assignees
Notifications
Due Date
No due date set.
Dependencies
No dependencies set.
Reference: SVI/netbird#531
Reference in New Issue
Block a user
Blocking a user prevents them from interacting with repositories, such as opening or commenting on pull requests or issues. Learn more about blocking a user.
Delete Branch "%!s()"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Originally created by @Pounii25 on GitHub (Dec 4, 2023).
I tryed every type of battery profile I have on my Android 13 device but the consumption is very high despite the real usage is close to nothing (under 40 Mb data in the entire month, can't get the day but sure less)
My set up is simple:
A peer (as root peer) on my HomeLab, another peer which is my Android phone. I also have custom dns pointing on the route peer but just for my internal domain (seems working fine)
I let the peer connected all the day, at the the end of it the consumption just for the app is more than 30%
My device:
Asus Zenfone 9
Android 13
@Ginner commented on GitHub (Dec 6, 2023):
Might be related to my issue here: #1140.
Do you know if you're changing networks?
@Pounii25 commented on GitHub (Dec 6, 2023):
Do you mean If I change the provider 5g antenna during the day?
@pappz commented on GitHub (Dec 7, 2023):
Hi @Pounii25! Could you take a test without DNS settings? I would like to localize the root cause of the issue.
@Pounii25 commented on GitHub (Dec 7, 2023):
Sure! ok now I have disable the DNS forward to my rooting peer. I let the routes enabled, so you can test it separately. I will report here the consumption.
@Pounii25 commented on GitHub (Dec 7, 2023):
ok after more than 2 hours I can tell you that without DNS forward there is no battery drain at all.
@Ginner commented on GitHub (Dec 7, 2023):
I get a similar issue (battery drain and phone getting hot) when changing from WiFi to 4g and vice versa, from there on the battery drain will continue until I either logout/login or restart the app. So I meant switching network 'type'.
@pappz commented on GitHub (Dec 8, 2023):
@Pounii25 Thank you for the tests. You said created a DNS setting "just for my internal domain". Could you give me more details about this setting? I would like to setup something similar.
@Pounii25 commented on GitHub (Dec 8, 2023):
I didn't note that just because i had battery drain all the time, so i can't tell if also swap network can cause it. But I can tell that I note ( but i'm not sure) when you swap from 4g to wifi not all time the vpn still up and working property, maybe is related to what you're talking.
@Pounii25 commented on GitHub (Dec 8, 2023):
Sure! So, i set the peer in my homelab as routing peer with a specific network range "192.168.8.0/24", then i test with my phone if any call to my internal service ( example 192.168.8.3) was working and it was fine. Then, in my local pi-hole I set some static DNS name for my service (they all point to a reverse proxy for local certificates), in this way i dont have to remember and write every time IP for my service. Last step I set in netbird manager a specific DNS server in my lab, for example 192.168.8.10 and limited it only for a specifi domain, like "private.local". And that is all I've done.
@Pounii25 commented on GitHub (Jan 2, 2024):
an update: I made some change in my host VM where is running my DNS service. Seems like I was creating a loop (even the dns resolution was effectively working fine). I will monitor for a couple of days, just to be sure.
update: ok I think I got the real problem, a brief introduction to my environment: I have like more or less 10 apps selfhosted behind a proxy (caddy). One of them (Home Assistant) is implemented but turned off because non in usage yet ( my desire to do things right led me to implement it completely before I needed it). Here the point: I have the app on the phone, configured to point on my environment. I note thousands of queries for that in 1 day!! I find it interesting that if I don't have Netbird turned on, I don't suffer from battery drain. It makes me think that if there wasn't a proxy involved, there wouldn't be this problem. Interesting as a dynamic, because it is a fairly common pattern in homelabs.
Update: the issue persist.
@j007bond007 commented on GitHub (Jan 17, 2024):
It seems like this could be related to a few things. I've experienced this as well and I have a few suspected causes:
@markcst commented on GitHub (Dec 29, 2024):
I think this is quite interesting. I'm experiencing an high battery consumption too, and I noticed that (but for the time I'm writing this is only an impression to be verified) it seems to occur when I'm switching from 5G to wifi or vva.
When I switch, I often don't turn off the Netbird connection, I simply switch and most of the time it stays connected to it.
I don't know if this is normal, though.
I have Netbird app on a Pixel 7a with a Allow background usage set to Optimized (not Unrestricted)
@jWXZSCsqrpZRSVwauBjn commented on GitHub (Jan 22, 2025):
I'm experiencing the exact same issue. Happens after switching network type. I also have dns enabled for that device.
@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
@Spiritreader commented on GitHub (May 23, 2025):
@nazarewk @pappz quick question regarding lazy connections and battery usage on android:
https://docs.netbird.io/how-to/lazy-connection
The feature mentions that:
My concern is that this does not reduce battery usage for phones in a meaningful way.
In the following scenario, we have a netbird client on a phone (A), which has lazy connections enabled by default.
Initially, when the netbird client is started on (A), no other clients will be connected due to connections being initialized lazily.
Then, if a resource is accessed on any server that is part of the network (B), a connection will be established.
From this point on, since netbird is a chatty protocol (sending keepalives in a short interval), the phone (A) will no longer be able to enter sleep, because it will maintain the connection to that server forever. The only way that (A) will ever terminate the connection is if, at some point, (B) is unreachable for longer than the configured timeout, which basically never happens unless the node goes offline completely due to network failure etc.
If unreachable is a condition for disconnection:
It would only reduce the amount of traffic if clients other than (A) go offline for more than
{$timeout}minutes, instead of reducing active connections back to 0 slowly when no more traffic is flowing on mobile devices.As such, battery usage goes up the longer the netbird client is running on (A) if it is used to connect to a variety of peers.
@maca134 commented on GitHub (May 27, 2025):
This is still happening. New pixel 9 and the battery has been smashed in half a day. Battery info shows netbird consuming the most power.
My phone gets noticeably warm when netbird is running.
@aws1313 commented on GitHub (Jun 1, 2025):
The android client hasn't been updated yet.
This usually takes a couple of weeks to months longer.
For Pixel Phones: turning off 5G improved the situation quite a bit for me.
@Nevenit commented on GitHub (Jun 17, 2025):
I was having the same issue, which is what made me switch back to tailscale :/
@HammyHavoc commented on GitHub (Jun 17, 2025):
Would be helpful if people can post screenshots of battery use versus other things along with how much data they've used during that period via it. Likewise, what exactly they're doing via it, e.g. gaming, streaming media, remote desktop—anything to get a feel for what they think it otherwise should be. Perhaps also a comparison of with and without NetBird for the same workload (would be a real boon).
I'm not actually seeing anywhere near as much use myself currently (Android 16 on a Pixel 6a), but that could simply be down to less throughput. I'll need to investigate further.
@Ginner commented on GitHub (Jun 17, 2025):
On my end, it didn't correlate in any way to throughput. I use my phone very little. I could leave netbird off and it would last for a couple of days, turn netbird on and it would get hot to the touch and last for ~7hrs. Just laying on a table connected to which ever network (WiFi/4G). https://github.com/netbirdio/netbird/issues/1140
@aws1313 commented on GitHub (Jun 18, 2025):
I have basically the same issue @Ginner described. If I turn off wifi and just let my phone sit on the table (locked with screen turned off) for like 5-6 hours it sucks up 40%-50% of my battery and the phone gets hot. I have a Google Pixel 7 which is known for it's inefficient cellular network module. I have the same issue when I use 5G in the basement, I suppose that the data rates get so low that my phone turns on the 5G module 100% of the time which makes the phone getting hot and draining the battery. I think that a similar thing happens in the background with netbird. Even if there is no traffic netbird keeps up the connection with the server which leads to 40mb of data usage without doing anything according to another user. The intervals are probably so short that the 5G module is on most of the time which leads to the described problem.
Switching off 5G helps since both 4G and LTE as well as WiFi are much more energy efficient with the same constant traffic.
I used plain wireguard before and it drained 5% of battery for a whole day cellular on the same phone in the same scenario.
Lazy connections won't help me at all since i need DNS and regular updates for my home assistant instance (i tried battery usage without them, no change) which makes the lazy connection feature not disconnecting since the connected nodes are used to often.
Will try tailscale as well, i don't see the possibility that this issue gets better in the near future, which makes me quite sad. (The problem is known for 2 years!)
Edit: this is my issue. There are people commenting here having the same symptoms caused by other things (switching networks using 4g, ...)
@Nevenit commented on GitHub (Jun 24, 2025):
I wasn't even doing anything. I installed it and made sure it worked and barely used my phone for 4 hours, then I noticed that it was very hot and the battery was drained. Been using wireguard for 2 years, no issues. Switched to tailscale now, also no issues. Battery drain when phone is idle sending occasional location updates to home assistant made NetBird unusable for me.
I'm on android 15 (calyxos) google pixel 7
@stefanvanherwijnen commented on GitHub (Aug 25, 2025):
I didn't notice any problems until I seemed to be on a location with a bad cellular connection. Netbird used 30% of the battery, probably by reconnecting every time.
@FoxxMD commented on GitHub (Oct 3, 2025):
Chiming in that I have the same issue with the same scenario as most others here:
I don't think disabling 5g is an appropriate solution...the regular wg client doesn't have these issues regardless of network. Also lazy connections is not feasible since I use nb/wg for always-connected dns (again, not an issue on plain wg)
@Exitium-DEV commented on GitHub (Oct 24, 2025):
Google Pixel 8 pro same issue, insane battery drain - don't have this issue with Tailscale. It's a big blocker for me migrating over
@yanbec commented on GitHub (Nov 12, 2025):
Migrated off NetBird because of this - using my self hosted service outside on my phone is a primary use case. Came to check back if this has improved. I really hope this gets fixed, I liked the rest and love it's still evolving!
@Ginner commented on GitHub (Nov 14, 2025):
I've unfortunately migrated as well. I'm using a Tailscale/Headscale setup and have to report, that while it is better, the issue remains. I get about a days worth of battery, when I'm out and about, on a phone that'd otherwise do a little over 2 days w.o. Tailscale.
I've used nebula in the past, but not on the phone, so cannot report on the battery usage - Their dubious (imo) approach to the licensing of the phone application keeps me off of it.
I truly find Netbird to be the most promising open source overlay network solution and I really hope it is possible to solve this issue.