Turn server wrong nonce #958

Closed
opened 2025-11-20 05:20:37 -05:00 by saavagebueno · 1 comment
Owner

Originally created by @MichalNemec on GitHub (Jun 7, 2024).

Describe the problem

[turn:domain.com:3478?transport=udp] is Unavailable, reason: allocate: Allocate error response (error 438: Wrong nonce)
1413: (10): INFO: session 001000000000000038: realm <domain.com> user <>: incoming packet message processed, error 401: Unauthorized
1413: (10): INFO: session 001000000000000040: realm <domain.com> user : incoming packet message processed, error 438: Wrong nonce

To Reproduce

Steps to reproduce the behavior:

  1. self hosted version in vm
  2. nginx on host (taken your example nginx config)
  3. connect with client on macos
  4. run docker agent on host

Expected behavior

Coturn working correctly.

Are you using NetBird Cloud?

NetBird version

0.27.10

NetBird status -d output:

Peers detail:
 86133dd8a05f.netbird.selfhosted:
  NetBird IP: 100.67.108.76
  Public key: qvwKIfGLPLiZoESOE2EhY2ZfAQzZGVuEU6JV8ZvX/C8=
  Status: Connecting
  -- detail --
  Connection type: 
  Direct: false
  ICE candidate (Local/Remote): -/-
  ICE candidate endpoints (Local/Remote): -/-
  Last connection update: 8 seconds ago
  Last WireGuard handshake: -
  Transfer status (received/sent) 0 B/0 B
  Quantum resistance: false
  Routes: -
  Latency: 0s

OS: darwin/arm64
Daemon version: 0.27.10
CLI version: 0.27.10
Management: Connected to https://vpn.domain.com:33073
Signal: Connected to https://vpn.domain.com:10000
Relays: 
  [stun:domain.com:3478] is Available
  [turn:domain.com:3478?transport=udp] is Unavailable, reason: allocate: Allocate error response (error 438: Wrong nonce)
Nameservers: 
FQDN: michaels-macbook-air.netbird.selfhosted
NetBird IP: 100.67.68.143/16
Interface type: Userspace
Quantum resistance: false
Routes: -
Peers count: 0/1 Connected

Screenshots

Additional context

in turnserver.conf (using default - only thing changed is verbose)

this is in my stream in nginx

upstream turn_servers {
        server VM_IP:3478;
    }

    server {
        listen 3478 udp;
        proxy_pass turn_servers;
        proxy_timeout 10m;
        proxy_responses 1;
        error_log /var/log/nginx/turn_stream_error.log debug;
    }

EDIT: it seems like docker netbird client is working properly, so only macos (dont have windows) is not working, because i get:

1879: (10): INFO: session 001000000000000178: usage: realm=<domain.com>, username=<self>, rp=1, rb=104, sp=1, sb=84
1879: (10): INFO: session 001000000000000178: peer usage: realm=<domain.com>, username=<self>, rp=0, rb=0, sp=0, sb=0
1879: (10): INFO: session 001000000000000178: closed (2nd stage), user <self> realm <domain.com> origin <>, local VM_IP:3478, remote 192.168.122.1:49330, reason: allocation watchdog determined stale session state
1892: (9): INFO: session 000000000000000176: usage: realm=<domain.com>, username=<>, rp=2, rb=40, sp=2, sb=128
1892: (9): INFO: session 000000000000000176: peer usage: realm=<domain.com>, username=<>, rp=0, rb=0, sp=0, sb=0
1892: (9): INFO: session 000000000000000176: closed (2nd stage), user <> realm <domaincom> origin <>, local VM_IP:3478, remote 192.168.122.1:44065, reason: allocation watchdog determined stale session state
1892: (9): INFO: session 000000000000000177: usage: realm=<domain.com>, username=<>, rp=1, rb=36, sp=1, sb=84
1892: (9): INFO: session 000000000000000177: peer usage: realm=<domain.com>, username=<>, rp=0, rb=0, sp=0, sb=0
1892: (9): INFO: session 000000000000000177: closed (2nd stage), user <> realm <domain.com> origin <>, local VM_IP:3478, remote 192.168.122.1:51523, reason: allocation watchdog determined stale session state
1892: (9): INFO: session 000000000000000178: usage: realm=<domain.com>, username=<self>, rp=1, rb=104, sp=1, sb=84
1892: (9): INFO: session 000000000000000178: peer usage: realm=<domain.com>, username=<self>, rp=0, rb=0, sp=0, sb=0
1892: (9): INFO: session 000000000000000178: closed (2nd stage), user <self> realm <domain.com> origin <>, local VM_IP:3478, remote 192.168.122.1:48550, reason: allocation watchdog determined stale session state

EDIT2: if i do no-auth in turnserver, then i get relays in trickle, so no problem in nginx.

