Strona główna
» Jak
»
Uzyskaj połączenia Nextcloud Talk, gdy zawiedzie usługa Direct Media
Uzyskaj połączenia Nextcloud Talk, gdy zawiedzie usługa Direct Media
Aby naprawić połączenie Nextcloud Talk, które nie może się połączyć lub ma jednokierunkowe media, skonfiguruj dostępny przekaźnik TURN, wprowadź jego nazwę hosta, port i współdzielony klucz tajny w ustawieniach Talk, a następnie zezwól na ruch zarówno przez odbiornik TURN, jak i jego porty przekaźnikowe. TURN zapewnia WebRTC trasę przekaźnikową w przypadku zerwania połączenia bezpośredniego; nie naprawia słabego sygnału Wi-Fi, utraty pakietów ani przeciążonej sieci.
Przykład ilustrujący: Wyobraź sobie małą organizację, której pracownicy mogą dołączyć do rozmowy telefonicznej z biura, ale nie mogą niezawodnie przesyłać obrazu z sieci hotelowej. Zapora sieciowa hotelu może blokować bezpośrednią ścieżkę transmisji danych. Poniższy przykład przedstawia administratora sprawdzającego trasę, konfigurującego coTURN i testującego zmianę; nie jest to raport z rzeczywistego wdrożenia ani testu.
1. Sprawdź, czy przekaźnik jest właściwym rozwiązaniem
Nextcloud Talk najpierw próbuje połączyć uczestników bezpośrednio. STUN pomaga urządzeniom wykryć adres i port publiczny utworzony przez router. Gdy zapora sieciowa lub restrykcyjny NAT nadal uniemożliwia bezpośrednią ścieżkę, TURN przekazuje medium. Sam serwer STUN nie jest w stanie zapewnić takiego przekazu.
Porównaj połączenie w sieci biurowej z połączeniem z innej sieci, takiej jak hotspot telefoniczny. Jeśli połączenie nawiązuje się w jednym miejscu, ale wielokrotnie nie udaje się nawiązać dźwięku lub obrazu w tym ograniczonym miejscu, TURN jest rozsądnym kolejnym krokiem. Jeśli połączenie nawiązuje się, ale pozostaje rozmazane lub przerywane w każdej sieci, najpierw zmierz przepustowość, utratę pakietów, jakość Wi-Fi i obciążenie procesora; kierowanie większej ilości multimediów przez przekaźnik może zwiększyć obciążenie i nie zwiększy przepustowości.
Ilustracja: strona administratora z polami konfiguracji i zamaskowanymi danymi uwierzytelniającymi, reprezentującymi ustawienia do przejrzenia przed połączeniem testowym.
Zapisz wersję Talk, nazwę hosta i port TURN, informację, czy host TURN znajduje się za NAT-em oraz czy zainstalowany jest serwer HPB (High Performance Backend). Zachowaj tajemnicę. Poniższe polecenia zakładają, że Linux jest z systemem systemd; ścieżki pakietów mogą się różnić.
2. Skonfiguruj coTURN z uwierzytelnianiem współdzielonym za pomocą klucza tajnego
Dokumentacja Nextcloud Talk zaleca coTURN w wersji 4.5.0.8 lub nowszej, ponieważ starsze wersje mają problem z gniazdem UDP IPv6. Zainstaluj go z repozytorium swojej dystrybucji i znajdź aktywny plik konfiguracyjny (często /etc/turnserver.conf). Wygeneruj losowy klucz tajny na hoście TURN:
openssl rand -hex 32
Zapisz tę wartość w menedżerze haseł lub w chronionym magazynie konfiguracji. W aktywnej konfiguracji coTURN ustaw nasłuchiwacz, uwierzytelnianie za pomocą współdzielonego klucza tajnego i domenę. Zastąp przykładową nazwę hosta i klucz tajny rzeczywistymi wartościami:
Dokumentacja Talk wymienia lt-cred-mechtylko wersje coTURN starsze niż 4.5.0.8; należy uaktualnić starsze instalacje, zamiast bezmyślnie kopiować starsze ustawienia. Jeśli coTURN działa za NAT-em, należy skonfigurować jego adresy publiczne i przekaźnikowe zgodnie z instrukcjami w podręczniku wdrażania i upewnić się, że nazwa DNS jest rozwiązywana na adres dostępny dla uczestników.
Ilustracja: edytor konfiguracji przedstawiający ustawienia nasłuchiwania i uwierzytelniania coTURN; należy używać nazw parametrów opisanych w tekście, a nie wartości wywnioskowanych z obrazu.
3. Otwórz ścieżkę nasłuchu i przekaźnika
Zezwól na port nasłuchu TURN (3478 w tym przykładzie) na hosta i zapory sieciowe dla UDP i TCP. W przypadku TLS coTURN wymaga również ważnego certyfikatu i klucza prywatnego, a Talk musi używać turns:. Port 443 może docierać do sieci o większych ograniczeniach, ale sprawdź, czy nie występują konflikty: HPB może również potrzebować tego portu, co wymaga oddzielnych adresów IP lub hostów.
Media również korzystają z portów przekaźnikowych. Zezwól na zakres UDP przekaźnika coTURN w zaporze hosta, grupie zabezpieczeń w chmurze i routerze. Jeśli ustawisz min-porti max-port, otwórz dokładnie ten zakres; zezwolenie tylko na odbiornik jest niewystarczające. W przypadku hosta TURN za NAT, przekieruj zarówno odbiornik, jak i zakres przekaźnika i skonfiguruj jego adresy publiczne/przekaźnikowe. Zachowaj ograniczenia peerów coTURN, aby uniemożliwić dostęp do niepowiązanych usług wewnętrznych.
Ilustracja: wpisy zapory reprezentują ruch nasłuchujący i przekaźnikowy, który musi być dozwolony; dokładny zakres portów zależy od konfiguracji coTURN.
Po edycji uruchom ponownie coTURN i sprawdź, czy usługa jest aktywna. Na przykład na hoście systemd:
sudo systemctl restart coturn
sudo systemctl status coturn --no-pager
Status usługi potwierdza, że proces się rozpoczął; nie dowodzi to jednak, że zdalna przeglądarka może połączyć się z przekaźnikiem. Sprawdź osobno zapory hosta i dostawcy oraz przejrzyj dzienniki coTURN pod kątem błędów powiązań, błędów uwierzytelniania lub komunikatów o limitach alokacji.
4. Dodaj serwer w Talk i sprawdź, czy połączenie jest prawdziwe
Jako administrator otwórz Ustawienia administracyjne > Talk . Wprowadź nazwę hosta i port TURN, takie jak turn.example.org:3478, oraz ten sam klucz tajny, co static-auth-secret. Nie wpisuj https://, turn:, ani turns:w polu nazwy hosta; wybierz schemat w ustawieniach Talk. Włącz protokoły UDP i TCP, jeśli to możliwe. Używaj ich turns:tylko po skonfigurowaniu protokołu TLS w coTURN.
Zapisz i uruchom wbudowaną funkcję sprawdzania TURN w Talk, jeśli jest dostępna. Następnie połącz się z sieci z ograniczeniami do innej sieci i zweryfikuj dwukierunkową komunikację audio i wideo. Sprawdź logi coTURN podczas połączenia pod kątem alokacji lub błędów uwierzytelniania. W tym przykładzie administrator porównuje połączenie hotelowe z połączeniem biurowym.
Ilustracja: okno połączenia dwuosobowego przedstawia kontrolę typu end-to-end po zapisaniu ustawień TURN; potwierdź, że każdy uczestnik może wysyłać i odbierać media.
Jeśli sprawdzenie się nie powiedzie, porównaj nazwę hosta, port i tajny klucz, a następnie zweryfikuj DNS, reguły zapory sieciowej, zakres przekaźników UDP, przekierowanie NAT i logi usług. Podstawowe sprawdzenie może nie wykryć problemu ze ścieżką przekaźnika, dlatego przeprowadź test z sieci zewnętrznej. W przypadku diagnostyki wyłącznie dla TURN należy postępować zgodnie z procedurą Talk dla konkretnej przeglądarki; jej metoda konsoli jest tymczasowa, a zachowanie przeglądarki jest inne.
TURN nie skaluje połączeń grupowych. Według Nextcloud, w przypadku większych grup połączenia z udziałem ponad 5–10 użytkowników wymagają HPB. Jeśli TURN nawiązuje połączenie, ale obraz wideo pozostaje słaby, przed zmianą limitów transmisji sprawdź przepustowość, utratę pakietów, zakłócenia Wi-Fi i obciążenie serwera.
Weryfikacja
Rozwiązanie problemu potwierdzają trzy obserwowalne oznaki: Talk akceptuje konfigurację TURN, logi coTURN pokazują przydziały przekaźników podczas połączenia, a uczestnicy w różnych sieciach mogą wymieniać dane audio i wideo w obu kierunkach. Jeśli działa tylko połączenie biurowe lub logi nie pokazują żadnych żądań przychodzących, trasa publiczna jest nadal zablokowana lub skonfigurowany host i port nie są zgodne. Jeśli przepływy mediów są płynne, ale jakość pozostaje słaba, łączność TURN działa, a problem prawdopodobnie występuje gdzie indziej w sieci lub infrastrukturze połączeń.