Voltar às atualizações
New releaseSep 1, 2026

TrustTunnel v1.1.0

Protocolo VPN de código aberto que encapsula tráfego TCP, UDP e ICMP sobre HTTPS, contornando DPI e limitação de banda. Inclui split tunneling, proxy SOCKS5, DNS personalizado e clientes multiplataforma.

Compartilhar

TrustTunnel

Clientes · App Store · Play Store


Índice


Introdução

TrustTunnel é um protocolo VPN moderno e de código aberto originalmente desenvolvido pela AdGuard VPN e agora disponível para qualquer pessoa usar e auditar.

Ele oferece conexões VPN rápidas, seguras e confiáveis sem as trocas usuais. Por design, o tráfego do TrustTunnel é indistinguível do tráfego HTTPS regular, permitindo que ele ignore limitações de largura de banda e inspeção profunda de pacotes, mantendo ao mesmo tempo fortes proteções de privacidade.

O projeto TrustTunnel inclui o endpoint VPN (este repositório), a biblioteca e CLI para o cliente, e o aplicativo GUI.

Funcionalidades do Servidor

  • Protocolo VPN: A biblioteca implementa o protocolo VPN compatível com HTTP/1.1, HTTP/2 e QUIC. Ao imitar o tráfego de rede normal, torna-se impossível de detectar e bloquear.

  • Tunelamento Flexível de Tráfego: TrustTunnel pode tacular tráfego TCP, UDP e ICMP de e para o cliente.

  • Compatibilidade de Plataforma: O servidor é compatível com Linux e macOS. O cliente está disponível para Android, Apple, Windows e Linux.


Funcionalidades do Cliente

  • Tunelamento de Tráfego: A biblioteca é capaz de tacular tráfego TCP, UDP e ICMP do cliente para o endpoint e vice-versa.

  • Suporte Multiplataforma: Suporta plataformas Linux, macOS e Windows, proporcionando uma experiência consistente em diferentes sistemas operacionais.

  • Túnel de Sistema e Proxy SOCKS5: Pode ser configurado como um túnel de sistema, utilizando uma interface de rede virtual, bem como um proxy SOCKS5.

  • Tunelamento Dividido: A biblioteca suporta tunelamento dividido, permitindo que usuários excluam conexões a determinados domínios ou hosts do roteamento através do endpoint VPN, ou vice-versa, apenas roteando conexões para domínios ou hosts específicos através do endpoint com base em uma lista de exclusão.

  • DNS Upstream Personalizado: Os usuários podem especificar um DNS upstream personalizado, que é usado para consultas DNS roteadas através do endpoint VPN.


Início rápido

Configuração do endpoint

Instalar o endpoint

Um script de instalação está disponível e pode ser executado com o seguinte comando:

curl -fsSL https://raw.githubusercontent.com/TrustTunnel/TrustTunnel/refs/heads/master/scripts/install.sh | sh -s -

O script de instalação baixará o pacote pré-compilado da versão mais recente do GitHub para a arquitetura de sistema apropriada e o descompactará em /opt/trusttunnel. O diretório de saída pode ser alterado especificando -o DIR no final do comando acima.

Se você deseja instalar uma versão específica (em vez da mais recente), use -V <version>:

curl -fsSL https://raw.githubusercontent.com/TrustTunnel/TrustTunnel/refs/heads/master/scripts/install.sh | sh -s - -V <version>

[!NOTE] Pacotes pré-compilados estão disponíveis para as arquiteturas linux-x86_64, linux-aarch64 e macos-universal (Intel e Apple Silicon).

Atualizar o endpoint

O script de instalação sempre instala a versão mais recente disponível. Portanto, para atualizar sua instalação, execute o comando de instalação novamente:

curl -fsSL https://raw.githubusercontent.com/TrustTunnel/TrustTunnel/refs/heads/master/scripts/install.sh | sh -s -

Isso executa novamente o instalador e substitui os binários no diretório de instalação (/opt/trusttunnel por padrão, ou o diretório que você especificou com -o DIR).

