Verbeter de kwaliteit van Nextcloud Talk-videogesprekken en de verbinding met de TURN-server.

Problemen met Nextcloud Talk-gesprekken worden vaak omschreven als "slechte videokwaliteit", maar de onderliggende oorzaken zijn niet altijd hetzelfde. Een gebruiker kan voldoende bandbreedte hebben en toch geen verbinding kunnen maken omdat een firewall peer-to-peer WebRTC-verkeer blokkeert. Een ander gesprek kan wel succesvol tot stand komen via TURN, maar trager aanvoelen omdat alle media worden doorgestuurd. Een grotere vergadering kan zelfs met een perfect werkende TURN-server problemen ondervinden omdat de implementatie nog steeds gebruikmaakt van de ingebouwde peer-to-peer-topologie in plaats van de High Performance Backend.

De meest nuttige aanpak voor het oplossen van problemen is daarom om connectiviteit , mediapad en schaalbaarheid van elkaar te scheiden . Per 6 oktober 2026 beschrijft de upstream Talk-documentatie van Nextcloud nog steeds TURN als de fallback wanneer directe WebRTC-connectiviteit niet mogelijk is en adviseert poort 443 voor maximale compatibiliteit. Er wordt ook vermeld dat een TURN-server nog steeds nodig kan zijn wanneer de High Performance Backend in gebruik is. Zie de officiële Nextcloud Talk TURN-documentatie en de officiële coturn-installatiehandleiding voor Talk .

Wat moet je als eerste aanpakken: de bandbreedte, TURN of de krachtige backend?

Gebruik het symptoompatroon om de volgende actie te kiezen in plaats van meerdere instellingen tegelijk te wijzigen.

SymptoomMeest waarschijnlijke gebiedEerste actieAfweging
Het gesprek werkt wel op het ene netwerk, maar niet op een bedrijfs- of hotelnetwerk.Firewall, NAT of ontbrekende TURN-terugvaloptieControleer of TURN via UDP/TCP en, indien nodig, TLS op poort 443 is ingeschakeld.Doorsturen verbetert de bereikbaarheid, maar verbruikt TURN-bandbreedte en kan extra latentie veroorzaken.
Gesprekken tussen twee personen verlopen prima, grotere gesprekken worden instabiel.Oproeptopologie en clientupload/CPU-belastingEvalueer de krachtige backend van Nextcloud TalkMeer infrastructuur, maar betere schaalbaarheid voor gesprekken met meerdere deelnemers.
De videoverbinding is er wel, maar het beeld is korrelig of het beeld loopt vast.Pakketverlies, latentie, wifi, uploadcapaciteit of overbelaste eindpunten.Test het apparaat eerst op een bekabeld of betrouwbaar netwerk voordat u de TURN-instelling wijzigt.TURN kan geen bandbreedte creëren die niet beschikbaar is.
De TURN-test mislukt, ook al draait coturn.Geheime mismatch, firewall, NAT-mapping, DNS of relaypoortenControleer de inloggegevens, de toewijzing van openbare IP-adressen en het doorstuurbereik.Het openen van een groot relaisbereik is eenvoudiger; het verkleinen ervan vermindert het aantal blootgestelde poorten, maar vereist een zorgvuldige capaciteitsplanning.
Illustratieve lay-out van een Nextcloud Talk-groepsgesprek met drie deelnemers en de standaard gespreksbedieningselementen zichtbaar.
Een representatieve Talk-groepsgespreksindeling. Als kleine gesprekken wel werken, maar grotere gesprekken verslechteren, onderzoek dan de topologie en de belasting van de eindpunten in plaats van ervan uit te gaan dat TURN alleen het probleem zal oplossen.

Stap 1: vaststellen of het probleem te wijten is aan een verbindingsprobleem of aan de kwaliteit van het medium.

Begin met twee korte tests. Plaats eerst een gesprek tussen twee clients via ongecompliceerde netwerken, zoals twee normale breedbandverbindingen. Herhaal dit vervolgens vanaf een beperkt netwerk, zoals bedrijfs-wifi, een VPN of een mobiele hotspot. Als alleen het beperkte netwerk niet werkt, is TURN een sterke verdachte. Als beide gesprekken tot stand komen, maar de videokwaliteit slecht is, verzamel dan bewijsmateriaal over het netwerk en de apparaten voordat u de relay-architectuur wijzigt.

