Що роблять сервери STUN і TURN
WebRTC забезпечує відеодзвінки, демонстрацію екрана й передавання файлів між браузерами. Перш ніж два пристрої зможуть зв’язатися напряму, кожен має знати, за якою адресою доступний інший. Однак більшість пристроїв перебувають за домашнім роутером або корпоративним брандмауером і використовують приватні адреси, які транслює NAT. Сервери STUN і TURN розв’язують цю проблему:
- STUN повідомляє пристрою, яким він виглядає з інтернету: його публічну IP-адресу та порт. З цією інформацією два учасники часто можуть з’єднатися напряму.
- TURN працює як ретранслятор, коли пряме з’єднання неможливе, наприклад за симетричним NAT, суворими брандмауерами або в мережах, що дозволяють лише TCP.
Запуск тесту
- Введіть URL сервера з префіксом stun:, turn: або turns: (наприклад, stun:server.example.com:3478 або turn:server.example.com:3478?transport=tcp).
- Для TURN-серверів заповніть ім’я користувача й облікові дані. Якщо ви використовуєте облікові дані з обмеженим терміном дії, переконайтеся, що він не минув.
- За потреби додайте інші сервери й запустіть тест. Ваш браузер збирає ICE-кандидатів і показує кожного з типом, адресою, протоколом і часом надходження.
Якщо у вас немає власного сервера, скористайтеся опцією перевірки наших серверів, щоб побачити, як виглядає робочий результат.
Як читати типи кандидатів
Кожен рядок у результаті — це ICE-кандидат. Його значення залежить від типу:
- host: власна локальна адреса пристрою. Сучасні браузери з міркувань приватності приховують її за випадковим іменем .local.
- srflx: публічна адреса, яку повідомив STUN-сервер. Якщо ви її бачите, STUN працює.
- relay: адреса ретранслятора, виділена TURN-сервером. Якщо ви її бачите, TURN і автентифікація працюють.
- prflx: адреса, виявлена під час перевірок з’єднання; в односторонньому тесті трапляється рідко.
Стовпець часу показує, через скільки мілісекунд після початку надійшов кожен кандидат. Це дає уявлення про віддаленість і навантаження сервера; час у кілька сотень мілісекунд може помітно сповільнити встановлення дзвінка.
Типові проблеми
- Немає кандидата relay: неправильне ім’я користувача чи пароль, невідповідний static-auth-secret на сервері або порт TURN заблокований брандмауером.
- Працює лише через UDP: для користувачів в обмежених мережах додайте ?transport=tcp або turns: (TLS) на порту 443.
- turns: не працює, а turn: працює: TLS-сертифікат може бути недійсним, простроченим або не відповідати імені хоста.
- Неочікувана адреса srflx: за CGNAT або VPN публічна адреса належить вашому провайдеру чи VPN-сервісу.
Тест повністю виконується у вашому браузері; введені облікові дані використовуються лише браузером для підключення до вказаного вами сервера. Щоб побачити свій публічний IP і стан витоку через WebRTC, відвідайте сторінку Який мій IP. Щоб виміряти реальну втрату пакетів через канал даних WebRTC, спробуйте тест втрати пакетів, а базову затримку перевірте за допомогою пінг-тесту, перш ніж налаштовувати якість дзвінків у власному застосунку.