[!NOTE] Não se esqueça de parar o endpoint antes de atualizar:

sudo systemctl stop trusttunnel

Para iniciar o endpoint novamente após a atualização:

sudo systemctl start trusttunnel

Assistente de configuração do endpoint

Consulte CONFIGURATION.md para uma documentação mais detalhada sobre como configurar o endpoint.

O diretório de instalação contém o binário setup_wizard que ajuda a gerar os arquivos de configuração necessários para o endpoint executar:

cd /opt/trusttunnel/
./setup_wizard -h

O assistente de configuração suporta modo interativo, então você pode executá-lo e ele perguntará os dados necessários para a configuração do endpoint.

cd /opt/trusttunnel/
sudo ./setup_wizard

[!NOTE] sudo é necessário para gerenciar certificados TLS adequadamente.

O assistente perguntará pelos seguintes campos, alguns dos quais possuem valores padrão que você pode usar com segurança:

  • Endereço de escuta - especifique o endereço para o endpoint escutar. Use 0.0.0.0:443 para implantações nativas (HTTPS em todas as interfaces). Se você executar com mapeamento de porta Docker 443:8443, defina como 0.0.0.0:8443.

  • Caminho para o arquivo de credenciais - caminho onde as credenciais do usuário para autorização serão armazenadas.

  • Nome de usuário - o nome de usuário que o usuário usará para autorização.

  • Senha - a senha do usuário.

  • Adicionar mais um usuário? - selecione yes se desejar adicionar mais usuários, ou no para continuar o processo de configuração.

  • Caminho para o arquivo de regras - caminho para armazenar as regras de filtragem.

  • Regras de filtragem de conexão - você pode adicionar regras que o endpoint usará para permitir ou negar conexões do usuário com base em:

    • Endereço IP do cliente
    • Prefixo aleatório TLS
    • Aleatório TLS com máscara

    Pressione n para permitir todas as conexões.

  • Caminho para um arquivo para armazenar as configurações da biblioteca - caminho para armazenar o arquivo principal de configuração do endpoint.

  • Seleção de certificado - escolha como obter um certificado TLS:

    • Emitir um certificado Let's Encrypt (requer um domínio público) - o assistente de configuração tem suporte ACME embutido e pode obter automaticamente um certificado gratuito e publicamente confiável da Let's Encrypt. Você precisará de:
      • Um domínio registrado apontando para o endereço IP do seu servidor
      • Porta 80 acessível da internet (para desafio HTTP-01), ou
      • Capacidade de adicionar registros DNS TXT (para desafio DNS-01)
    • Gerar um certificado autoassinado - adequado para testes ou ao usar apenas o cliente CLI. Nota: O cliente Flutter ainda não suporta certificados autoassinados.
    • Fornecer caminho para certificado existente - use seus próprios arquivos de certificado obtidos de outra AC ou ferramenta como certbot.
  • Caminho para um arquivo para armazenar as configurações de hosts TLS - caminho para armazenar o arquivo de configurações de hosts TLS.

Neste ponto, todos os arquivos de configuração necessários são criados e salvos no disco.

Ciclo de vida do certificado Let's Encrypt

O assistente de configuração pode obter um certificado Let's Encrypt durante a configuração inicial, mas você é responsável por garantir que ele permaneça válido ao longo do tempo (renovação e recarga/reinício do serviço).

Se você estiver usando o Certbot para gerenciar certificados e renová-los automaticamente, siga o guia em CERT_RENEWAL.md.

Executar o endpoint

O pacote instalado contém um template de serviço systemd, chamado trusttunnel.service.template.

Este template pode ser usado para configurar o endpoint como um serviço systemd:

[!NOTE] O arquivo template assume que o binário do TrustTunnel Endpoint e todos os seus arquivos de configuração estão localizados em /opt/trusttunnel e possuem os nomes de arquivo padrão. Modifique o template se você usou caminhos diferentes.

