Тест серверов STUN / TURN

Проверьте прямо из браузера, работают ли ваши ICE-серверы и какие кандидаты они возвращают.

URL сервера

Результат

    ICE-кандидаты

    ТипАдресПротоколВремя

    Зачем нужны серверы STUN и TURN

    На WebRTC работают видеозвонки, демонстрация экрана и передача файлов между браузерами. Прежде чем два устройства смогут общаться напрямую, каждому нужно знать, по какому адресу доступно другое. Однако большинство устройств находятся за домашним роутером или корпоративным брандмауэром и используют частные адреса, преобразуемые через NAT. Эту задачу решают серверы STUN и TURN:

    • STUN сообщает устройству, как оно выглядит из интернета: его публичный IP-адрес и порт. С этой информацией два узла часто могут соединиться напрямую.
    • TURN работает как ретранслятор, когда прямое соединение невозможно, например за симметричным NAT, строгими брандмауэрами или в сетях, где разрешён только TCP.

    Как провести тест

    1. Введите URL сервера с префиксом stun:, turn: или turns: (например, stun:server.example.com:3478 или turn:server.example.com:3478?transport=tcp).
    2. Для серверов TURN укажите имя пользователя и учётные данные. Если вы используете временные учётные данные, убедитесь, что срок их действия не истёк.
    3. При необходимости добавьте другие серверы и запустите тест. Браузер соберёт 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, попробуйте тест потери пакетов, а базовую задержку проверьте тестом пинга, прежде чем настраивать качество звонков в своём приложении.

    Инструменты