docs: document STUN port change to 3479

NetBird's default STUN port 3478/udp conflicts with Headscale on
192.168.42.126, which DNAT'd it first. Reconfigure NetBird to use
3479/udp end-to-end (server config + docker-compose + OpenWrt DNAT).

Updates server config:
- /opt/netbird/config.yaml: stunPorts: [3479]
- /opt/netbird/docker-compose.yml: 3479:3479/udp

OpenWrt DNAT rule added separately (42_10 repo commit 9cc6141).
This commit is contained in:
2026-04-18 10:24:50 +08:00
parent fc9d72e12d
commit 31a874f3be
4 changed files with 109 additions and 2 deletions

View File

@@ -82,6 +82,7 @@ reopen fd 8: permission denied
| 502 Bad Gateway所有 API 端點) | netbird-server 下載 GeoLite2 中,尚未開始監聽 port 80 | 等待 2-5 分鐘 |
| 手機 App`server closed the stream without sending trailers` | 透過 NPM 對外公開時NPM 用 `proxy_pass` 而非 `grpc_pass` 轉 gRPC加上 Caddy `:80` 預設不支援 h2c | NPM 加 `advanced_config`gRPC 路由)+ Caddy 全域啟用 `protocols h1 h2 h2c`;見 [npm-grpc-fix.md](./npm-grpc-fix.md) |
| `PUT /api/setup-keys/{id}` 回 200 但 `name` 沒改 | NetBird API 只更新 `auto_groups``revoked``name` 是 read-only | 改 `store.db``setup_keys.name` → 重啟 `netbird-server`;見 [setup-keys-and-pat.md](./setup-keys-and-pat.md) |
| peer 之間一直走 Relay`[stun:...:3478] is Checking...` | STUN port 3478 被 Headscale (`.126`) 搶先佔用 DNAT | NetBird 改用 3479/udpserver config + OpenWrt DNAT見 [stun-port-conflict.md](./stun-port-conflict.md) |
## 檔案位置
@@ -93,7 +94,8 @@ reopen fd 8: permission denied
├── SUMMARY.md ← 本檔(部署摘要)
├── netbird-selfhosted-setup.md ← 完整安裝指南
├── npm-grpc-fix.md ← 經 NPM 對外公開時的 gRPC 修復
── setup-keys-and-pat.md ← Setup Keys / PAT 操作與 API 限制繞道
── setup-keys-and-pat.md ← Setup Keys / PAT 操作與 API 限制繞道
└── stun-port-conflict.md ← STUN 改用 3479 (3478 被 Headscale 佔用)
```
### 遠端伺服器192.168.42.127:/opt/netbird/