cd /opt/trusttunnel/
cp trusttunnel.service.template /etc/systemd/system/trusttunnel.service
sudo systemctl daemon-reload
sudo systemctl enable --now trusttunnel

Exportar configuração do cliente

O binário do endpoint pode gerar configurações do cliente em dois formatos:

Gere uma URI compacta tt://? adequada para códigos QR e aplicativos móveis:

# <client_name> - nome do cliente cujas credenciais serão incluídas na configuração
# <address> - `ip`, `ip:port`, `domain`, ou `domain:port` que o cliente usará para conectar
#           Se apenas `ip` ou `domain` for especificado, a porta do campo `listen_address` será usada
cd /opt/trusttunnel/
./trusttunnel_endpoint vpn.toml hosts.toml -c <client_name> -a <address>

# Ou especifique explicitamente o formato:
./trusttunnel_endpoint vpn.toml hosts.toml -c <client_name> -a <address> --format deeplink

Isso gera uma URI deep-link tt://? que pode ser:

Você também pode fornecer opções adicionais:

  • --name <display_name>: Defina um nome de exibição personalizado para o servidor no aplicativo cliente.
  • --dns-upstream <dns_upstream>: Especifique um DNS upstream para o cliente. Pode ser um endereço IP ou uma URI DNS segura (ex.: tls://1.1.1.1, https://dns.google/dns-query). Esta flag pode ser usada várias vezes para fornecer uma lista de DNS upstreams.

Exemplo com nome personalizado e DNS upstreams:

./trusttunnel_endpoint vpn.toml hosts.toml -c <client_name> -a <address> \
    --name "My Secure VPN" \
    --dns-upstream 1.1.1.1 --dns-upstream tls://8.8.8.8

Quando --generate-client-random-prefix é usado, o endpoint também anexa uma regra de permissão para o valor gerado ao arquivo rules.toml referenciado em vpn.toml.

Nota: Se seu certificado for assinado por uma AC confiável (ex.: Let's Encrypt), ele será automaticamente omitido do deep-link para mantê-lo compacto. Certificados autoassinados são incluídos automaticamente.

Formato TOML (Para Cliente CLI)

Gere um arquivo de configuração TOML tradicional:

cd /opt/trusttunnel/
./trusttunnel_endpoint vpn.toml hosts.toml -c <client_name> -a <public_ip> --format toml

Isso gera um arquivo de configuração TOML adequado para o cliente CLI.

Ambos os formatos contêm todas as informações necessárias para conectar ao endpoint. Consulte a documentação do TrustTunnel Flutter Client para instruções de configuração.

Parabéns! Você terminou a configuração do endpoint!

Configuração do cliente

Vários clientes estão disponíveis para conectar ao endpoint — veja a seção Clientes para a lista completa. As instruções abaixo cobrem a configuração do cliente CLI oficial.

Instalar o cliente

Linux / macOS

Um script de instalação está disponível:

curl -fsSL https://raw.githubusercontent.com/TrustTunnel/TrustTunnelClient/refs/heads/master/scripts/install.sh | sh -s -

O script de instalação baixará o pacote pré-compilado da versão mais recente do GitHub para a arquitetura de sistema apropriada e o descompactará em /opt/trusttunnel_client. O diretório de saída pode ser alterado especificando -o DIR no final do comando acima.

[!NOTE] O script de instalação suporta as arquiteturas x86_64, aarch64, armv7, mips e mipsel para linux e arm64 e x86_64 para macos.

Windows

Baixe o arquivo da versão mais recente da página de releases do TrustTunnel Client.

Extraia o arquivo para um diretório de sua escolha, por exemplo C:\TrustTunnel\.

Configuração em roteador

Para implantações em roteadores, consulte os guias de instalação do cliente específicos para roteadores.

Atualizar o cliente

Linux / macOS

O script de instalação sempre instala a versão mais recente disponível. Portanto, para atualizar sua instalação, execute o comando de instalação novamente:

curl -fsSL https://raw.githubusercontent.com/TrustTunnel/TrustTunnelClient/refs/heads/master/scripts/install.sh | sh -s -

Isso executa novamente o instalador e substitui os binários no diretório de instalação (/opt/trusttunnel_client por padrão, ou o diretório que você especificou com -o DIR).

[!NOTE] Não se esqueça de parar o cliente antes de atualizar (por exemplo, parando o processo em execução).

Windows

Baixe a versão mais recente da página de releases e substitua os arquivos no seu diretório de instalação.

Assistente de configuração do cliente

O diretório de instalação contém o binário setup_wizard que ajuda a gerar os arquivos de configuração necessários para o cliente executar.

Linux / macOS
cd /opt/trusttunnel_client/
./setup_wizard -h

Para configurar o cliente para usar a configuração gerada pelo endpoint, execute o seguinte comando:

./setup_wizard --mode non-interactive \
     --endpoint_config <endpoint_config> \
     --settings trusttunnel_client.toml
Windows
setup_wizard.exe --mode non-interactive ^
    --endpoint_config <endpoint_config> ^
    --settings trusttunnel_client.toml

Em ambos os casos, <endpoint_config> é o caminho para o arquivo de configuração gerado pelo endpoint.

trusttunnel_client.toml conterá toda a configuração necessária para o cliente.

[!TIP] A configuração gerada contém configurações básicas para conectar ao endpoint. Para funcionalidades avançadas, edite trusttunnel_client.toml diretamente. Você pode configurar:

  • Modo VPN: Roteie todo o tráfego (general) ou apenas destinos específicos (selective)
  • Kill switch: Bloqueie o tráfego quando a VPN desconectar
  • DNS upstreams: Resolvedores DNS personalizados (DoH, DoT, DoQ suportados)
  • Exclusões: Domínios/IPs para ignorar ou rotear através da VPN
  • Tipo de listener: Dispositivo TUN ou proxy SOCKS5

Consulte o README do TrustTunnel CLI Client para todas as opções disponíveis.

[!NOTE] Após editar a configuração, reinicie o cliente para que as alterações tenham efeito.

Executar o cliente

Linux / macOS
cd /opt/trusttunnel_client/
sudo ./trusttunnel_client -c trusttunnel_client.toml

sudo é necessário para configurar as rotas e a interface tun.

Windows

Abra um terminal como Administrador e execute:

trusttunnel_client.exe -c trusttunnel_client.toml

Privilégios de administrador são necessários para configurar rotas e a interface TUN.

Clientes

Oficiais

CLI

TrustTunnel Client — Linux, macOS, Windows

GUI

TrustTunnel Flutter Client — iOS, Android (macOS, Windows — em breve). Disponível na App Store* e no Play Store.

[!NOTE] * Em alguns países, o aplicativo iOS não está disponível na App Store. Você pode precisar de um Apple ID de outro país para baixá-lo. Saiba como alterar o país da sua App Store.

Comunidade

[!NOTE] Os clientes da comunidade são desenvolvidos e mantidos de forma independente. Eles não são oficialmente suportados pela equipe TrustTunnel.

GUI

Trusty - Um cliente GUI multiplataforma construído com Flutter (Windows estável, macOS alpha). Funcionalidades incluem logs em tempo real, implantação de servidor SSH com 1 clique e descoberta automática de grupos de domínio para tunelamento dividido.

TrustTunnel-GUI-Client — Cliente GUI para Windows, implementado como um wrapper Python para TrustTunnel Client

Surge — (Comercial) Caixa de ferramentas de rede para macOS e iOS com suporte experimental a TrustTunnel

FireTunnel - Um cliente multiplataforma escrito em QT usando TrustTunnel Client modificado

Veja também

Roteiro

Embora nossa VPN atualmente suporte tunelamento de tráfego TCP/UDP/ICMP, planejamos adicionar suporte para comunicação peer-to-peer entre clientes.

Fique atento a este recurso em futuras versões.

Licença

Este projeto está licenciado sob a Licença Apache 2.0. Veja LICENSE para detalhes.

Categorias