Repolode
coturn

coturn/coturn

Implementação open source de servidores TURN e STUN que retransmitem tráfego de mídia VoIP e WebRTC através de NATs e firewalls.

Estrelas
14,542
Forks
2,288
Issues abertas
314
Último commit
há 21 horas

O que é?

coturn é um servidor gratuito e open source que implementa os protocolos TURN e STUN. Aplicações em tempo real, como VoIP e WebRTC, muitas vezes precisam conectar peers que estão atrás de NAT ou firewalls restritivos. O STUN ajuda o cliente a descobrir seu endereço público, e o TURN retransmite o tráfego de mídia por meio de um servidor quando não é possível estabelecer uma conexão direta.

O servidor oferece suporte aos transportes UDP, TCP, TLS e DTLS, incluindo TLS 1.3 e DTLS 1.0/1.2 entre as opções compatíveis. A autenticação pode usar credenciais de longo prazo, a TURN REST API com validade limitada, comumente usada por aplicações WebRTC, ou uma opção experimental de OAuth. As contas de usuário podem ser armazenadas em SQLite, MySQL/MariaDB, PostgreSQL, Redis ou MongoDB, e o status e as estatísticas podem ser disponibilizados por uma CLI via telnet, uma interface HTTPS ou métricas do Prometheus.

O projeto é voltado para Linux, BSD, macOS, Solaris e Windows. Pode ser instalado por meio de pacotes de várias distribuições Linux ou como imagem Docker, e pode ser escalado com registros DNS SRV, redirecionamentos ALTERNATE-SERVER ou um balanceador de carga de rede.

Recursos principais

  • 01Implementa STUN e TURN conforme as RFC 8489 e RFC 8656, além de retransmissão TCP (RFC 6062).
  • 02Oferece suporte aos transportes UDP, TCP, TLS e DTLS para clientes.
  • 03Oferece credenciais de longo prazo e a TURN REST API para autenticação WebRTC com validade limitada.
  • 04Armazena credenciais de usuário em SQLite, MySQL/MariaDB, PostgreSQL, Redis ou MongoDB.
  • 05Disponibiliza uma CLI via telnet, uma interface de gerenciamento HTTPS e métricas do Prometheus.
  • 06Inclui limitação de largura de banda e balanceamento de carga via DNS SRV ou ALTERNATE-SERVER.

Casos de uso

  • Retransmitir mídia em chamadas WebRTC ou VoIP entre peers atrás de NATs restritivos.
  • Executar um serviço TURN auto-hospedado para uma aplicação em tempo real baseada em ICE.
  • Escalar uma implantação TURN entre vários servidores usando DNS ou balanceadores de carga.

Início rápido

  1. 1

    Instale o coturn pelo gerenciador de pacotes da sua distribuição Linux

    apt install coturn
  2. 2

    Inicie o servidor e registre a saída em stdout

    turnserver --log-file stdout

Antes de usar

  • O encaminhamento de ICMP não está implementado, portanto peers inacessíveis não geram nenhuma Data indication.
  • O modo STUN clássico da RFC 3489 está obsoleto e será removido na próxima versão principal.
  • Para executar como servidor autônomo, você precisa configurar a autenticação e a rede por conta própria.

Tópicos

Perguntas frequentes

O que é coturn?
Implementação open source de servidores TURN e STUN que retransmitem tráfego de mídia VoIP e WebRTC através de NATs e firewalls. coturn é um servidor gratuito e open source que implementa os protocolos TURN e STUN. Aplicações em tempo real, como VoIP e WebRTC, muitas vezes precisam conectar peers que estão atrás de NAT ou firewalls restritivos. O STUN ajuda o cliente a descobrir seu endereço público, e o TURN retransmite o tráfego de mídia por meio de um servidor quando não é possível estabelecer uma conexão direta.
coturn é gratuito? Qual é a licença?
coturn é open source sob a licença Other. Confira os termos da licença antes de usá-lo em produtos comerciais.
coturn ainda é mantido?
Manutenção ativa. O último commit de coturn foi em 6 de nov. de 2026.
Para que posso usar coturn?
Retransmitir mídia em chamadas WebRTC ou VoIP entre peers atrás de NATs restritivos. Executar um serviço TURN auto-hospedado para uma aplicação em tempo real baseada em ICE. Escalar uma implantação TURN entre vários servidores usando DNS ou balanceadores de carga.
Como instalar coturn?
Instale o coturn pelo gerenciador de pacotes da sua distribuição Linux: apt install coturn Inicie o servidor e registre a saída em stdout: turnserver --log-file stdout
Onde consigo coturn?
O código-fonte e as instruções de instalação estão no GitHub: https://github.com/coturn/coturn

Resumo gerado por IA a partir do README do projeto. As estatísticas do GitHub são atualizadas diariamente.

Projetos relacionados