Devices do not stay connected after pairing #1201

Closed
opened 2025-11-20 05:25:50 -05:00 by saavagebueno · 2 comments
Owner

Originally created by @Jdplays on GitHub (Sep 1, 2024).

Describe the problem

I have setup Netbird with AUthentik and Traefik. I am able to go to the management dashboard, login and use the dashboard. I can also add devices to it. I have added my Phone, Windows machine and Debian server to it.

The issue is that they can be added, but instantly go to offline. They also cannot see any other peers. I have tried to fix this for hours, but cannot work out what is wrong.
When i run netbird status on my debian server, i get this:
OS: linux/amd64 Daemon version: 0.28.9 CLI version: 0.28.9 Management: Connected Signal: Disconnected Relays: 0/0 Available Nameservers: 0/0 Available FQDN: the-whale.domain.com NetBird IP: 100.92.75.16/16 Interface type: Kernel Quantum resistance: false Routes: - Peers count: 0/0 Connected

It looks like signal is not connected. But im not sure why.

Expected behavior
Devices should appear as online and be able to connect to the network after being paired

Are you using NetBird Cloud?

No, using Self hosted

NetBird version

0.28.9

NetBird status -dA output:

Peers detail:
OS: linux/amd64
Daemon version: 0.28.9
CLI version: 0.28.9
Management: Connected to https://netbird.anon-QN8tn.domain:443
Signal: Disconnected
Relays:
Nameservers:
FQDN: the-whale.anon-QN8tn.domain
NetBird IP: 100.92.177.110/16
Interface type: Kernel
Quantum resistance: false
Routes: -
Peers count: 0/0 Connected

Please provide the file created by netbird debug for 1m -AS.
It just repeats this for 3000 lines:

2024-09-01T22:24:49+01:00 INFO signal/client/grpc.go:69: createConnection error: context deadline exceeded
2024-09-01T22:24:49+01:00 ERRO signal/client/grpc.go:77: failed to connect to the signalling server: context deadline exceeded
2024-09-01T22:24:49+01:00 ERRO client/internal/connect.go:364: error while connecting to the Signal Exchange Service netbrid.anon-EMmWY.domain:443: context deadline exceeded
2024-09-01T22:24:49+01:00 ERRO client/internal/connect.go:232: rpc error: code = FailedPrecondition desc = failed connecting to Signal Service : context deadline exceeded
2024-09-01T22:24:53+01:00 ERRO util/grpc/dialer.go:38: Failed to dial: dial: dial tcp: lookup netbrid.anon-EMmWY.domain on 192.168.10.253:53: no such host
2024-09-01T22:24:54+01:00 ERRO util/grpc/dialer.go:38: Failed to dial: dial: dial tcp: lookup netbrid.anon-EMmWY.domain on 192.168.10.253:53: no such host
2024-09-01T22:24:56+01:00 ERRO util/grpc/dialer.go:38: Failed to dial: dial: dial tcp: lookup netbrid.anon-EMmWY.domain on 192.168.10.253:53: no such host
2024-09-01T22:24:58+01:00 ERRO util/grpc/dialer.go:38: Failed to dial: dial: dial tcp: lookup netbrid.anon-EMmWY.domain on 192.168.10.253:53: no such host
2024-09-01T22:25:02+01:00 ERRO util/grpc/dialer.go:38: Failed to dial: dial: dial tcp: lookup netbrid.anon-EMmWY.domain on 192.168.10.253:53: no such host
2024-09-01T22:25:09+01:00 ERRO util/grpc/dialer.go:38: Failed to dial: dial: dial tcp: lookup netbrid.anon-EMmWY.domain on 192.168.10.253:53: no such host

I assume netbrid.anon-EMmWY.domain is it making my domain anonymous. If so, netbird.mydomain.com does exist on the dns server which is 192.168.10.253. So im not sure why it says it doesn't exist

Additional context
Docker compose file:

services:
  #UI dashboard
  dashboard:
    image: netbirdio/dashboard:latest
    container_name: netbird-dashboard
    restart: unless-stopped
    environment:
      # Endpoints
      - NETBIRD_MGMT_API_ENDPOINT=https://netbird.mydomain.com:443
      - NETBIRD_MGMT_GRPC_API_ENDPOINT=https://netbird.mydomain.com:443
      # OIDC
      - AUTH_AUDIENCE=CLIENT_ID
      - AUTH_CLIENT_ID=CLIENT_ID
      - AUTH_CLIENT_SECRET=
      - AUTH_AUTHORITY=https://auth.mydomain.com/application/o/netbird/
      - USE_AUTH0=false
      - AUTH_SUPPORTED_SCOPES=openid profile email offline_access api
      - AUTH_REDIRECT_URI=
      - AUTH_SILENT_REDIRECT_URI=
      - NETBIRD_TOKEN_SOURCE=accessToken
      # SSL
      - NGINX_SSL_PORT=443
      # Letsencrypt
      - LETSENCRYPT_DOMAIN=
      - LETSENCRYPT_EMAIL=
    volumes:
      - netbird-letsencrypt:/etc/letsencrypt/
    networks:
      - proxy
    labels:
      - traefik.enable=true
      - traefik.http.routers.netbird-dashboard.entrypoints=https,http
      - traefik.http.routers.netbird-dashboard.rule=Host(`netbird.mydomain.com`)
      - traefik.http.routers.netbird-dashboard.tls=true
      - traefik.http.routers.netbird-dashboard.service=netbird@docker
      - traefik.http.services.netbird.loadbalancer.server.port=80
      - traefik.docker.network=proxy

  # Signal
  signal:
    image: netbirdio/signal:latest
    container_name: netbird-signal
    restart: unless-stopped
    volumes:
      - /container_storage/netbird/signal:/var/lib/netbird
    networks:
      - proxy
    labels:
      - traefik.enable=true
      - traefik.http.routers.netbird-signal.entrypoints=https,http
      - traefik.http.routers.netbird-signal.rule=Host(`netbird.mydomain.com`) && PathPrefix(`/signalexchange.SignalExchange/`)
      - traefik.http.routers.netbird-signal.tls=true
      - traefik.http.routers.netbird-signal.service=signal@docker
      - traefik.http.services.signal.loadbalancer.server.port=80
      - traefik.http.services.signal.loadbalancer.server.scheme=h2c
      - traefik.docker.network=proxy

  # Management
  management:
    image: netbirdio/management:latest
    container_name: netbird-management
    restart: unless-stopped
    depends_on:
      - dashboard
    volumes:
      - /container_storage/netbird/management:/var/lib/netbird
      - netbird-letsencrypt:/etc/letsencrypt:ro
      - ./management.json:/etc/netbird/management.json
    command: [
      "--port", "443",
      "--log-file", "console",
      "--disable-anonymous-metrics=false",
      "--single-account-mode-domain=netbird.mydomain.com",
      "--dns-domain=netbird.example"
      ]
    networks:
      - proxy
    labels:
      - traefik.enable=true
      - traefik.http.routers.netbird-api.entrypoints=https,http
      - traefik.http.routers.netbird-api.rule=Host(`netbird.mydomain.com`) && PathPrefix(`/api`)
      - traefik.http.routers.netbird-api.tls=true
      - traefik.http.routers.netbird-api.service=api
      - traefik.http.services.api.loadbalancer.server.port=443

      - traefik.http.routers.netbird-management.entrypoints=https,http
      - traefik.http.routers.netbird-management.rule=Host(`netbird.mydomain.com`) && PathPrefix(`/management.ManagementService/`)
      - traefik.http.routers.netbird-management.tls=true
      - traefik.http.routers.netbird-management.service=netbird-management
      - traefik.http.services.netbird-management.loadbalancer.server.port=443
      - traefik.http.services.netbird-management.loadbalancer.server.scheme=h2c

      - traefik.docker.network=proxy
      
  # Coturn
  coturn:
    image: coturn/coturn:latest
    container_name: netbird-coturn
    restart: unless-stopped
    domainname: netbird.mydomain.com # only needed when TLS is enabled
    volumes:
      - ./turnserver.conf:/etc/turnserver.conf:ro
    #      - ./privkey.pem:/etc/coturn/private/privkey.pem:ro
    #      - ./cert.pem:/etc/coturn/certs/cert.pem:ro
    network_mode: host
    command:
      - -c /etc/turnserver.conf
  
volumes:
  netbird-letsencrypt:

networks:
  proxy:
    external: true
