LiveKit: jeden port UDP dla wszystkich (mux) zamiast zakresu
Deploy PROD / deploy (push) Failing after 0s

Zakres port_range 50000-50100 rezerwowal osobny port na kazde polaczenie.
Test z 200 botami wszedl dokladnie w 49, a log serwera pokazal kandydata
UDP tylko przy 52 polaczeniach i TCP przy wszystkich 204: kolejni
uczestnicy dostawali juz tylko TCP. Zmienna UDP_PORT z zakresem nie
wlaczala muxa, bo przegrywala z zakresem z pliku.

Teraz udp_port: 7882 (sprawdzone lokalnie: rtc.portUDP Start 7882, End 0),
nowa zmienna LIVEKIT_UDP_PORT, zeby stara LIVEKIT_UDP_RANGE w .env nie
mogla przywrocic zakresu.

Automatyczne wdrozenie nie dotyka profilu livekit: kontener trzeba
przeladowac recznie.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This commit is contained in:
2026-09-28 09:16:01 +02:00
parent 515d9a41e2
commit c53ad95104
7 changed files with 57 additions and 37 deletions
+10 -8
View File
@@ -690,10 +690,10 @@ serwer, w panelu sluza do podpisywania tokenow wejscia.
| --- | --- | --- |
| 7880 | TCP | sygnalizacja WebSocket i API serwera |
| 7881 | TCP | media po TCP, droga zapasowa gdy UDP jest zablokowane |
| 50000-50100 | **UDP** | **glowna droga audio i wideo** |
| 7882 | **UDP** | **glowna droga audio i wideo**, jeden port dla wszystkich (mux) |
| 49160-49200 | UDP | TURN, dla uczestnikow za restrykcyjnym NAT-em |
**Zakres UDP jest obowiazkowy.** Bez niego uczestnicy dolacza do pokoju i zobacza
**Port UDP jest obowiazkowy.** Bez niego uczestnicy dolacza do pokoju i zobacza
liste obecnych, ale nie beda sie slyszec ani widziec. To najczestsza przyczyna
zgloszenia "wideo nie dziala" przy poprawnie skonfigurowanym serwerze.
@@ -705,13 +705,15 @@ IP: za NAT-em Dockera rozdawalby uczestnikom adresy wewnetrzne kontenera.
Zebrane przy uruchomieniu profilu na zywo. **Kazda z nich blokuje pierwsze
wdrozenie**, a zadna nie daje czytelnego komunikatu.
**1. Zakres portow UDP musi byc wolny w systemie.**
**1. Port UDP musi byc wolny w systemie, a serwer ma pracowac w trybie mux.**
Windows rezerwuje zakresy dla Hyper-V i WSL (sprawdzenie:
`netsh interface ipv4 show excludedportrange protocol=udp`). Domyslne
50000-50100 wpada w rezerwacje 50000-50059 i kontener nie wstaje z bledem
"ports are not available". Zmiana `LIVEKIT_UDP_RANGE` w `.env` wystarcza:
zakres idzie do serwera zmienna `UDP_PORT` i **musi byc taki sam po obu
stronach mapowania portow**, inaczej Docker odrzuca konfiguracje.
`netsh interface ipv4 show excludedportrange protocol=udp`); gdy 7882 jest
zajety, kontener nie wstaje z bledem "ports are not available". Zmiana
`LIVEKIT_UDP_PORT` w `.env` wystarcza: port idzie do serwera zmienna `UDP_PORT`
i **musi byc taki sam po obu stronach mapowania portow**.
**Nie wracac do zakresu portow** (`port_range_start/end`): serwer rezerwuje
wtedy osobny port na kazde polaczenie i przy zakresie 50000-50100 konczyl pule
po okolo 50 uczestnikach. Kolejni dostawali juz tylko TCP.
**2. `use_external_ip: true` nadpisuje `NODE_IP`.**
Przy uruchomieniu lokalnym serwer wykrywa publiczny adres lacza i rozglasza go