Android phones and TV sticks getting relayed connections

Describe the problem

My non-computer devices (phones and TV sticks) are not creating P2P connections. I’m getting “Connection type: Relayed”. Laptops and servers are able to create P2P connections.

To Reproduce

Steps to reproduce the behavior:

  1. Have all devices on the same local network
  2. Install netbird client on devices
  3. Add devices to VPN

Expected behavior

I expected all devices to be connected P2P, including phones and TV sticks.

Are you using NetBird Cloud?

I’m using NetBird Cloud.

NetBird version

$ netbird version
0.71.4

Is any other VPN software installed?

No.

Debug output

To help us resolve the problem, please attach the following anonymized status output

$ netbird status -dA
Peers detail:
 phone-1.netbird.cloud:
  NetBird IP: 100.109.16.252
  Public key: tIK5l4LW73sWBQH78DUjbIlfrsbswrspV3AqJH64ASA=
  Status: Connected
  -- detail --
  Connection type: Relayed
  ICE candidate (Local/Remote): -/-
  ICE candidate endpoints (Local/Remote): -/-
  Relay server address: rels://streamline-us-sjo1-2.relay.netbird.io:443
  Last connection update: 26 minutes, 33 seconds ago
  Last WireGuard handshake: 1 minute, 29 seconds ago
  Transfer status (received/sent) 4.3 KiB/1.9 KiB
  Quantum resistance: false
  Networks: -
  Latency: 0s

 server-1.netbird.cloud:
  NetBird IP: 100.109.68.179
  Public key: KMRzGCUFBK3iI0NdcBit0YQGsHIGsLS0HdkdPnSV01s=
  Status: Connected
  -- detail --
  Connection type: P2P
  ICE candidate (Local/Remote): host/srflx
  ICE candidate endpoints (Local/Remote): 192.168.50.54:51820/198.51.100.0:51821
  Relay server address: rels://streamline-us-sjo1-1.relay.netbird.io:443
  Last connection update: 26 minutes, 40 seconds ago
  Last WireGuard handshake: 2 minutes, 31 seconds ago
  Transfer status (received/sent) 817.7 KiB/636.6 KiB
  Quantum resistance: false
  Networks: -
  Latency: 12.67794ms

 phone-2.netbird.cloud:
  NetBird IP: 100.109.109.147
  Public key: 1tDAQHoMHmojQt3a+Fmho0NKCi4FtqMeeC0XyeMjl2M=
  Status: Connected
  -- detail --
  Connection type: Relayed
  ICE candidate (Local/Remote): -/-
  ICE candidate endpoints (Local/Remote): -/-
  Relay server address: rels://streamline-us-sjo1-2.relay.netbird.io:443
  Last connection update: 26 minutes, 44 seconds ago
  Last WireGuard handshake: 1 minute, 39 seconds ago
  Transfer status (received/sent) 2.6 KiB/2.7 KiB
  Quantum resistance: false
  Networks: -
  Latency: 0s

 laptop-2.netbird.cloud:
  NetBird IP: 100.109.111.141
  Public key: PQ4pD0n7js5MFGMUom/3GOeK0KekLgodie93w7q17GA=
  Status: Connected
  -- detail --
  Connection type: P2P
  ICE candidate (Local/Remote): srflx/prflx
  ICE candidate endpoints (Local/Remote): 198.51.100.0:2161/192.168.50.1:51820
  Relay server address: rels://streamline-us-sjo1-0.relay.netbird.io:443
  Last connection update: 21 minutes, 28 seconds ago
  Last WireGuard handshake: 52 seconds ago
  Transfer status (received/sent) 3.9 KiB/1.7 KiB
  Quantum resistance: false
  Networks: -
  Latency: 12.01874ms

 tv-stick-1.netbird.cloud:
  NetBird IP: 100.109.159.46
  Public key: TYZk1uYoHBzxaC8YkOvwGxU9YLoX3M40cCpeiKyOU2Q=
  Status: Connected
  -- detail --
  Connection type: Relayed
  ICE candidate (Local/Remote): -/-
  ICE candidate endpoints (Local/Remote): -/-
  Relay server address: rels://streamline-us-sjo1-0.relay.netbird.io:443
  Last connection update: 26 minutes, 33 seconds ago
  Last WireGuard handshake: 1 minute, 30 seconds ago
  Transfer status (received/sent) 4.3 KiB/1.8 KiB
  Quantum resistance: false
  Networks: -
  Latency: 0s

