From 826a0a391a2f32ea371532f70ca523f88248f2bb Mon Sep 17 00:00:00 2001 From: Max Ronzhin Date: Sun, 2 Aug 2026 22:11:32 +0300 Subject: [PATCH] =?UTF-8?q?fix(coturn):=20verbose-=D0=BB=D0=BE=D0=B3=D0=B8?= =?UTF-8?q?=D1=80=D0=BE=D0=B2=D0=B0=D0=BD=D0=B8=D0=B5=20=E2=80=94=20=D0=B8?= =?UTF-8?q?=D0=BD=D0=B0=D1=87=D0=B5=20ALLOCATE/CreatePermission=20=D0=BD?= =?UTF-8?q?=D0=B5=20=D0=B2=D0=B8=D0=B4=D0=BD=D1=8B=20=D0=B2=20docker=20log?= =?UTF-8?q?s?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Дефолтный simple-log в coturn не пишет построчно ALLOCATE/CreatePermission/ Refresh даже при реально работающем relay (найдено на релизе 0.0.22: рабочий звонок через TURN, но grep -ci allocate по логам coturn = 0, подтверждение пришлось брать из логов LiveKit). Добавлен флаг verbose (умеренный режим, не Verbose/-V — тот слишком шумный). DEPLOYMENT.md предупреждает, что проверка через grep -ci allocate надёжна только с этим флагом. --- deploy/coturn/turnserver.conf.template | 11 +++++++++++ docs/deploy/DEPLOYMENT.md | 19 ++++++++++++++++++- 2 files changed, 29 insertions(+), 1 deletion(-) diff --git a/deploy/coturn/turnserver.conf.template b/deploy/coturn/turnserver.conf.template index b2c8e54..08084b6 100644 --- a/deploy/coturn/turnserver.conf.template +++ b/deploy/coturn/turnserver.conf.template @@ -44,6 +44,17 @@ pkey=/etc/coturn/certs/key.pem log-file=stdout simple-log +# Умеренная verbose-логика (`-v`/`verbose` в терминах coturn, НЕ +# `Verbose`/`-V` — тот режим сам coturn документирует как "very annoying", +# построчный дамп пакетов). Без этого флага дефолтный уровень логов не +# печатает ни строки на ALLOCATE/CreatePermission/Refresh, даже когда TURN +# реально обслуживает relay — проверено на релизе 0.0.22 (`docker logs +# vidconf-coturn-1 | grep -ci allocate` = 0 при живом рабочем звонке, +# подтверждение пришлось брать из логов LiveKit). С этим флагом coturn +# печатает по сессии: create/delete allocation, create permission, refresh — +# достаточно, чтобы дальше проверять относительно скромный вывод. +verbose + # Внешний IP сервера — обязателен для клиентов вне docker-сети # (network_mode: host здесь не даёт coturn определить публичный IP # автоматически). Для локальной разработки (без внешних участников) diff --git a/docs/deploy/DEPLOYMENT.md b/docs/deploy/DEPLOYMENT.md index 9e0daaa..2b1b6d0 100644 --- a/docs/deploy/DEPLOYMENT.md +++ b/docs/deploy/DEPLOYMENT.md @@ -374,6 +374,19 @@ state: connected`, но собеседник не видит видео/не с `docker logs vidconf-coturn-1 --since 10m 2>&1 | grep -ci allocate`. Ноль при живом звонке из-за NAT означает, что до coturn не дошли — смотрите ufw и `TURN_EXTERNAL_IP`. + ⚠️ **Эта проверка работает только с `verbose` в + `deploy/coturn/turnserver.conf.template`** (включён по умолчанию). Без + этого флага coturn пишет в лог только служебные строки старта + (листенеры, `Total auth threads`) и НИКОГДА не логирует + ALLOCATE/CreatePermission/Refresh — `grep -ci allocate` даёт `0` даже + когда relay реально обслуживает звонок. Это не гипотеза: на релизе + 0.0.22 именно так и обнаружили — рабочий relay-звонок (LiveKit + `connectionType: turn`, реальные relay-кандидаты в `49160-49200`) при + дефолтном `simple-log` без `verbose` дал `grep -ci allocate` = `0`, + подтверждение пришлось брать из логов LiveKit. Если ваш конфиг старее + и `verbose` в нём нет — добавьте флаг, перерендерите + (`./deploy/render-templates.sh`) и пересоздайте `coturn`, прежде чем + доверять этой проверке. ### TURN over TLS (порт 5349) @@ -457,7 +470,11 @@ compose-файле): копирует `fullchain.pem`/`privkey.pem` в свой 8. Провести звонок, принудительно загнав клиента в relay-режим (ICE transport policy `relay` в браузере), и убедиться, что аллокации в `docker logs vidconf-coturn-1` растут именно через TLS-соединение, а - обычный TURN на 3478 продолжает работать для остальных клиентов. + обычный TURN на 3478 продолжает работать для остальных клиентов + (с `verbose`, см. предупреждение в п.4 выше, каждая аллокация видна + отдельной строкой `ALLOCATE processed, success` — можно отличить + TLS-сессию от обычной по времени и по тому, что порт входящего + соединения — 5349). ---