OpenReplay Logo
12k
12k

WebRTC ICE-тест

Укажите STUN- или TURN-сервер, соберите ICE-кандидатов и убедитесь, что он действительно работает — проверка Trickle ICE, полностью в вашем браузере.

Серверы STUN / TURN

Работает в вашем браузере
Транспорт ICE

«Только relay» запускает тест исключительно через TURN, игнорируя кандидаты STUN и host.

Необязательно. Без разрешения на доступ к медиа Chrome собирает кандидатов только с одного сетевого интерфейса; разрешение открывает все интерфейсы. Ничего не записывается — поток сразу же останавливается.

ICE-кандидаты

Кандидатов пока нет. Добавьте сервер и нажмите «Собрать кандидатов».

Об этом инструменте

Это та самая проверка Trickle ICE, к которой обращаются разработчики, когда WebRTC-соединение не устанавливается. Введите URI STUN- или TURN-сервера (плюс имя пользователя и учётные данные для TURN), и инструмент создаёт локальный RTCPeerConnection, использующий только этот сервер, собирает ICE-кандидатов и сообщает, что нашёл. Кандидат типа server-reflexive (srflx) означает, что STUN работает; кандидат типа relay означает, что работает TURN.

Неверные учётные данные TURN проявляются как 401 в событии onicecandidateerror — это самый полезный диагностический признак — так что вы отличите проблему с авторизацией от недоступного хоста. Установите транспортную политику в «Только relay», чтобы запустить тест исключительно через TURN, или предоставьте необязательное разрешение на доступ к микрофону/камере, чтобы браузер открыл кандидатов со всех сетевых интерфейсов, а не только с одного. Нажмите на любой адрес, чтобы скопировать его.

URI серверов и учётные данные TURN передаются только в локальный RTCPeerConnection вашего браузера — ничего не отправляется в OpenReplay. Единственное неизбежное сетевое действие — это binding-запрос STUN/TURN к серверу, который вы тестируете, и в этом весь смысл инструмента. Учтите, что тест STUN по своей природе раскрывает ваш публичный IP этому STUN-серверу.

Часто задаваемые вопросы

Что такое STUN-сервер?

STUN-сервер сообщает устройству его собственный публичный IP-адрес и порт, какими их видит интернет, чтобы два пира за NAT смогли найти путь друг к другу. WebRTC использует его для сбора кандидатов типа server-reflexive (srflx). Он только обнаруживает адреса — он не ретранслирует медиа.

Что такое TURN-сервер?

TURN-сервер ретранслирует медиа между пирами, когда прямое соединение невозможно (симметричный NAT или ограничивающие брандмауэры). В отличие от STUN, трафик проходит через него, поэтому ему нужны учётные данные. В WebRTC работающий TURN-сервер выдаёт кандидата типа relay.

В чём разница между STUN и TURN?

STUN лишь обнаруживает ваш публичный адрес, чтобы пиры могли соединиться напрямую; он лёгкий и бесплатный. TURN ретранслирует сам трафик, когда прямой путь не работает, что расходует трафик и требует аутентификации. Большинство WebRTC-конфигураций сначала пробуют STUN и переключаются на TURN при неудаче.

Как проверить, работает ли TURN-сервер?

Введите URI turn: вместе с именем пользователя и учётными данными, установите транспорт в «relay» и соберите кандидатов. Если появляется кандидат типа "relay", TURN-сервер работает. Если вместо этого вы получаете ошибку 401 — учётные данные неверны; полное отсутствие кандидатов означает, что сервер недоступен.

Как понять, работает ли STUN-сервер?

Введите URI stun: и соберите кандидатов. Если появляется кандидат типа "srflx" (server-reflexive) с вашим публичным IP, STUN-сервер доступен и работает. Если появляются только кандидаты "host", STUN-сервер не ответил.

Что такое Trickle ICE?

Trickle ICE — это приём WebRTC, при котором ICE-кандидаты отправляются другому пиру по мере обнаружения, не дожидаясь завершения сбора. Этот инструмент выполняет тот же процесс сбора кандидатов, так что вы можете наблюдать за появлением каждого кандидата и убедиться, что сервер отвечает.