SHA256
2.7 KiB
2.7 KiB
Настройка TURN-сервера
TURN-хосты SHiNE должны использовать домены:
turn1.shineup.meturn2.shineup.meturn3.shineup.me
IP не фиксировать в документах и скриптах как основной идентификатор.
1. DNS
Создать или обновить DNS A/AAAA для нужного turnX.shineup.me.
2. Пакеты
sudo apt update
sudo apt install -y coturn caddy
Можно использовать вспомогательный скрипт на самом TURN-хосте:
sudo bash deploy/scripts/setup_turn_coturn.sh --realm turn1.shineup.me --secret CHANGE_ME_LONG_RANDOM_SECRET
По умолчанию этот скрипт настраивает relay-диапазон 49000-53999.
Это стандарт SHiNE: 5000 UDP-портов под TURN relay.
3. coturn
Секреты не хранить в git. Настраивать на сервере через /etc/turnserver.conf или отдельный secret/override.
Минимальная схема:
listening-port=3478
tls-listening-port=5349
fingerprint
lt-cred-mech
realm=turn1.shineup.me
server-name=turn1.shineup.me
use-auth-secret
static-auth-secret=<secret-on-server-only>
no-multicast-peers
no-cli
Для SHiNE держать relay-range большим сразу, чтобы не упираться в create_relay_ioa_sockets: no available ports.
Стандартный диапазон:
min-port=49000
max-port=53999
Включить сервис:
sudo systemctl enable coturn
sudo systemctl restart coturn
4. Caddy
Caddy можно использовать для HTTPS health/check endpoint и автоматического TLS на домене.
Пример:
turn1.shineup.me {
respond /health "ok" 200
}
Проверка:
sudo caddy validate --config /etc/caddy/Caddyfile
sudo systemctl restart caddy
curl -I https://turn1.shineup.me/health
5. Проверка портов
sudo systemctl --no-pager --full status coturn caddy
sudo ss -lntup | grep -E ':(3478|5349)'
6. Важное
- TURN credentials и shared secret не коммитить.
- Если TURN домен переносится на другой VPS, менять DNS, а не код приложения.
- После изменения TURN-адресов обновить серверные/UI настройки, где они используются.
- Не сужать relay-range ниже 5000 UDP-портов без явной причины: для SHiNE это уже приводило к отказам звонков на проде
24 июля 2026.