Originally created by @Jdplays on GitHub (Sep 1, 2024). **Describe the problem** I have setup Netbird with AUthentik and Traefik. I am able to go to the management dashboard, login and use the dashboard. I can also add devices to it. I have added my Phone, Windows machine and Debian server to it. The issue is that they can be added, but instantly go to offline. They also cannot see any other peers. I have tried to fix this for hours, but cannot work out what is wrong. When i run netbird status on my debian server, i get this: `OS: linux/amd64 Daemon version: 0.28.9 CLI version: 0.28.9 Management: Connected Signal: Disconnected Relays: 0/0 Available Nameservers: 0/0 Available FQDN: the-whale.domain.com NetBird IP: 100.92.75.16/16 Interface type: Kernel Quantum resistance: false Routes: - Peers count: 0/0 Connected` It looks like signal is not connected. But im not sure why. **Expected behavior** Devices should appear as online and be able to connect to the network after being paired **Are you using NetBird Cloud?** No, using Self hosted **NetBird version** 0.28.9 **NetBird status -dA output:** ``` Peers detail: OS: linux/amd64 Daemon version: 0.28.9 CLI version: 0.28.9 Management: Connected to https://netbird.anon-QN8tn.domain:443 Signal: Disconnected Relays: Nameservers: FQDN: the-whale.anon-QN8tn.domain NetBird IP: 100.92.177.110/16 Interface type: Kernel Quantum resistance: false Routes: - Peers count: 0/0 Connected ``` Please provide the file created by `netbird debug for 1m -AS`. It just repeats this for 3000 lines: ``` 2024-09-01T22:24:49+01:00 INFO signal/client/grpc.go:69: createConnection error: context deadline exceeded 2024-09-01T22:24:49+01:00 ERRO signal/client/grpc.go:77: failed to connect to the signalling server: context deadline exceeded 2024-09-01T22:24:49+01:00 ERRO client/internal/connect.go:364: error while connecting to the Signal Exchange Service netbrid.anon-EMmWY.domain:443: context deadline exceeded 2024-09-01T22:24:49+01:00 ERRO client/internal/connect.go:232: rpc error: code = FailedPrecondition desc = failed connecting to Signal Service : context deadline exceeded 2024-09-01T22:24:53+01:00 ERRO util/grpc/dialer.go:38: Failed to dial: dial: dial tcp: lookup netbrid.anon-EMmWY.domain on 192.168.10.253:53: no such host 2024-09-01T22:24:54+01:00 ERRO util/grpc/dialer.go:38: Failed to dial: dial: dial tcp: lookup netbrid.anon-EMmWY.domain on 192.168.10.253:53: no such host 2024-09-01T22:24:56+01:00 ERRO util/grpc/dialer.go:38: Failed to dial: dial: dial tcp: lookup netbrid.anon-EMmWY.domain on 192.168.10.253:53: no such host 2024-09-01T22:24:58+01:00 ERRO util/grpc/dialer.go:38: Failed to dial: dial: dial tcp: lookup netbrid.anon-EMmWY.domain on 192.168.10.253:53: no such host 2024-09-01T22:25:02+01:00 ERRO util/grpc/dialer.go:38: Failed to dial: dial: dial tcp: lookup netbrid.anon-EMmWY.domain on 192.168.10.253:53: no such host 2024-09-01T22:25:09+01:00 ERRO util/grpc/dialer.go:38: Failed to dial: dial: dial tcp: lookup netbrid.anon-EMmWY.domain on 192.168.10.253:53: no such host ``` I assume `netbrid.anon-EMmWY.domain` is it making my domain anonymous. If so, netbird.mydomain.com does exist on the dns server which is 192.168.10.253. So im not sure why it says it doesn't exist **Additional context** Docker compose file: ```yaml services: #UI dashboard dashboard: image: netbirdio/dashboard:latest container_name: netbird-dashboard restart: unless-stopped environment: # Endpoints - NETBIRD_MGMT_API_ENDPOINT=https://netbird.mydomain.com:443 - NETBIRD_MGMT_GRPC_API_ENDPOINT=https://netbird.mydomain.com:443 # OIDC - AUTH_AUDIENCE=CLIENT_ID - AUTH_CLIENT_ID=CLIENT_ID - AUTH_CLIENT_SECRET= - AUTH_AUTHORITY=https://auth.mydomain.com/application/o/netbird/ - USE_AUTH0=false - AUTH_SUPPORTED_SCOPES=openid profile email offline_access api - AUTH_REDIRECT_URI= - AUTH_SILENT_REDIRECT_URI= - NETBIRD_TOKEN_SOURCE=accessToken # SSL - NGINX_SSL_PORT=443 # Letsencrypt - LETSENCRYPT_DOMAIN= - LETSENCRYPT_EMAIL= volumes: - netbird-letsencrypt:/etc/letsencrypt/ networks: - proxy labels: - traefik.enable=true - traefik.http.routers.netbird-dashboard.entrypoints=https,http - traefik.http.routers.netbird-dashboard.rule=Host(`netbird.mydomain.com`) - traefik.http.routers.netbird-dashboard.tls=true - traefik.http.routers.netbird-dashboard.service=netbird@docker - traefik.http.services.netbird.loadbalancer.server.port=80 - traefik.docker.network=proxy # Signal signal: image: netbirdio/signal:latest container_name: netbird-signal restart: unless-stopped volumes: - /container_storage/netbird/signal:/var/lib/netbird networks: - proxy labels: - traefik.enable=true - traefik.http.routers.netbird-signal.entrypoints=https,http - traefik.http.routers.netbird-signal.rule=Host(`netbird.mydomain.com`) && PathPrefix(`/signalexchange.SignalExchange/`) - traefik.http.routers.netbird-signal.tls=true - traefik.http.routers.netbird-signal.service=signal@docker - traefik.http.services.signal.loadbalancer.server.port=80 - traefik.http.services.signal.loadbalancer.server.scheme=h2c - traefik.docker.network=proxy # Management management: image: netbirdio/management:latest container_name: netbird-management restart: unless-stopped depends_on: - dashboard volumes: - /container_storage/netbird/management:/var/lib/netbird - netbird-letsencrypt:/etc/letsencrypt:ro - ./management.json:/etc/netbird/management.json command: [ "--port", "443", "--log-file", "console", "--disable-anonymous-metrics=false", "--single-account-mode-domain=netbird.mydomain.com", "--dns-domain=netbird.example" ] networks: - proxy labels: - traefik.enable=true - traefik.http.routers.netbird-api.entrypoints=https,http - traefik.http.routers.netbird-api.rule=Host(`netbird.mydomain.com`) && PathPrefix(`/api`) - traefik.http.routers.netbird-api.tls=true - traefik.http.routers.netbird-api.service=api - traefik.http.services.api.loadbalancer.server.port=443 - traefik.http.routers.netbird-management.entrypoints=https,http - traefik.http.routers.netbird-management.rule=Host(`netbird.mydomain.com`) && PathPrefix(`/management.ManagementService/`) - traefik.http.routers.netbird-management.tls=true - traefik.http.routers.netbird-management.service=netbird-management - traefik.http.services.netbird-management.loadbalancer.server.port=443 - traefik.http.services.netbird-management.loadbalancer.server.scheme=h2c - traefik.docker.network=proxy # Coturn coturn: image: coturn/coturn:latest container_name: netbird-coturn restart: unless-stopped domainname: netbird.mydomain.com # only needed when TLS is enabled volumes: - ./turnserver.conf:/etc/turnserver.conf:ro # - ./privkey.pem:/etc/coturn/private/privkey.pem:ro # - ./cert.pem:/etc/coturn/certs/cert.pem:ro network_mode: host command: - -c /etc/turnserver.conf volumes: netbird-letsencrypt: networks: proxy: external: true ```
saavagebueno added the triage-needed label 2025-11-20 05:25:50 -05:00
Author
Owner

