[GH-ISSUE #4871] Signal service port mapping in docker-compose template #10289

Open
opened 2026-08-05 01:25:17 -04:00 by saavagebueno · 0 comments
Owner

Originally created by @0gnew on GitHub (Nov 28, 2025).
Original GitHub issue: https://github.com/netbirdio/netbird/issues/4871

Hi, colleagues!
Thanks for the wonderful tool.
Yesterday, I was fully up and running the service using your manual. I noticed that the added peers remain offline when added. I looked at the logs on the client and found this line:

ServerName: "domain:10000", BalancerAttributes: {"<%!p(pickfirstleaf.managedByPickfirstKeyType={})>": "<%!p(bool=true)>" }}. Err: connection error: desc = "error reading server preface: read tcp 192.168.0.1:61165->IP:10000: read: connection reset by peer"

Я посмотрел логи docker compose, а также его конфигурацию по пути

~/netbird/infrastructure_files/artifacts/docker-compose.yml

There I saw that ports 10000:80 were indicated, which in my opinion was the problem.
Image
10000:80 means:
Outside (Host): Listen on port 10000.
Inside (Container): Redirect all traffic to port 80.
The Netbird Signal service, which runs inside the container, listens on port 10000 by default, not 80, as seen in the client logs.
This results in a "message to nowhere" situation: My client is knocking on external port 10000. Docker intercepts this request and forwards it inside the container to port 80. But inside the container, no one is listening on port 80 (because the program is listening on 10000). The container's network stack responds, "No one here," and resets the connection (connection reset by peer).
Well, when I adjusted it to 10000:10000, the problem went away and the peer became online.

Originally created by @0gnew on GitHub (Nov 28, 2025). Original GitHub issue: https://github.com/netbirdio/netbird/issues/4871 Hi, colleagues! Thanks for the wonderful tool. Yesterday, I was fully up and running the service using your [manual](https://docs.netbird.io/selfhosted/selfhosted-guide). I noticed that the added peers remain offline when added. I looked at the logs on the client and found this line: `ServerName: "domain:10000", BalancerAttributes: {"<%!p(pickfirstleaf.managedByPickfirstKeyType={})>": "<%!p(bool=true)>" }}. Err: connection error: desc = "error reading server preface: read tcp 192.168.0.1:61165->IP:10000: read: connection reset by peer"` Я посмотрел логи docker compose, а также его конфигурацию по пути `~/netbird/infrastructure_files/artifacts/docker-compose.yml` There I saw that ports 10000:80 were indicated, which in my opinion was the problem. <img width="382" height="157" alt="Image" src="https://github.com/user-attachments/assets/0ebcb714-795a-4cd1-99a7-8e482bacfd4b" /> 10000:80 means: Outside (Host): Listen on port 10000. Inside (Container): Redirect all traffic to port 80. The Netbird Signal service, which runs inside the container, listens on port 10000 by default, not 80, as seen in the client logs. This results in a "message to nowhere" situation: My client is knocking on external port 10000. Docker intercepts this request and forwards it inside the container to port 80. But inside the container, no one is listening on port 80 (because the program is listening on 10000). The container's network stack responds, "No one here," and resets the connection (connection reset by peer). Well, when I adjusted it to 10000:10000, the problem went away and the peer became online.
saavagebueno added the triage-needed label 2026-08-05 01:25:17 -04:00
Sign in to join this conversation.
No Label triage-needed
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: DYNR/netbird#10289