Events:
  [INFO] SYSTEM (b2fba567-4b90-4183-8416-7d55be738253)
    Message: Network map updated
    Time: 1 hour, 49 minutes ago
  [INFO] SYSTEM (99649e52-df56-409c-a6fc-3269dc565ef0)
    Message: Network map updated
    Time: 1 hour, 48 minutes ago
  [INFO] SYSTEM (b357fe99-8117-4d3d-b494-12a9da1a03d4)
    Message: Network map updated
    Time: 1 hour, 40 minutes ago
  [INFO] SYSTEM (e53fd8b7-c77f-4108-bc10-f994cc35a5ba)
    Message: Network map updated
    Time: 1 hour, 38 minutes ago
  [INFO] SYSTEM (ea0a53d3-3a8e-4aa5-8b17-3335e7efdbfc)
    Message: Network map updated
    Time: 1 hour, 32 minutes ago
  [INFO] SYSTEM (ea75b343-4b46-41fd-91c3-1a78fee6f758)
    Message: Network map updated
    Time: 1 hour, 28 minutes ago
  [INFO] SYSTEM (44b5bfe2-df8c-4f43-9097-601e9dc93e4e)
    Message: Network map updated
    Time: 1 hour, 18 minutes ago
  [INFO] SYSTEM (4f7f4062-4c45-4f03-8e65-c85d4559b4d7)
    Message: Network map updated
    Time: 26 minutes, 34 seconds ago
  [INFO] SYSTEM (a6a80e85-9354-41cd-bdd8-f0184f3bf611)
    Message: Network map updated
    Time: 25 minutes, 59 seconds ago
  [INFO] SYSTEM (b67228c0-16ab-4619-ac12-90ca6a16251d)
    Message: Network map updated
    Time: 25 minutes, 38 seconds ago
OS: linux/amd64
Daemon version: 0.71.4
CLI version: 0.71.4
Profile: default
Management: Connected to https://api.netbird.io:443
Signal: Connected to https://signal.netbird.io:443
Relays: 
  [stun:stun.netbird.io:443] is Available
  [stun:stun.netbird.io:5555] is Available
  [turns:turn.netbird.io:443?transport=tcp] is Available
  [rels://streamline-us-sjo1-2.relay.netbird.io:443] is Available
Nameservers: 
FQDN: laptop-1.netbird.cloud
NetBird IP: 100.109.35.25/16
Interface type: Kernel
Quantum resistance: false
Lazy connection: false
SSH Server: Disabled
Networks: -
Peers count: 5/5 Connected

Create and upload a debug bundle, and share the returned file key:

$ netbird debug for 1m -AS -U
Log level set to trace.
netbird down
netbird up
Remaining time: 00:00:01
Duration completed
Creating debug bundle...
Log level restored to INFO
Local file:
/tmp/netbird.debug.2603209571.zip
Upload file key:
f79e391890ab27fb37c88b3b4be7011e22aa2e5ca6f38ffa9c4481884941f726/5076741c-91f1-41d4-9b34-a8c7d003a7d9

I tried creating a debug bundle from my TV stick, but the netbird Android TV app doesn’t display the upload file key. The app copied the key to the clipboard, but I have no way of pasting or seeing what’s in the clipboard. It’s a TV…

Additional context

I haven’t created a network or network route or anything else. Every device has the netbird client installed directly. Every device is within my local network. Nothing is outside of my local network.

The phones are on wifi. The TV stick is connected via ethernet.

Devices:

  • TV stick: Nvidia Shield
  • Phones: Pixel 8, Fairphone 6
  • Laptops: Fedora Silverblue, macOS
  • Server: Debian

Router firewall rules.

Have you tried these troubleshooting steps?

  • Reviewed client troubleshooting (if applicable)
  • Checked for newer NetBird versions
  • Searched for similar issues on GitHub (including closed ones)
  • Restarted the NetBird client
  • Disabled other VPN software
  • Checked firewall settings

DOH!

Yep, just go into advanced settings on the android app and un-check force relay connection.

Apparently, on Android devices, the relayed connection is force enabled…

I went to my TV: netbird app/Advanced/Network & Security and disabled “Force relay connection”.

Now everything works!

Pretty strange default. Especially since laptops and servers don’t behave that way…