De gedocumenteerde verbindingsprocedure van Nextcloud probeert eerst een directe peer-to-peerverbinding, gebruikt STUN om bereikbare adressen te vinden en vertrouwt op TURN wanneer een directe verbinding niet tot stand kan worden gebracht. Dat betekent dat TURN voornamelijk een back-up is voor connectiviteitsproblemen , en geen universele verbetering van de videokwaliteit. Een doorgeschakelde verbinding kan betrouwbaarder zijn, maar is ook langer en verplaatst de bandbreedte van de media naar de TURN-server.

Stap 2: configureer coturn voor Nextcloud Talk

Voor zelfgehoste implementaties is coturn de meest voorkomende TURN-implementatie die door Nextcloud wordt gedocumenteerd. Nextcloud raadt authenticatie met een gedeeld geheim aan voor deze integratie. Genereer een sterk, willekeurig geheim en gebruik dezelfde waarde in zowel coturn als de Talk-beheerinstellingen.

openssl rand -hex 32

Een minimale configuratie omvat doorgaans een luisterpoort, fingerprinting, authenticatie met een gedeeld geheim, een realm en peer-restricties. De exacte locatie van de bestanden is afhankelijk van uw besturingssysteem en pakket. Een voorbeeld van een configuratie is:

listening-port=443
fingerprint
use-auth-secret
static-auth-secret=REPLACE_WITH_RANDOM_SECRET
realm=turn.example.com
total-quota=0
bps-capacity=0
stale-nonce
no-multicast-peers

Oudere versies van Coturn vereisen mogelijk opties die nieuwere versies niet meer nodig hebben. Kopieer daarom niet zomaar een oude configuratie. De actuele documentatie van Nextcloud over Coturn geeft expliciet aan welke versie afhankelijk is van de configuratie. Controleer uw geïnstalleerde Coturn-versie aan de hand van de huidige instructies voor Nextcloud over Coturn .

Als Coturn zich achter een NAT-router bevindt, configureer dan de juiste mapping van het publieke naar het privé-adres. De configuratiehandleiding van Coturn zelf legt de external-ipmapping uit en vereist dat relaypoorten consistent door NAT heen worden gemapt. Zie het voorbeeldconfiguratiebestand van Coturn voor de upstream-omgeving .

Terminaleditor met een Coturn-configuratie met poort 443, authenticatie met gedeeld geheim, realm, quota's en optionele TLS-certificaatpaden.
Voorbeelden van Coturn-configuratie-elementen voor Nextcloud Talk: poort 443, authenticatie met gedeeld geheim, realm-instellingen en optionele TLS-certificaatpaden.

UDP, TCP of TLS: welke moet je inschakelen?

Voor realtime media is UDP doorgaans het geprefereerde transportprotocol omdat het TCP-herverzendingen en head-of-line blocking vermijdt. Sommige bedrijfs- en gastnetwerken blokkeren UDP echter volledig. TCP of TURN over TLS kan een bruikbaar alternatief bieden voor netwerken die alleen webverkeer toestaan.

Voor maximale bereikbaarheid raadt Nextcloud aan te luisteren op poort 443 en ondersteunt het TURN/TLS. Het gebruik van beide turn:verbetert turns:de compatibiliteit, maar betekent ook dat er certificaten en extra transportpaden beheerd moeten worden. Als alle gebruikers zich op beveiligde netwerken bevinden waar gegarandeerd UDP werkt, is een eenvoudiger ontwerp met UDP als primaire basis wellicht gemakkelijker te beheren. Als gebruikers regelmatig verbinding maken vanuit hotels, klantlocaties, beveiligde kantoren of VPN's, is een terugval naar TCP/TLS meestal de extra configuratie waard.

Stap 3: open de listener- en relaypoorten correct.