@Jdplays commented on GitHub (Sep 1, 2024):

Yeah, i dont think im going to download that... How does it fix my issue? What is the other issue you see my problem in?

@Jdplays commented on GitHub (Sep 1, 2024): Yeah, i dont think im going to download that... How does it fix my issue? What is the other issue you see my problem in?
Author
Owner

@Jdplays commented on GitHub (Sep 2, 2024):

UPDATE:
It was a silly spelling mistake.
When i first filled out the env, i accidentally wrote netbrid.mydomain.com (mixing up the r and the i in bird). This took a while to find, so i changed all the instances of it in the compose file.

This issue was because it was also in the management.json file under Signal. Once i fixed the spelling mistake there, and recreated the containers, it all works perfectly.

In the unlikely event of this happening to anyone else, i found my issue using this GitHub issue: #1048

Specifically this comment: https://github.com/netbirdio/netbird/issues/1048#issuecomment-1707273943
where when running netbird up with all the logs being printed, i could see dns resolution errors for the incorrect spelling (netbrid.mydomain.com).

So in the end, this was just a stupid spelling mistake...

@Jdplays commented on GitHub (Sep 2, 2024): UPDATE: It was a silly spelling mistake. When i first filled out the env, i accidentally wrote `netbrid.mydomain.com` (mixing up the `r` and the `i` in `bird`). This took a while to find, so i changed all the instances of it in the compose file. This issue was because it was also in the `management.json` file under Signal. Once i fixed the spelling mistake there, and recreated the containers, it all works perfectly. In the unlikely event of this happening to anyone else, i found my issue using this GitHub issue: #1048 Specifically this comment: https://github.com/netbirdio/netbird/issues/1048#issuecomment-1707273943 where when running `netbird up` with all the logs being printed, i could see dns resolution errors for the incorrect spelling (`netbrid.mydomain.com`). So in the end, this was just a stupid spelling mistake...
Sign in to join this conversation.
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: SVI/netbird#1201