Čemu služe STUN i TURN poslužitelji
WebRTC pokreće videopozive, dijeljenje zaslona i prijenos datoteka izravno između preglednika. Prije nego što dva uređaja mogu izravno komunicirati, svaki mora znati na kojoj je adresi drugi dostupan. Međutim, većina uređaja nalazi se iza kućnog usmjerivača ili korporativnog vatrozida i koristi privatne adrese koje se prevode NAT-om. STUN i TURN poslužitelji to rješavaju:
- STUN uređaju govori kako ga vidi internet: njegovu javnu IP adresu i port. S tim podatkom dva se sudionika često mogu izravno povezati.
- TURN služi kao posrednik (relay) kada izravna veza nije moguća, na primjer iza simetričnog NAT-a, strogih vatrozida ili u mrežama koje dopuštaju samo TCP.
Pokretanje testa
- Unesite URL poslužitelja s prefiksom stun:, turn: ili turns: (na primjer stun:server.example.com:3478 ili turn:server.example.com:3478?transport=tcp).
- Za TURN poslužitelje ispunite korisničko ime i vjerodajnicu. Ako koristite vremenski ograničene vjerodajnice, provjerite da nisu istekle.
- Po potrebi dodajte još poslužitelja i pokrenite test. Vaš preglednik prikuplja ICE kandidate i navodi svakoga s vrstom, adresom, protokolom i vremenom potrebnim da stigne.
Ako nemate vlastiti poslužitelj, upotrijebite opciju za testiranje naših poslužitelja da vidite kako izgleda ispravan rezultat.
Tumačenje vrsta kandidata
Svaki redak u rezultatu jedan je ICE kandidat. Njegovo značenje ovisi o vrsti:
- host: vlastita lokalna adresa uređaja. Moderni preglednici radi privatnosti je skrivaju iza nasumičnog .local naziva.
- srflx: javna adresa koju je javio STUN poslužitelj. Ako je vidite, STUN radi.
- relay: relay adresa koju je dodijelio TURN poslužitelj. Ako je vidite, TURN i autentifikacija rade.
- prflx: adresa otkrivena tijekom provjera povezivosti; rijetko se pojavljuje u jednostranom testu.
Stupac vremena pokazuje koliko je milisekundi nakon početka stigao svaki kandidat. To daje predodžbu o udaljenosti i opterećenju poslužitelja; vremena od nekoliko stotina milisekundi mogu primjetno usporiti uspostavu poziva.
Česti problemi
- Nema relay kandidata: pogrešno korisničko ime ili lozinka, neusklađen static-auth-secret na poslužitelju ili TURN port blokiran vatrozidom.
- Radi samo preko UDP-a: za korisnike u ograničenim mrežama dodajte ?transport=tcp ili turns: (TLS) na portu 443.
- turns: ne radi, a turn: radi: TLS certifikat možda je nevaljan, istekao ili se ne podudara s nazivom hosta.
- Neočekivana srflx adresa: uz CGNAT ili VPN javna adresa pripada vašem davatelju internetske ili VPN usluge.
Test se u cijelosti izvodi u vašem pregledniku; vjerodajnice koje unesete koristi samo vaš preglednik za povezivanje s navedenim poslužiteljem. Za prikaz javne IP adrese i statusa WebRTC curenja posjetite stranicu Koja je moja IP adresa. Za mjerenje stvarnog gubitka paketa preko WebRTC podatkovnog kanala isprobajte test gubitka paketa, a osnovnu latenciju provjerite ping testom prije nego što počnete podešavati kvalitetu poziva u vlastitoj aplikaciji.