Originally created by @MichalNemec on GitHub (Jun 7, 2024). **Describe the problem** [turn:domain.com:3478?transport=udp] is Unavailable, reason: allocate: Allocate error response (error 438: Wrong nonce) 1413: (10): INFO: session 001000000000000038: realm <domain.com> user <>: incoming packet message processed, error 401: Unauthorized 1413: (10): INFO: session 001000000000000040: realm <domain.com> user <self>: incoming packet message processed, error 438: Wrong nonce **To Reproduce** Steps to reproduce the behavior: 1. self hosted version in vm 2. nginx on host (taken your example nginx config) 3. connect with client on macos 4. run docker agent on host **Expected behavior** Coturn working correctly. **Are you using NetBird Cloud?** - **NetBird version** 0.27.10 **NetBird status -d output:** ``` Peers detail: 86133dd8a05f.netbird.selfhosted: NetBird IP: 100.67.108.76 Public key: qvwKIfGLPLiZoESOE2EhY2ZfAQzZGVuEU6JV8ZvX/C8= Status: Connecting -- detail -- Connection type: Direct: false ICE candidate (Local/Remote): -/- ICE candidate endpoints (Local/Remote): -/- Last connection update: 8 seconds ago Last WireGuard handshake: - Transfer status (received/sent) 0 B/0 B Quantum resistance: false Routes: - Latency: 0s OS: darwin/arm64 Daemon version: 0.27.10 CLI version: 0.27.10 Management: Connected to https://vpn.domain.com:33073 Signal: Connected to https://vpn.domain.com:10000 Relays: [stun:domain.com:3478] is Available [turn:domain.com:3478?transport=udp] is Unavailable, reason: allocate: Allocate error response (error 438: Wrong nonce) Nameservers: FQDN: michaels-macbook-air.netbird.selfhosted NetBird IP: 100.67.68.143/16 Interface type: Userspace Quantum resistance: false Routes: - Peers count: 0/1 Connected ``` **Screenshots** - **Additional context** in turnserver.conf (using default - only thing changed is verbose) this is in my stream in nginx ``` upstream turn_servers { server VM_IP:3478; } server { listen 3478 udp; proxy_pass turn_servers; proxy_timeout 10m; proxy_responses 1; error_log /var/log/nginx/turn_stream_error.log debug; } ``` EDIT: it seems like docker netbird client is working properly, so only macos (dont have windows) is not working, because i get: ``` 1879: (10): INFO: session 001000000000000178: usage: realm=<domain.com>, username=<self>, rp=1, rb=104, sp=1, sb=84 1879: (10): INFO: session 001000000000000178: peer usage: realm=<domain.com>, username=<self>, rp=0, rb=0, sp=0, sb=0 1879: (10): INFO: session 001000000000000178: closed (2nd stage), user <self> realm <domain.com> origin <>, local VM_IP:3478, remote 192.168.122.1:49330, reason: allocation watchdog determined stale session state 1892: (9): INFO: session 000000000000000176: usage: realm=<domain.com>, username=<>, rp=2, rb=40, sp=2, sb=128 1892: (9): INFO: session 000000000000000176: peer usage: realm=<domain.com>, username=<>, rp=0, rb=0, sp=0, sb=0 1892: (9): INFO: session 000000000000000176: closed (2nd stage), user <> realm <domaincom> origin <>, local VM_IP:3478, remote 192.168.122.1:44065, reason: allocation watchdog determined stale session state 1892: (9): INFO: session 000000000000000177: usage: realm=<domain.com>, username=<>, rp=1, rb=36, sp=1, sb=84 1892: (9): INFO: session 000000000000000177: peer usage: realm=<domain.com>, username=<>, rp=0, rb=0, sp=0, sb=0 1892: (9): INFO: session 000000000000000177: closed (2nd stage), user <> realm <domain.com> origin <>, local VM_IP:3478, remote 192.168.122.1:51523, reason: allocation watchdog determined stale session state 1892: (9): INFO: session 000000000000000178: usage: realm=<domain.com>, username=<self>, rp=1, rb=104, sp=1, sb=84 1892: (9): INFO: session 000000000000000178: peer usage: realm=<domain.com>, username=<self>, rp=0, rb=0, sp=0, sb=0 1892: (9): INFO: session 000000000000000178: closed (2nd stage), user <self> realm <domain.com> origin <>, local VM_IP:3478, remote 192.168.122.1:48550, reason: allocation watchdog determined stale session state ``` EDIT2: if i do no-auth in turnserver, then i get relays in trickle, so no problem in nginx.
saavagebueno added the triage-needed label 2025-11-20 05:20:37 -05:00
Author
Owner

@MichalNemec commented on GitHub (Jun 13, 2024):

stun needs username and pass too, now it works.

@MichalNemec commented on GitHub (Jun 13, 2024): stun needs username and pass too, now it works.
Sign in to join this conversation.
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: SVI/netbird#958