Een veelgemaakte fout is het openen van alleen de TURN-luisterpoort. De client neemt eerst contact op met coturn via zijn luisterpoort, maar coturn wijst ook relay-eindpunten toe voor media. De upstream-standaardinstellingen van coturn gebruiken UDP-poorten 49152-65535voor relay-toewijzingen. Als dat bereik wordt geblokkeerd door de hostfirewall, cloudbeveiligingsgroep, upstream-router of NAT-apparaat, kan authenticatie wel lukken, terwijl media nog steeds niet beschikbaar is.

U kunt het standaard relaybereik behouden of het bewust verkleinen met min-porten max-port. De afweging is eenvoudig: een breed bereik is operationeel eenvoudig en biedt voldoende toewijzingscapaciteit; een smal bereik is gemakkelijker te definiëren in firewallbeleid, maar kan een capaciteitsknelpunt worden als te veel gelijktijdige relays poorten nodig hebben. Bepaal de grootte van een kleiner bereik op basis van de verwachte gelijktijdigheid in plaats van een willekeurig klein getal te kiezen.

Als de TURN-host een privéadres achter een router heeft, behoud dan de één-op-één poorttoewijzing voor het geselecteerde relaybereik en stel de publieke adrestoewijzing in coturn in. Als de host een publiek IP-adres direct op zijn interface heeft, is de NAT-toewijzingsstap niet nodig.

Illustratie van firewallregels die TCP- en UDP-poort 443 toestaan, plus het bijbehorende UDP-relaybereik 49152 tot en met 65535.
Firewallplanning voor coturn: sta de TURN-listener en het geconfigureerde relaybereik toe. Het weergegeven bereik is de standaardwaarde volgens de documentatie van coturn, geen verplichte waarde.

Stap 4: Voeg de TURN-server toe in Nextcloud Talk.

Open het Nextcloud-beheergebied en ga naar de Talk-instellingen. Voeg de TURN-server toe met de hostnaam en poort, niet met een http://URL https://. Volgens de huidige Nextcloud Talk-documentatie wordt het TURN-schema apart geselecteerd, dus het serverveld moet de volgende vorm hebben: <servernaam> turn.example.com:443.

Voer hetzelfde gedeelde geheim in dat is geconfigureerd in coturn en schakel de protocollen in die uw server daadwerkelijk accepteert. Als u TLS gebruikt, selecteer dan het bijbehorende TURN-schema en zorg ervoor dat het certificaat overeenkomt met de TURN-hostnaam. U kunt ook uw eigen TURN-service als STUN-server gebruiken, wat het hostbeheer vereenvoudigt. Het gescheiden houden van STUN en TURN kan echter handig zijn als u onafhankelijke foutdomeinen of geografisch verspreide relays wilt.

Maak het gedeelde geheim niet openbaar in screenshots, tickets of openbare configuratievoorbeelden. Nextcloud gebruikt het om tijdelijke TURN-referenties voor clients te genereren.

Stap 5: test ICE-kandidaten en test vervolgens vanuit een restrictief netwerk.

Nadat u de Talk-configuratie hebt opgeslagen, gebruikt u de beheercontrole om te verifiëren of de TURN-server bruikbare ICE-kandidaten retourneert. Een succesvol resultaat bewijst dat de browser werkende kandidaten van de geconfigureerde TURN-service kon verkrijgen. Het bewijst echter niet dat elk gebruikersnetwerk, elk doorschakelpad en elk groot gesprek probleemloos zal verlopen.

Herhaal een daadwerkelijke oproep vanaf ten minste één restrictief netwerk. Dit is belangrijk omdat een servercontrole kan slagen terwijl een gebruikersnetwerk UDP, DNS-resolutie of een specifiek transport nog steeds blokkeert. Als UDP mislukt maar TCP/TLS op poort 443 wel lukt, behoud dan het fallback-pad. Als alle paden falen, controleer dan de firewall-logboeken, coturn-logboeken, DNS, certificaatvaliditeit, het gedeelde geheim en NAT-mapping.

Illustratieve Nextcloud Talk-beheercontrole die een succesvolle STUN- en TURN-status met bruikbare ICE-kandidaten laat zien.
Een succesvolle ICE-kandidaatcontrole is een sterk signaal voor de configuratie, maar daadwerkelijke gesprekken vanuit beperkte netwerken zijn nog steeds nodig om de end-to-end bereikbaarheid te verifiëren.

Wanneer moet je de krachtige backend toevoegen?

TURN en de High Performance Backend lossen verschillende problemen op. TURN stuurt verkeer door wanneer clients het vereiste WebRTC-pad niet tot stand kunnen brengen. De High Performance Backend verandert de manier waarop media met meerdere deelnemers worden verwerkt, zodat niet elke deelnemer een aparte stream naar elke andere deelnemer hoeft te uploaden.

De Nextcloud Talk-interface zelf waarschuwt dat het gebruik zonder de High Performance Backend alleen bedoeld is voor zeer kleine gesprekken, in het project doorgaans omschreven als gesprekken met twee tot drie deelnemers. Als het probleem zich alleen voordoet wanneer het aantal deelnemers toeneemt, kan het toevoegen van TURN ervoor zorgen dat meer clients bereikbaar zijn, maar het zal de peer-to-peer upload- en CPU-belasting niet wegnemen. Raadpleeg de systeemvereisten van Nextcloud Talk en de richtlijnen voor de High Performance Backend van het project voordat u groepsgesprekken opschaalt.

Zelfs met de krachtige backend is het belangrijk om TURN beschikbaar te houden wanneer gebruikers verbinding maken vanuit netwerken met beperkingen. Nextcloud documenteert een standaard WebRTC-mediabereik 20000-40000voor de backend en merkt specifiek op dat een client die beperkt is tot poort 443 mogelijk nog steeds TURN nodig heeft om pakketten naar dat backendbereik door te sturen.

TURN in eigen beheer versus TURN in beheer

OptieVoordelenKosten en limietenBeste pasvorm
Zelf gehoste coturnVolledige controle, datapad onder uw beheer, voorspelbare configuratieU beheert certificaten, updates, monitoring, bandbreedte, firewallbeleid en geografische capaciteit.Organisaties met expertise op het gebied van infrastructuur of met strikte controlevereisten.
Gecontroleerde TURNMinder operationele inspanning en mogelijk een eenvoudiger geografisch bereik.Doorlopende servicekosten en media kunnen via een externe doorgeefprovider verlopen.Teams die prioriteit geven aan operationele eenvoud en bereik in meerdere regio's
Geen draaiLaagste serverkosten en kortste route wanneer directe WebRTC altijd werktOproepen kunnen mislukken bij symmetrische NAT's en restrictieve firewalls.Gecontroleerde omgevingen waar de netwerken van de klanten bekend en getest zijn.

Praktische afstelchecklist

  • Geef waar mogelijk de voorkeur aan directe WebRTC. Dit minimaliseert doorgaans de relaykosten en de latentie.
  • Zorg voor TURN voor betrouwbaarheid. Beschouw het als een terugvaloptie voor lastige NAT- en firewallomstandigheden.
  • Gebruik eerst UDP en daarna TCP/TLS voor compatibiliteit. Poort 443 is de meest firewallvriendelijke luisterpoort die Nextcloud aanbeveelt.
  • Open het relaybereik, niet alleen de listener. Stem de firewall- en NAT-regels af op de daadwerkelijke min-portconfiguratie max-port.
  • Monitor de TURN-bandbreedte. Doorgeschakelde gesprekken kunnen aanzienlijke hoeveelheden mediaverkeer via de TURN-host verwerken, waardoor netwerkcapaciteit vaak belangrijker is dan CPU-kracht.
  • Scheid schaalproblemen van connectiviteitsproblemen. Evalueer voor grotere vergaderingen de krachtige backend in plaats van meer verkeer via TURN te leiden.
  • Valideer met behulp van echte gebruikersnetwerken. Een ICE-test is noodzakelijk, maar hotel-, bedrijfs-, VPN- en mobiele netwerken kunnen zich verschillend gedragen.

Kortom

Als Nextcloud Talk op sommige netwerken wel werkt en op andere niet, configureer dan een goed bereikbare TURN-service en controleer de listener, het gedeelde geheim, de NAT-mapping en de relay-poorten. Als gesprekken wel tot stand komen, maar de kwaliteit slecht is, meet dan eerst de belasting van het clientnetwerk en het eindpunt, omdat TURN de latentie eerder kan verhogen dan verlagen. Als het probleem groter wordt naarmate het aantal deelnemers toeneemt, is de meest geschikte architectuuroplossing meestal de High Performance Backend, waarbij TURN behouden blijft als compatibiliteitsoplossing voor netwerken met beperkingen.

Laat een reactie achter

Het probleem met het hoge CPU-gebruik in Jitsi Meet op clientbrowsers oplossen.

Het probleem met het hoge CPU-gebruik in Jitsi Meet op clientbrowsers oplossen.

Diagnoseer pieken in het CPU-gebruik van de Jitsi Meet-browser en verlaag de belasting van de client door videotegels, camera-effecten, browsergraphics en hostinstellingen te controleren.

Hoe je Jitsi Videobridge-statistieken kunt monitoren met Prometheus en Grafana

Hoe je Jitsi Videobridge-statistieken kunt monitoren met Prometheus en Grafana

Monitor de status van Jitsi Videobridge, de belasting van conferenties en het verkeer met het ingebouwde Prometheus-eindpunt, en analyseer en visualiseer de gegevens vervolgens in Grafana.

Hoe configureer je een aangepaste domeinnaam voor Jitsi Meet Docker?

Hoe configureer je een aangepaste domeinnaam voor Jitsi Meet Docker?

Configureer een aangepast domein voor Jitsi Meet Docker met DNS, PUBLIC_URL, HTTPS, Let's Encrypt, firewallpoorten, NAT-instellingen en end-to-end verificatie.

Oplossing voor de 404-fout 'Zimbra Admin Console niet gevonden' na SSL-vernieuwing.

Oplossing voor de 404-fout 'Zimbra Admin Console niet gevonden' na SSL-vernieuwing.

Los 404-fouten in de Zimbra Admin Console op na het vernieuwen van een SSL-certificaat door de juiste URL en poort, proxy-routering, servicestatus, geïmplementeerde certificaten en logbestanden te controleren.

Los de Nextcloud-waarschuwing "De PHP OPcache is niet correct geconfigureerd" op.

Los de Nextcloud-waarschuwing "De PHP OPcache is niet correct geconfigureerd" op.

Leer hoe u de PHP OPcache-configuratiewaarschuwing van Nextcloud kunt diagnosticeren en oplossen door de actieve PHP SAPI, groottelimieten, opmerkingen en hervalidatie-instellingen te controleren.

Corrigeer migratiefouten in de Kopano-database na een MySQL-versie-upgrade.

Corrigeer migratiefouten in de Kopano-database na een MySQL-versie-upgrade.

Los problemen met Kopano-databasemigraties na een MySQL- of MariaDB-upgrade op door back-ups, serverversies, SQL-modi, tekenset, schemastatus en logbestanden te controleren.

Hoe configureer je LDAP- en Active Directory-authenticatie in Nextcloud?

Hoe configureer je LDAP- en Active Directory-authenticatie in Nextcloud?

Verbind Nextcloud met LDAP of Active Directory via beveiligd transport, gebruikers- en groepsfilters, inlogkenmerken en een geteste uitrolprocedure.

Element Android-meldingen repareren zonder Google-services: UnifiedPush-handleiding

Element Android-meldingen repareren zonder Google-services: UnifiedPush-handleiding

Los problemen met Element Android-meldingen op telefoons zonder Google op door UnifiedPush, Android-machtigingen, batterij-instellingen en betrouwbare verificatietests te configureren.

Los de Nextcloud-waarschuwing "Database mist enkele indexen" op.

Los de Nextcloud-waarschuwing "Database mist enkele indexen" op.

Verwijder de waarschuwing van Nextcloud over ontbrekende database-indexen met het officiële occ-commando. Maak eerst een back-up, bekijk de wijzigingen, voer de reparatie uit en controleer het resultaat.

Hoe configureer je Single Sign-On (SSO) met Keycloak in Element Web?

Hoe configureer je Single Sign-On (SSO) met Keycloak in Element Web?

Configureer Keycloak SSO voor Element Web door OIDC met Synapse te verbinden, de exacte callback-URL in te stellen, gebruikersclaims te koppelen en het uitloggen te testen.